44from rest_framework .views import APIView
55
66from users .models import CustomUser
7- from .utils import MailSender
7+ from .utils import send_mails_mass
88from .models import MailingSchema
99
1010
@@ -15,12 +15,12 @@ def post(self, request):
1515 subject = request .POST ["subject" ]
1616 mail_schema = MailingSchema .objects .get (pk = schema_id )
1717 context = {}
18- for key in mail_schema .schema :
19- key_in_post = "field-" + key
18+ for variable_name in mail_schema .schema :
19+ key_in_post = "field-" + variable_name
2020 if key_in_post in request .POST :
21- context [key ] = request .POST [key_in_post ]
21+ context [variable_name ] = request .POST [key_in_post ]
2222 users_to_send = CustomUser .objects .filter (pk__in = users )
23- MailSender . send (users_to_send , subject , mail_schema .template .path )
23+ send_mails_mass (users_to_send , subject , mail_schema .template .path )
2424 return JsonResponse ({"detail" : "ok" })
2525
2626
@@ -29,44 +29,48 @@ def get(self, request):
2929 return MailingTemplateRender ().render_template (request )
3030
3131
32- def template_fields (request , schema_id ):
33- return JsonResponse (
34- dict (MailingTemplateRender ().get_template_fields_context (schema_id ))
35- )
32+ class TemplateFieldsView (APIView ):
33+ def get (self , request , schema_id ):
34+ return JsonResponse (
35+ dict (MailingTemplateRender ().get_template_fields_context (schema_id ))
36+ )
3637
3738
3839class MailingTemplateRender :
3940 template_name = "templates/mailing/mail_schema.html"
4041
42+ @classmethod
4143 def render_template (
42- self ,
44+ cls ,
4345 request ,
4446 schema_id : int | None = None ,
4547 picked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
4648 unpicked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
4749 ):
4850 return render (
4951 request ,
50- self .template_name ,
51- self ._get_context (
52+ cls .template_name ,
53+ cls ._get_context (
5254 schema_id ,
5355 picked_users ,
5456 unpicked_users ,
5557 ),
5658 )
5759
60+ @classmethod
5861 def _get_context (
59- self ,
62+ cls ,
6063 schema_id : int | None = None ,
6164 picked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
6265 unpicked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
6366 ):
64- context = self ._get_schema_context (schema_id )
65- context += self ._get_users_context (picked_users , unpicked_users )
66- context += self .get_template_fields_context (schema_id )
67+ context = cls ._get_schema_context (schema_id )
68+ context += cls ._get_users_context (picked_users , unpicked_users )
69+ context += cls .get_template_fields_context (schema_id )
6770 return dict (context )
6871
69- def _get_schema_context (self , schema_id : int | None = None ):
72+ @classmethod
73+ def _get_schema_context (cls , schema_id : int | None = None ):
7074 all_schemas = MailingSchema .objects .all ()
7175 context = {"schemas" : []}
7276
@@ -77,8 +81,9 @@ def _get_schema_context(self, schema_id: int | None = None):
7781 )
7882 return list (context .items ())
7983
84+ @classmethod
8085 def _get_users_context (
81- self ,
86+ cls ,
8287 picked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
8388 unpicked_users : list [CustomUser ] | django .db .models .QuerySet = None ,
8489 ):
@@ -88,19 +93,21 @@ def _get_users_context(
8893 unpicked_users = []
8994 context = {"picked_users" : [], "unpicked_users" : []}
9095 for user in picked_users :
91- context ["picked_users" ].append (self ._user_to_dict_for_template (user , True ))
96+ context ["picked_users" ].append (cls ._user_to_dict_for_template (user , True ))
9297 for user in unpicked_users :
93- context ["unpicked_users" ].append (self ._user_to_dict_for_template (user , False ))
98+ context ["unpicked_users" ].append (cls ._user_to_dict_for_template (user , False ))
9499 return list (context .items ())
95100
96- def _user_to_dict_for_template (self , user , picked ):
101+ @classmethod
102+ def _user_to_dict_for_template (cls , user , picked ):
97103 return {
98104 "id" : user .id ,
99105 "picked" : picked ,
100106 "title" : str (user ),
101107 }
102108
103- def get_template_fields_context (self , schema_id ):
109+ @classmethod
110+ def get_template_fields_context (cls , schema_id ):
104111 context = {"template_fields" : []}
105112 if schema_id is None :
106113 return list (context .items ())
0 commit comments