[hub][init] add profile page

This commit is contained in:
Prateeksha Singh 2018-07-26 13:39:06 +05:30
parent f26177bdbc
commit d1224ca662
2 changed files with 63 additions and 16 deletions

View File

@ -34,9 +34,14 @@ def get_list(doctype, start=0, limit=20, fields=["*"], filters="{}", order_by=No
#### LOCAL ITEMS
@frappe.whitelist()
def get_valid_items(search_value=''):
items = frappe.get_list('Item', fields=["*"], filters={
'item_name': ['like', '%' + search_value + '%']
})
items = frappe.get_list(
'Item', fields=["*"],
filters={
'item_name': ['like', '%' + search_value + '%'],
'publish_in_hub': 0
},
order_by="modified desc"
)
valid_items = filter(lambda x: x.image and x.description, items)
@ -52,9 +57,6 @@ 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()

View File

@ -137,11 +137,14 @@ erpnext.hub.Marketplace = class Marketplace {
this.subpages.register = new erpnext.hub.Register(this.$body);
}
if (route[1] === 'profile' && !this.subpages.profile) {
this.subpages.profile = new erpnext.hub.Profile(this.$body, this.hub_settings);
}
if (route[1] === 'publish' && !this.subpages.publish) {
this.subpages.publish = new erpnext.hub.Publish(this.$body);
}
if (!Object.keys(this.subpages).includes(route[1])) {
frappe.show_not_found();
return;
@ -572,6 +575,51 @@ erpnext.hub.Register = class Register extends SubPage {
}
}
erpnext.hub.Profile = class Profile extends SubPage {
constructor(parent, profile_data) {
super(parent);
this.profile_data = profile_data;
}
make_wrapper() {
super.make_wrapper();
const profile_html = `<div class="hub-item-container">
<div class="row visible-xs">
<div class="col-xs-12 margin-bottom">
<button class="btn btn-xs btn-default" data-route="marketplace/home">Back to home</button>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="hub-item-image">
<img src="${'gd'}">
</div>
</div>
<div class="col-md-6">
<h2>${'title'}</h2>
<div class="text-muted">
<p>${'where'}${'dot_spacer'}${'when'}</p>
<p>${'rating_html'}${'rating_count'}</p>
</div>
<hr>
<div class="hub-item-description">
${'description' ?
`<b>${__('Description')}</b>
<p>${'description'}</p>
` : __('No description')
}
</div>
</div>
</div>
</div>`;
this.$wrapper.html(profile_html);
}
refresh() {}
render() {}
}
erpnext.hub.Publish = class Publish extends SubPage {
make_wrapper() {
super.make_wrapper();
@ -604,9 +652,6 @@ erpnext.hub.Publish = class Publish extends SubPage {
</div>
${search_html}
${select_all_button}
${deselect_all_button}
`);
this.$wrapper.append(subpage_header);
@ -615,13 +660,13 @@ erpnext.hub.Publish = class Publish extends SubPage {
}
setup_events() {
this.$wrapper.find('.select-all').on('click', () => {
this.$wrapper.find('.hub-card').addClass('active');
});
// this.$wrapper.find('.select-all').on('click', () => {
// this.$wrapper.find('.hub-card').addClass('active');
// });
this.$wrapper.find('.deselect-all').on('click', () => {
this.$wrapper.find('.hub-card').removeClass('active');
});
// this.$wrapper.find('.deselect-all').on('click', () => {
// this.$wrapper.find('.hub-card').removeClass('active');
// });
this.$wrapper.find('.publish-items').on('click', () => {
this.publish_selected_items()