6b2b9dcee2
- `get_doc` -> `get_values` and `db.sql` -> `db.delete` in Wishlist Item deletion - cache first page of Item Reviews and burst cache on addition and deletion of reviews - Update redisearch docs link in E Commerce Settings - Removed unused cint import - Broke setting attribute context into smaller functions and code cleanup - Minor recommended items padding tweak - Item reviews form dict now uses website item as key - Customer reviews rendered from UI style consistency - Stock status consistency in listing and full page - Handle no price in variant dialog for matched item
89 lines
2.4 KiB
HTML
89 lines
2.4 KiB
HTML
{% from "erpnext/templates/includes/macros.html" import user_review, ratings_summary %}
|
|
|
|
<div class="mt-4 ratings-reviews-section">
|
|
<!-- Title and Action -->
|
|
<div class="w-100 mt-4 mb-2 d-flex">
|
|
<div class="reviews-header col-9">
|
|
{{ _("Customer Reviews") }}
|
|
</div>
|
|
|
|
<div class="write-a-review-btn col-3">
|
|
<!-- Write a Review for legitimate users -->
|
|
{% if frappe.session.user != "Guest" and user_is_customer %}
|
|
<button class="btn btn-write-review"
|
|
data-web-item="{{ doc.name }}">
|
|
{{ _("Write a Review") }}
|
|
</button>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Summary -->
|
|
{{ ratings_summary(reviews, reviews_per_rating, average_rating, average_whole_rating, for_summary=True, total_reviews=total_reviews) }}
|
|
|
|
|
|
<!-- Reviews and Comments -->
|
|
<div class="mt-8">
|
|
{% if reviews %}
|
|
{{ user_review(reviews) }}
|
|
|
|
{% if total_reviews > 4 %}
|
|
<div class="mt-6 mb-6"style="color: var(--primary);">
|
|
<a href="/customer_reviews?web_item={{ doc.name }}">{{ _("View all reviews") }}</a>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
<h6 class="text-muted mt-6">
|
|
{{ _("No Reviews") }}
|
|
</h6>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
frappe.ready(() => {
|
|
$('.page_content').on('click', '.btn-write-review', (e) => {
|
|
// Bind action on write a review button
|
|
const $btn = $(e.currentTarget);
|
|
|
|
let d = new frappe.ui.Dialog({
|
|
title: __("Write a Review"),
|
|
fields: [
|
|
{fieldname: "title", fieldtype: "Data", label: "Headline", reqd: 1},
|
|
{fieldname: "rating", fieldtype: "Rating", label: "Overall Rating", reqd: 1},
|
|
{fieldtype: "Section Break"},
|
|
{fieldname: "comment", fieldtype: "Small Text", label: "Your Review"}
|
|
],
|
|
primary_action: function() {
|
|
var data = d.get_values();
|
|
frappe.call({
|
|
method: "erpnext.e_commerce.doctype.item_review.item_review.add_item_review",
|
|
args: {
|
|
web_item: "{{ doc.name }}",
|
|
title: data.title,
|
|
rating: data.rating,
|
|
comment: data.comment
|
|
},
|
|
freeze: true,
|
|
freeze_message: __("Submitting Review ..."),
|
|
callback: function(r) {
|
|
if(!r.exc) {
|
|
frappe.msgprint({
|
|
message: __("Thank you for the review"),
|
|
title: __("Review Submitted"),
|
|
indicator: "green"
|
|
});
|
|
d.hide();
|
|
location.reload();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
primary_action_label: __('Submit')
|
|
});
|
|
d.show();
|
|
});
|
|
});
|
|
</script>
|