@@ -25,16 +25,33 @@ def post(self, request):
2525
2626
2727class MailingSchemaView (APIView ):
28+ def get (self , request ):
29+ return MailingTemplateRender ().render_template (request )
30+
31+
32+ def template_fields (request , schema_id ):
33+ return JsonResponse (
34+ dict (MailingTemplateRender ().get_template_fields_context (schema_id ))
35+ )
36+
37+
38+ class MailingTemplateRender :
2839 template_name = "templates/mailing/mail_schema.html"
2940
30- def get (self , request ):
41+ def render_template (
42+ self ,
43+ request ,
44+ schema_id : int | None = None ,
45+ picked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
46+ unpicked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
47+ ):
3148 return render (
3249 request ,
3350 self .template_name ,
3451 self ._get_context (
35- 1 ,
36- None ,
37- CustomUser . objects . all () ,
52+ schema_id ,
53+ picked_users ,
54+ unpicked_users ,
3855 ),
3956 )
4057
@@ -84,8 +101,11 @@ def _user_to_dict_for_template(self, user, picked):
84101 }
85102
86103 def get_template_fields_context (self , schema_id ):
87- schema = MailingSchema .objects .get (pk = schema_id ).schema
88104 context = {"template_fields" : []}
105+ if schema_id is None :
106+ return list (context .items ())
107+ schema = MailingSchema .objects .get (pk = schema_id ).schema
108+
89109 for key in schema :
90110 context ["template_fields" ].append (
91111 {
@@ -95,7 +115,3 @@ def get_template_fields_context(self, schema_id):
95115 }
96116 )
97117 return list (context .items ())
98-
99-
100- def template_fields (request , schema_id ):
101- return JsonResponse (dict (MailingSchemaView ().get_template_fields_context (schema_id )))
0 commit comments