From ce554ed53f23e0489af25cde473458c00661bfc4 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 23 Feb 2022 16:52:29 +0530 Subject: [PATCH] feat: privacy policy and other misc changes --- school/fixtures/custom_field.json | 4 +- .../doctype/invite_request/invite_request.py | 1 - school/lms/doctype/lms_course/lms_course.py | 1 - .../doctype/lms_settings/lms_settings.json | 41 ++++++++++++------- school/plugins.py | 3 +- school/public/css/style.css | 1 - school/templates/signup-form.html | 25 ++++++++--- school/www/courses/course.html | 4 +- school/www/profiles/profile.html | 3 +- school/www/profiles/profile.py | 9 ---- 10 files changed, 55 insertions(+), 37 deletions(-) diff --git a/school/fixtures/custom_field.json b/school/fixtures/custom_field.json index b4ec5ef9..7841848e 100644 --- a/school/fixtures/custom_field.json +++ b/school/fixtures/custom_field.json @@ -81,10 +81,10 @@ "in_preview": 0, "in_standard_filter": 0, "insert_after": "country", - "label": "Acceptance for Terms of Use", + "label": "Acceptance for Terms of Use and/or Privacy Policy", "length": 0, "mandatory_depends_on": null, - "modified": "2021-12-31 19:15:34.932908", + "modified": "2021-12-31 19:15:34.932909", "module": null, "name": "User-verify_terms", "no_copy": 0, diff --git a/school/lms/doctype/invite_request/invite_request.py b/school/lms/doctype/invite_request/invite_request.py index 2df246d7..84ac4a61 100644 --- a/school/lms/doctype/invite_request/invite_request.py +++ b/school/lms/doctype/invite_request/invite_request.py @@ -41,7 +41,6 @@ class InviteRequest(Document): } frappe.sendmail( recipients=self.invite_email, - sender=frappe.db.get_single_value("LMS Settings", "email_sender"), subject=subject, header=[subject, "green"], template = "lms_invite_request_approved", diff --git a/school/lms/doctype/lms_course/lms_course.py b/school/lms/doctype/lms_course/lms_course.py index cefb5c6a..6632b0ef 100644 --- a/school/lms/doctype/lms_course/lms_course.py +++ b/school/lms/doctype/lms_course/lms_course.py @@ -34,7 +34,6 @@ class LMSCourse(Document): args["first_name"] = frappe.db.get_value("User", user.user, "first_name") email_args = frappe._dict( recipients = user.user, - sender = frappe.db.get_single_value("LMS Settings", "email_sender"), subject = subject, header = [subject, "green"], template = "lms_course_interest", diff --git a/school/lms/doctype/lms_settings/lms_settings.json b/school/lms/doctype/lms_settings/lms_settings.json index 72083701..35c07925 100644 --- a/school/lms/doctype/lms_settings/lms_settings.json +++ b/school/lms/doctype/lms_settings/lms_settings.json @@ -5,15 +5,17 @@ "editable_grid": 1, "engine": "InnoDB", "field_order": [ - "livecode_url", - "email_sender", - "hide_primary_contact", - "column_break_2", - "force_profile_completion", "show_search", "search_placeholder", + "column_break_2", + "force_profile_completion", + "livecode_url", + "signup_settings_section", "terms_of_use", "terms_page", + "column_break_12", + "privacy_policy", + "privacy_policy_page", "mentor_request_section", "mentor_request_creation", "mentor_request_status_update" @@ -37,12 +39,6 @@ "label": "Mentor Request Status Update Template", "options": "Email Template" }, - { - "fieldname": "email_sender", - "fieldtype": "Data", - "label": "Senders Email Id", - "options": "Email" - }, { "fieldname": "mentor_request_section", "fieldtype": "Section Break", @@ -84,17 +80,33 @@ "mandatory_depends_on": "terms_of_use", "options": "Web Page" }, + { + "fieldname": "signup_settings_section", + "fieldtype": "Section Break", + "label": "Signup Settings" + }, { "default": "0", - "fieldname": "hide_primary_contact", + "fieldname": "privacy_policy", "fieldtype": "Check", - "label": "Hide Primary Contact on Profile Page" + "label": "Show Privacy Policy on Signup" + }, + { + "depends_on": "privacy_policy", + "fieldname": "privacy_policy_page", + "fieldtype": "Link", + "label": "Privacy Policy Page", + "options": "Web Page" + }, + { + "fieldname": "column_break_12", + "fieldtype": "Column Break" } ], "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2021-12-23 19:49:02.194513", + "modified": "2022-02-23 16:15:28.586903", "modified_by": "Administrator", "module": "LMS", "name": "LMS Settings", @@ -113,5 +125,6 @@ ], "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } \ No newline at end of file diff --git a/school/plugins.py b/school/plugins.py index 6699f716..c2889557 100644 --- a/school/plugins.py +++ b/school/plugins.py @@ -138,6 +138,7 @@ def assignment_renderer(detail): return frappe.render_template("templates/assignment.html", {"id": detail.split("-")[0], "accept": accept}) def show_custom_signup(): - if frappe.db.get_single_value("LMS Settings", "terms_of_use"): + if (frappe.db.get_single_value("LMS Settings", "terms_of_use") + or frappe.db.get_single_value("LMS Settings", "privacy_policy")): return "school/templates/signup-form.html" return "frappe/templates/signup.html" diff --git a/school/public/css/style.css b/school/public/css/style.css index 134f723e..bdf550b6 100644 --- a/school/public/css/style.css +++ b/school/public/css/style.css @@ -1590,7 +1590,6 @@ pre { display: flex; align-items: center; margin-bottom: 1.5rem; - margin-top: 1rem; } .course-creators-card { diff --git a/school/templates/signup-form.html b/school/templates/signup-form.html index 046b3655..91c77910 100644 --- a/school/templates/signup-form.html +++ b/school/templates/signup-form.html @@ -10,7 +10,25 @@ - {% if frappe.db.get_single_value("LMS Settings", "terms_of_use") %} + {% set terms_of_use = frappe.db.get_single_value("LMS Settings", "terms_of_use") %} + {% set privacy_policy = frappe.db.get_single_value("LMS Settings", "privacy_policy") %} + + {% if terms_of_use or privacy_policy %} + + {% if terms_of_use %} + {% set terms_page = frappe.db.get_single_value("LMS Settings", "terms_page") %} + {% set terms_page_route = frappe.db.get_value("Web Page", terms_page, "route") %} + {% set terms_link = "" + _("Terms of Use") + "" %} + {% endif %} + + {% if privacy_policy %} + {% set privacy_policy_page = frappe.db.get_single_value("LMS Settings", "privacy_policy_page") %} + {% set privacy_page_route = frappe.db.get_value("Web Page", privacy_policy_page, "route") %} + {% set privacy_link = "" + _("Privacy Policy") + "" %} + {% endif %} + + {% set final_link = terms_link + _(" and ") + privacy_link if terms_of_use and privacy_policy else terms_link if terms_of_use else privacy_link %} +

