[hub] items searchable via core filters
This commit is contained in:
parent
b8e9c9be08
commit
3eaccffbd9
@ -15,25 +15,15 @@ def enable_hub():
|
|||||||
return hub_settings
|
return hub_settings
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_items(start=0, limit=20, fields=["*"], category=None, order_by=None, company=None, text=None):
|
def get_items(doctype, start=0, limit=20, fields=["*"], filters="{}", order_by=None):
|
||||||
connection = get_client_connection()
|
connection = get_client_connection()
|
||||||
|
filters = json.loads(filters)
|
||||||
|
|
||||||
filters = {}
|
response = connection.get_list(doctype,
|
||||||
|
|
||||||
if category:
|
|
||||||
filters.update({ 'hub_category': category })
|
|
||||||
if text:
|
|
||||||
filters.update({'item_name': ('like', '%' + text + '%')})
|
|
||||||
if company:
|
|
||||||
filters.update({'company_name': company})
|
|
||||||
|
|
||||||
response = connection.get_list('Hub Item',
|
|
||||||
limit_start=start, limit_page_length=limit,
|
limit_start=start, limit_page_length=limit,
|
||||||
filters=filters, fields=fields)
|
filters=filters, fields=fields)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
#
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_hub_item_meta():
|
def get_hub_item_meta():
|
||||||
connection = get_client_connection()
|
connection = get_client_connection()
|
||||||
|
|||||||
@ -21,7 +21,15 @@ frappe.views.HubFactory = frappe.views.Factory.extend({
|
|||||||
console.log("pages?");
|
console.log("pages?");
|
||||||
if (page === 'Item' && !route[2]) {
|
if (page === 'Item' && !route[2]) {
|
||||||
frappe.require(assets['List'], () => {
|
frappe.require(assets['List'], () => {
|
||||||
erpnext.hub.pages[page_name] = new erpnext.hub.HubPage({
|
erpnext.hub.pages[page_name] = new erpnext.hub.ItemListing({
|
||||||
|
doctype: 'Hub Settings',
|
||||||
|
parent: this.make_page(true, page_name)
|
||||||
|
});
|
||||||
|
window.hub_page = erpnext.hub.pages[page_name];
|
||||||
|
});
|
||||||
|
} if (page === 'Company' && !route[2]) {
|
||||||
|
frappe.require(assets['List'], () => {
|
||||||
|
erpnext.hub.pages[page_name] = new erpnext.hub.CompanyListing({
|
||||||
doctype: 'Hub Settings',
|
doctype: 'Hub Settings',
|
||||||
parent: this.make_page(true, page_name)
|
parent: this.make_page(true, page_name)
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
frappe.provide('erpnext.hub');
|
frappe.provide('erpnext.hub');
|
||||||
|
|
||||||
erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
erpnext.hub.ItemListing = class ItemListing extends frappe.views.BaseList {
|
||||||
setup_defaults() {
|
setup_defaults() {
|
||||||
super.setup_defaults();
|
super.setup_defaults();
|
||||||
this.page_title = __('Hub');
|
this.page_title = __('Hub');
|
||||||
@ -23,16 +23,12 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_fields() {
|
setup_fields() {
|
||||||
this.fields = ['name', 'hub_item_code', 'image', 'item_name', 'item_code'];
|
this.fields = ['name', 'hub_item_code', 'image', 'item_name', 'item_code', 'company_name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
set_breadcrumbs() {
|
set_breadcrumbs() { }
|
||||||
|
|
||||||
}
|
setup_side_bar() { }
|
||||||
|
|
||||||
setup_side_bar() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_filter_area() {
|
setup_filter_area() {
|
||||||
this.custom_filter_configs = [
|
this.custom_filter_configs = [
|
||||||
@ -53,29 +49,41 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
this.filter_area = new FilterArea(this);
|
this.filter_area = new FilterArea(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_sort_selector() {
|
setup_sort_selector() { }
|
||||||
|
|
||||||
|
setup_view() { }
|
||||||
|
|
||||||
|
get_filters_for_args() {
|
||||||
|
let filters = {};
|
||||||
|
this.filter_area.get().forEach(f => {
|
||||||
|
let field = f[1] !== 'name' ? f[1] : 'item_name';
|
||||||
|
filters[field] = [f[2], f[3]];
|
||||||
|
});
|
||||||
|
if(this.current_category) {
|
||||||
|
filters['hub_category'] = this.current_category;
|
||||||
}
|
}
|
||||||
|
return filters;
|
||||||
setup_view() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get_args() {
|
get_args() {
|
||||||
|
console.log('filters', this.get_filters_for_args());
|
||||||
return {
|
return {
|
||||||
|
doctype: 'Hub Item'
|
||||||
start: this.start,
|
start: this.start,
|
||||||
limit: this.page_length,
|
limit: this.page_length,
|
||||||
category: this.category || '',
|
|
||||||
order_by: this.order_by,
|
order_by: this.order_by,
|
||||||
company: this.company || '',
|
fields: this.fields,
|
||||||
text: this.search_text || '',
|
filters: this.get_filters_for_args()
|
||||||
fields: this.fields
|
|
||||||
|
// category: this.category || '',
|
||||||
|
// company: this.company || '',
|
||||||
|
// text: this.search_text || '',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
update_data(r) {
|
update_data(r) {
|
||||||
const data = r.message;
|
const data = r.message;
|
||||||
console.log('update data', data);
|
// console.log('update data', data);
|
||||||
|
|
||||||
if (this.start === 0) {
|
if (this.start === 0) {
|
||||||
this.data = data;
|
this.data = data;
|
||||||
@ -103,7 +111,7 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
|
|
||||||
render_image_view() {
|
render_image_view() {
|
||||||
let data = this.data;
|
let data = this.data;
|
||||||
console.log('this.data render', this.data);
|
// console.log('this.data render', this.data);
|
||||||
if (this.start === 0) {
|
if (this.start === 0) {
|
||||||
this.$result.html('<div class="image-view-container small padding-top">');
|
this.$result.html('<div class="image-view-container small padding-top">');
|
||||||
data = this.data.slice(this.start);
|
data = this.data.slice(this.start);
|
||||||
@ -117,6 +125,8 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
item._name = encodeURI(item.name);
|
item._name = encodeURI(item.name);
|
||||||
const encoded_name = item._name;
|
const encoded_name = item._name;
|
||||||
const title = strip_html(item['item_name' || 'item_code']);
|
const title = strip_html(item['item_name' || 'item_code']);
|
||||||
|
console.log(item);
|
||||||
|
const company_name = item['company_name'];
|
||||||
|
|
||||||
const route = `#Hub/Item/${item.hub_item_code}`;
|
const route = `#Hub/Item/${item.hub_item_code}`;
|
||||||
|
|
||||||
@ -137,9 +147,14 @@ erpnext.hub.HubPage = class HubPage extends frappe.views.BaseList {
|
|||||||
<h5 class="bold">
|
<h5 class="bold">
|
||||||
${ title }
|
${ title }
|
||||||
</h5>
|
</h5>
|
||||||
|
<p>${ company_name }</p>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
erpnext.hub.CompanyListing = class CompanyListing extends frappe.views.BaseList {
|
||||||
|
|
||||||
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user