From 7c3db0143b879e342752cf0474d5035aebd93cc7 Mon Sep 17 00:00:00 2001 From: Dibik Date: Thu, 8 Aug 2024 18:42:32 +0530 Subject: [PATCH] G2P-2718: Enumerator and user mapping logic added in registration portal and Some logic endpoint --- .../views/registration_user_backend_view.xml | 25 ------ g2p_portal_base/views/menu_view.xml | 18 ++--- g2p_registration_portal/controllers/main.py | 78 ++++++++++++------- .../static/src/js/member_form.js | 2 +- .../views/individual_page.xml | 8 +- 5 files changed, 63 insertions(+), 68 deletions(-) diff --git a/g2p_odk_user_mapping/views/registration_user_backend_view.xml b/g2p_odk_user_mapping/views/registration_user_backend_view.xml index e5e2b41..14a3436 100644 --- a/g2p_odk_user_mapping/views/registration_user_backend_view.xml +++ b/g2p_odk_user_mapping/views/registration_user_backend_view.xml @@ -1,17 +1,4 @@ - - - - res.partner.search.inherits - res.partner - - - - Registration Portal User - - - - res.partner.form.inherit.registration res.partner @@ -33,16 +20,4 @@ - - - - Registration Portal User - - - diff --git a/g2p_portal_base/views/menu_view.xml b/g2p_portal_base/views/menu_view.xml index e112e7b..3f0ac32 100644 --- a/g2p_portal_base/views/menu_view.xml +++ b/g2p_portal_base/views/menu_view.xml @@ -1,26 +1,26 @@ - - - Service Provider - - - res.partner.search.inherit + + res.partner.search.inherits res.partner - Service Provider + Registration Portal User + + + Registration Portal User + + diff --git a/g2p_registration_portal/controllers/main.py b/g2p_registration_portal/controllers/main.py index 7878120..b2e3921 100644 --- a/g2p_registration_portal/controllers/main.py +++ b/g2p_registration_portal/controllers/main.py @@ -10,17 +10,28 @@ class G2PregistrationBeneficiaryManagement(http.Controller): @http.route("/registration/group", type="http", auth="user", website=True) def group_list(self, **kw): - group = ( - request.env["res.partner"] - .sudo() - .search( - [ - ("active", "=", True), - ("is_registrant", "=", True), - ("is_group", "=", True), - ] - ) - ) + user = request.env.user + + domain = [ + ("active", "=", True), + ("is_registrant", "=", True), + ("is_group", "=", True), + ] + + partner = user.partner_id + + subdomain = [("user_id", "=", user.id)] + + if partner and partner.odk_app_user: + subdomain = [ + "|", + ("enumerator_id.enumerator_user_id", "=", partner.odk_app_user.odk_user_id), + ("user_id", "=", user.id), + ] + + domain += subdomain + + group = request.env["res.partner"].sudo().search(domain) return request.render("g2p_registration_portal.group_list", {"groups": group}) @@ -55,19 +66,19 @@ def group_create_submit(self, **kw): beneficiary_id = request.env["res.partner"].sudo().browse(int(kw.get("group_id"))) else: if head_name: - beneficiary_obj = ( - request.env["res.partner"] - .sudo() - .create( - { - "name": head_name, - "is_registrant": True, - "is_group": True, - "birthdate": kw.get("dob"), - "gender": kw.get("gender"), - } - ) - ) + user = request.env.user + + data = { + "name": head_name, + "is_registrant": True, + "is_group": True, + "birthdate": kw.get("dob"), + "gender": kw.get("gender"), + "user_id": user.id, + } + + beneficiary_obj = request.env["res.partner"].sudo().create(data) + beneficiary_id = beneficiary_obj.id beneficiary = request.env["res.partner"].sudo().browse(beneficiary_id) @@ -118,6 +129,7 @@ def group_update(self, _id, **kw): "individuals": beneficiary.group_membership_ids.mapped("individual"), }, ) + except Exception: return request.render( "g2p_registration_portal.error_template", @@ -160,9 +172,9 @@ def group_submit(self, **kw): {"error_message": "An error occurred. Please try again later."}, ) - # Creating members + # Creating Group members @http.route( - ["/registration/individual/create/"], + ["/registration/member/create/"], type="http", auth="user", website=True, @@ -213,6 +225,7 @@ def individual_create(self, **kw): given_name = kw.get("given_name") family_name = kw.get("family_name") addl_name = kw.get("addl_name") + user = request.env.user name = f"{given_name}, {addl_name} {family_name}" @@ -225,6 +238,7 @@ def individual_create(self, **kw): "gender": kw.get("gender"), "is_registrant": True, "is_group": False, + "user_id": user.id, } # TODO: Relationship logic need to build later @@ -338,10 +352,12 @@ def update_member_submit(self, **kw): _logger.error("Error occurred during member submit: %s", e) return json.dumps({"error": "Failed to update member details"}) - ############### Controller for Individual Benificiary Creation ################ + ############### Controller for Individual Creation ################ @http.route("/registration/individual", type="http", auth="user", website=True) def individual_list(self, **kw): + user = request.env.user + individual = ( request.env["res.partner"] .sudo() @@ -350,13 +366,14 @@ def individual_list(self, **kw): ("active", "=", True), ("is_registrant", "=", True), ("is_group", "=", False), + ("user_id", "=", user.id), ] ) ) return request.render("g2p_registration_portal.individual_list", {"individual": individual}) @http.route( - ["/registration/individual/registrar/create/"], + ["/registration/individual/create/"], type="http", auth="user", website=True, @@ -370,13 +387,15 @@ def individual_registrar_create(self, **kw): ) @http.route( - ["/registration/individual/beneficiary/create/submit"], + ["/registration/individual/create/submit"], type="http", auth="user", website=True, csrf=False, ) def individual_create_submit(self, **kw): + user = request.env.user + try: name = "" if kw.get("family_name"): @@ -399,6 +418,7 @@ def individual_create_submit(self, **kw): "birthdate": birthdate, "gender": kw.get("gender"), "email": kw.get("email"), + "user_id": user.id, "is_registrant": True, "is_group": False, } diff --git a/g2p_registration_portal/static/src/js/member_form.js b/g2p_registration_portal/static/src/js/member_form.js index b343d6e..3bcbbb8 100644 --- a/g2p_registration_portal/static/src/js/member_form.js +++ b/g2p_registration_portal/static/src/js/member_form.js @@ -111,7 +111,7 @@ $(document).on("click", "#member_submit", function () { } $.ajax({ - url: "/registration/individual/create/", + url: "/registration/member/create/", method: "POST", data: { group_id: group, diff --git a/g2p_registration_portal/views/individual_page.xml b/g2p_registration_portal/views/individual_page.xml index 8160b43..2e36bb0 100644 --- a/g2p_registration_portal/views/individual_page.xml +++ b/g2p_registration_portal/views/individual_page.xml @@ -7,7 +7,7 @@