diff --git a/school/www/courses/course.html b/school/www/courses/course.html index ee6a2d21..e76af9fa 100644 --- a/school/www/courses/course.html +++ b/school/www/courses/course.html @@ -121,14 +121,14 @@ {% endif %}
+
{{ course.title }}
You have opted to be notified for this course. You will receive an email when the course becomes available.
-
{{ course.title }}
{% if get_lessons(course.name) | length %} -
+
{{ get_lessons(course.name) | length }} {{ _("Lessons") }}
diff --git a/school/www/profiles/profile.html b/school/www/profiles/profile.html index f0a40f68..878f5a35 100644 --- a/school/www/profiles/profile.html +++ b/school/www/profiles/profile.html @@ -209,7 +209,7 @@ {% endmacro %} {% macro Contact(member) %} -{% if show_contacts_section %} +{% if member.linkedin or member.medium or member.github %}
{{ _("Contact") }}
@@ -232,6 +232,7 @@ {{ member.github.split("/")[-1] }} {% endif %} +
diff --git a/school/www/profiles/profile.py b/school/www/profiles/profile.py index 211d790f..17d4bb81 100644 --- a/school/www/profiles/profile.py +++ b/school/www/profiles/profile.py @@ -17,17 +17,8 @@ def get_context(context): except: context.template = "www/404.html" return - context.hide_primary_contact = frappe.db.get_single_value("LMS Settings", "hide_primary_contact") - context.show_contacts_section = show_contacts_section(context.member, context.hide_primary_contact) context.profile_tabs = get_profile_tabs(context.member) -def show_contacts_section(member, hide_primary_contact): - if member.github or member.linkedin or member.medium: - return True - if hide_primary_contact or member.hide_private: - return False - return True - def get_profile_tabs(user): """Returns the enabled ProfileTab objects.