vkk.workhours.accounting.mailing_list.forms
1from smtplib import SMTPException 2from django import forms 3from django.core.mail import send_mail 4from django.utils.translation import gettext_lazy as _ 5from vkk.models import User, ProjectManager 6 7MAILING_CHOICES = [ 8 ('0', _('All Users')), 9 ('1', _('Project Managers')), 10 ('2', _('Accountants')) 11] 12 13class MailingListForm(forms.Form): 14 mailing_list = forms.ChoiceField(label=_('Mailing List'), choices=MAILING_CHOICES) 15 subject = forms.CharField(label=_('Subject'), max_length=255, empty_value=True) 16 message = forms.CharField(label=_('Message'), max_length=16383, widget=forms.Textarea()) 17 18 def send_mail(self): 19 if not self.is_valid(): 20 return 21 22 mailing_list = self.cleaned_data["mailing_list"] 23 email_addresses = None 24 if mailing_list == '0': 25 email_addresses = list( 26 User.objects.filter( 27 is_active=True 28 ).values_list('email', flat=True) 29 ) 30 elif mailing_list == '1': 31 email_addresses = list( 32 ProjectManager.objects.filter( 33 manager__is_active=True, 34 ).values_list('manager__email', flat=True) 35 ) 36 elif mailing_list == '2': 37 email_addresses = list( 38 User.objects.filter( 39 is_active=True, 40 is_accountant=True, 41 ).values_list('email', flat=True) 42 ) 43 44 try: 45 send_mail( 46 subject=self.cleaned_data["subject"], 47 message=self.cleaned_data["message"], 48 from_email=None, 49 recipient_list=email_addresses 50 ) 51 except SMTPException: 52 raise 53 54 return 55
class
MailingListForm(django.forms.forms.Form):
14class MailingListForm(forms.Form): 15 mailing_list = forms.ChoiceField(label=_('Mailing List'), choices=MAILING_CHOICES) 16 subject = forms.CharField(label=_('Subject'), max_length=255, empty_value=True) 17 message = forms.CharField(label=_('Message'), max_length=16383, widget=forms.Textarea()) 18 19 def send_mail(self): 20 if not self.is_valid(): 21 return 22 23 mailing_list = self.cleaned_data["mailing_list"] 24 email_addresses = None 25 if mailing_list == '0': 26 email_addresses = list( 27 User.objects.filter( 28 is_active=True 29 ).values_list('email', flat=True) 30 ) 31 elif mailing_list == '1': 32 email_addresses = list( 33 ProjectManager.objects.filter( 34 manager__is_active=True, 35 ).values_list('manager__email', flat=True) 36 ) 37 elif mailing_list == '2': 38 email_addresses = list( 39 User.objects.filter( 40 is_active=True, 41 is_accountant=True, 42 ).values_list('email', flat=True) 43 ) 44 45 try: 46 send_mail( 47 subject=self.cleaned_data["subject"], 48 message=self.cleaned_data["message"], 49 from_email=None, 50 recipient_list=email_addresses 51 ) 52 except SMTPException: 53 raise 54 55 return
A collection of Fields, plus their associated data.
def
send_mail(self):
19 def send_mail(self): 20 if not self.is_valid(): 21 return 22 23 mailing_list = self.cleaned_data["mailing_list"] 24 email_addresses = None 25 if mailing_list == '0': 26 email_addresses = list( 27 User.objects.filter( 28 is_active=True 29 ).values_list('email', flat=True) 30 ) 31 elif mailing_list == '1': 32 email_addresses = list( 33 ProjectManager.objects.filter( 34 manager__is_active=True, 35 ).values_list('manager__email', flat=True) 36 ) 37 elif mailing_list == '2': 38 email_addresses = list( 39 User.objects.filter( 40 is_active=True, 41 is_accountant=True, 42 ).values_list('email', flat=True) 43 ) 44 45 try: 46 send_mail( 47 subject=self.cleaned_data["subject"], 48 message=self.cleaned_data["message"], 49 from_email=None, 50 recipient_list=email_addresses 51 ) 52 except SMTPException: 53 raise 54 55 return
Inherited Members
- django.forms.forms.BaseForm
- BaseForm
- order_fields
- errors
- is_valid
- add_prefix
- add_initial_prefix
- get_context
- non_field_errors
- add_error
- has_error
- full_clean
- clean
- has_changed
- changed_data
- is_multipart
- visible_fields
- get_initial_for_field
- django.forms.utils.RenderableFormMixin
- as_p
- as_table
- as_ul
- as_div
- django.forms.utils.RenderableMixin
- render