[hub] setup publish items flow

This commit is contained in:
Prateeksha Singh 2018-07-26 10:38:11 +05:30
parent 1d1696080e
commit f26177bdbc
3 changed files with 55 additions and 9 deletions

View File

@ -38,8 +38,6 @@ def get_valid_items(search_value=''):
'item_name': ['like', '%' + search_value + '%']
})
print([d.item_name for d in items])
valid_items = filter(lambda x: x.image and x.description, items)
def attach_source_type(item):
@ -49,6 +47,19 @@ def get_valid_items(search_value=''):
valid_items = map(lambda x: attach_source_type(x), valid_items)
return valid_items
@frappe.whitelist()
def publish_selected_items(items_to_publish, items_to_unpublish):
for item_code in json.loads(items_to_publish):
frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
for item_code in json.loads(items_to_unpublish):
frappe.db.set_value('Item', item_code, 'publish_in_hub', 0)
hub_settings = frappe.get_doc('Hub Settings')
hub_settings.sync()
return
@frappe.whitelist()
def get_item_favourites(start=0, limit=20, fields=["*"], order_by=None):
doctype = 'Hub Item'

View File

@ -576,11 +576,13 @@ erpnext.hub.Publish = class Publish extends SubPage {
make_wrapper() {
super.make_wrapper();
const title_html = `<b>${__('Select Products to Publish')}</b>`;
const subtitle_html = `<p class="text-muted">
${__(`Only products with an image and description can be published.
const info = `<p class="text-muted">${__("Status decided by the 'Publish in Hub' field in Item.")}</p>`;
const subtitle_html = `
<p class="text-muted">
${__(`Only products with an image, description and category can be published.
Please update them if an item in your inventory does not appear.`)}
</p>`;
const publish_button_html = `<button class="btn btn-primary btn-sm publish-button">
const publish_button_html = `<button class="btn btn-primary btn-sm publish-items">
<i class="visible-xs octicon octicon-check"></i>
<span class="hidden-xs">Publish</span>
</button>`;
@ -621,6 +623,13 @@ erpnext.hub.Publish = class Publish extends SubPage {
this.$wrapper.find('.hub-card').removeClass('active');
});
this.$wrapper.find('.publish-items').on('click', () => {
this.publish_selected_items()
.then(r => {
frappe.msgprint('check');
});
});
const $search_input = this.$wrapper.find('.hub-search-container input');
this.search_value = '';
@ -662,6 +671,28 @@ erpnext.hub.Publish = class Publish extends SubPage {
}
);
}
publish_selected_items() {
const items_to_publish = [];
const items_to_unpublish = [];
this.$wrapper.find('.hub-card').map(function () {
const active = $(this).hasClass('active');
if(active) {
items_to_publish.push($(this).attr("data-id"));
} else {
items_to_unpublish.push($(this).attr("data-id"));
}
});
return frappe.call(
'erpnext.hub_node.publish_selected_items',
{
items_to_publish: items_to_publish,
items_to_unpublish: items_to_unpublish
}
);
}
}
function get_item_card_container_html(items, title='') {
@ -680,10 +711,14 @@ function get_item_card_container_html(items, title='') {
function get_item_card_html(item) {
const item_name = item.item_name || item.name;
const title = strip_html(item_name);
const img_url = item.image;
const company_name = item.company_name;
const active = item.publish_in_hub;
const id = item.hub_item_code || item.item_code;
// Subtitle
let subtitle = [comment_when(item.creation)];
const rating = get_rating(item);
@ -713,7 +748,7 @@ function get_item_card_html(item) {
const item_html = `
<div class="col-md-3 col-sm-4 col-xs-6">
<div class="hub-card" ${card_route}>
<div class="hub-card ${active ? 'active' : ''}" ${card_route} data-id="${id}">
<div class="hub-card-header">
<div class="title">
<div class="hub-card-title ellipsis bold">${title}</div>

View File

@ -75,8 +75,8 @@ class Item(WebsiteGenerator):
if not self.description:
self.description = self.item_name
if self.is_sales_item and not self.get('is_item_from_hub'):
self.publish_in_hub = 1
# if self.is_sales_item and not self.get('is_item_from_hub'):
# self.publish_in_hub = 1
def after_insert(self):
'''set opening stock and item price'''