From 03fefcda53c90b57c11f79bcf1d42a33a75a19e5 Mon Sep 17 00:00:00 2001
From: William Gearty
Date: Thu, 17 Aug 2023 20:22:23 -0400
Subject: [PATCH] Fix permissions in custom forms (#3670)
* Fix permissions in custom forms
* Fix loading of permissions
---
esp/esp/customforms/views.py | 11 +----------
esp/public/media/scripts/custom_form.js | 13 +++++++++++++
esp/templates/customforms/index.html | 2 +-
3 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/esp/esp/customforms/views.py b/esp/esp/customforms/views.py
index e418eddff1..a8d5f46fb9 100644
--- a/esp/esp/customforms/views.py
+++ b/esp/esp/customforms/views.py
@@ -72,16 +72,7 @@ def getPerms(request):
except ValueError:
return HttpResponse(status=400)
prog = Program.objects.get(pk=prog_id)
- perms = {'teachers': [], 'students': []}
- for module in prog.getModules(None):
- teach_desc = module.teacherDesc()
- stud_desc = module.studentDesc()
- if teach_desc:
- for k,v in teach_desc.items():
- perms['teachers'].append([k,v])
- elif stud_desc:
- for k,v in stud_desc.items():
- perms['students'].append([k,v])
+ perms = {'teachers': [[desc[0], desc[1]] for desc in prog.teacherDesc().items()], 'students': [[desc[0], desc[1]] for desc in prog.studentDesc().items()]}
return HttpResponse(json.dumps(perms))
return HttpResponse(status=400)
diff --git a/esp/public/media/scripts/custom_form.js b/esp/public/media/scripts/custom_form.js
index 7aa8f3bce5..4fcbbbbb33 100755
--- a/esp/public/media/scripts/custom_form.js
+++ b/esp/public/media/scripts/custom_form.js
@@ -1829,6 +1829,19 @@ var rebuild=function(metadata) {
$j(".section:empty").parent('.outline').remove();
// Reset add field form
$j("#cat_selector").val('Generic').trigger("change");
+ // Set up permissions if needed
+ if(metadata['perms']!=""){
+ clearPermsArea();
+ var meta_perms = metadata['perms'].split(",");
+ $j('#id_main_perm').val(meta_perms[0]).change();
+ if(meta_perms.length >= 2){
+ $j('#id_prog_belong').prop('checked', true).change();
+ $j('#id_perm_program').val(meta_perms[1]).change();
+ if(meta_perms.length == 3){
+ $j('#id_sub_perm').val(meta_perms[2]).change();
+ }
+ }
+ }
//Open the information panel if not already open
$j("#header_information.ui-accordion-header-collapsed").trigger("click");
};
diff --git a/esp/templates/customforms/index.html b/esp/templates/customforms/index.html
index 83f87d9158..c2ac2cad70 100644
--- a/esp/templates/customforms/index.html
+++ b/esp/templates/customforms/index.html
@@ -129,7 +129,7 @@
- Belonging to program
+