def save(self, *args, **kwargs): for field_key in self.cleaned_data.keys(): self.temporary_data.comments[field_key] = self.cleaned_data[field_key] self.temporary_data.status = ProposalTemporaryData.Statuses.InTheirSide self.temporary_data.save() comments = {} for key in self.temporary_data.data.keys(): if self.temporary_data.comments[key]: comments[key] = { 'original': self.temporary_data.data[key], 'comments': self.temporary_data.comments[key] } site = Site.objects.get_current() mail_context = { 'area': self.temporary_data.area, 'temporary_data': self.temporary_data, 'moderator': self.moderator, 'comments': comments, 'site': site, } send_mail(mail_context, 'popular_proposal_moderation', to=[self.temporary_data.proposer.email]) return self.temporary_data
def create_confirmation(self): confirmation = MessageConfirmation.objects.create(message=self) site = Site.objects.get_current() context = {'election':self.election, 'message': self, 'site': site} send_mail(context, 'confirmation', to=[self.author_email], from_email=settings.NO_REPLY_MAIL)
def create_confirmation(self): confirmation = MessageConfirmation.objects.create(message=self) context = {'election': self.election, 'message': self} send_mail(context, 'confirmation', to=[self.author_email], from_email=settings.NO_REPLY_MAIL)
def create_proposal(self, moderator=None): self.status = ProposalTemporaryData.Statuses.Accepted self.save() title = self.get_title() clasification = self.data.get('clasification', '') org_id = self.data.pop('organization', None) creation_kwargs = self.determine_kwargs(title=title, clasification=clasification, area=self.area, proposer=self.proposer, data=self.data, temporary=self) popular_proposal = PopularProposal(**creation_kwargs) if org_id: enrollment = self.proposer.enrollments.get(organization__id=org_id) popular_proposal.organization = enrollment.organization popular_proposal.save() site = Site.objects.get_current() mail_context = { 'area': self.area, 'temporary_data': self, 'moderator': moderator, 'site': site, } send_mail(mail_context, 'popular_proposal_accepted', to=[self.proposer.email]) return popular_proposal
def save(self, *args, **kwargs): for field_key in self.cleaned_data.keys(): self.temporary_data.comments[field_key] = self.cleaned_data[ field_key] self.temporary_data.status = ProposalTemporaryData.Statuses.InTheirSide self.temporary_data.save() comments = {} for key in self.temporary_data.data.keys(): if self.temporary_data.comments[key]: comments[key] = { 'original': self.temporary_data.data[key], 'comments': self.temporary_data.comments[key] } site = Site.objects.get_current() mail_context = { 'area': self.temporary_data.area, 'temporary_data': self.temporary_data, 'moderator': self.moderator, 'comments': comments, 'site': site, } send_mail(mail_context, 'popular_proposal_moderation', to=[self.temporary_data.proposer.email]) return self.temporary_data
def create_proposal(self, moderator=None): self.status = ProposalTemporaryData.Statuses.Accepted self.save() title = self.get_title() clasification = self.data.get('clasification', '') popular_proposal = PopularProposal(proposer=self.proposer, title=title, area=self.area, temporary=self, clasification=clasification, data=self.data) if 'organization' in self.data.keys() and self.data['organization']: org_id = self.data['organization'] enrollment = self.proposer.enrollments.get(organization__id=org_id) popular_proposal.organization = enrollment.organization popular_proposal.save() site = Site.objects.get_current() mail_context = { 'area': self.area, 'temporary_data': self, 'moderator': moderator, 'site': site, } send_mail(mail_context, 'popular_proposal_accepted', to=[self.proposer.email]) return popular_proposal
def send_mail_with_user_and_password(self): if self.times_email_has_been_sent >= settings.MAX_AMOUNT_OF_MAILS_TO_CANDIDATE: return self.times_email_has_been_sent += 1 if self.candidacy is None: username = self.candidate.id[:20] + unicode(uuid.uuid4())[:4] password = uuid.uuid4().hex[:12] self.initial_password = password user = User.objects.create(username=username) user.set_password(self.initial_password) user.email = self.mail user.save() self.candidacy = Candidacy.objects.create(user=user, candidate=self.candidate) site = Site.objects.get_current() login_url = reverse('backend_candidate:candidate_auth_login') full_login_url = "http://%s%s" % (site.domain, login_url) send_mail( { 'contact': self, 'login_url': full_login_url }, 'candidates/mail_with_user_and_password', to=[self.mail], ) self.save()
def send(self): context = self.get_context() if not context['commitments']: return for commitment in context['commitments']: commitment.notifications.filter(user=self.user).update( notified=True) send_mail(context, self.template_prefix, to=[self.user.email])
def notify_new(self): site = Site.objects.get_current() mail_context = { 'area': self.area, 'temporary_data': self, 'site': site, } send_mail(mail_context, 'new_temporary_proposal', to=[self.proposer.email])
def send_mail_with_link(self): if self.times_email_has_been_sent >= settings.MAX_AMOUNT_OF_MAILS_TO_CANDIDATE: return send_mail( {'contact': self}, 'candidates/join_us_pls', to=[self.mail], ) self.times_email_has_been_sent += 1 self.save()
def reject(self, reason, moderator=None): self.rejected_reason = reason self.status = ProposalTemporaryData.Statuses.Rejected self.save() mail_context = { 'area': self.area, 'temporary_data': self, 'moderator': moderator, } send_mail(mail_context, 'popular_proposal_rejected', to=[self.proposer.email])
def notify_new(self): site = Site.objects.get_current() mail_context = { 'area': self.area, 'temporary_data': self, 'site': site, } if self.proposer.email: send_mail(mail_context, 'new_temporary_proposal', to=[self.proposer.email])
def send(self): for person in self.people.all(): outbound_message = OutboundMessage.objects.create(message=self, person=person) reply_to = '%(localpart)s+%(key)s@%(domain)s' % {'localpart': settings.EMAIL_LOCALPART, 'key': outbound_message.key, 'domain': settings.EMAIL_DOMAIN} context = {'election':self.election, 'candidate': person, 'message': self} send_mail(context, 'nueva_pregunta_candidato', to=[person.email], \ reply_to=reply_to) self.status.sent = True self.status.save()
def save(self, *args, **kwargs): super(ProposalLike, self).save(*args, **kwargs) created = self.pk is not None if created: if self.user.profile.is_organization: template = 'new_sponsorshipnotification_to_proposer' context = {'like': self} send_mail(context, template, to=[self.proposal.proposer.email]) template = 'new_sponsorshipnotification_to_sponsorer' context = {'like': self} send_mail(context, template, to=[self.user.email]) self.numerical_notification()
def reject(self, reason, moderator=None): self.rejected_reason = reason self.status = ProposalTemporaryData.Statuses.Rejected self.save() site = Site.objects.get_current() mail_context = { 'area': self.area, 'temporary_data': self, 'moderator': moderator, 'site': site, } send_mail(mail_context, 'popular_proposal_rejected', to=[self.proposer.email])
def notify_candidates_of_new(self): if not (settings.NOTIFY_CANDIDATES and settings.NOTIFY_CANDIDATES_OF_NEW_PROPOSAL): return template = 'notification_for_candidates_of_new_proposal' context = {'proposal': self} area = Area.objects.get(id=self.area.id) for election in area.elections.all(): for candidate in election.candidates.all(): for contact in candidate.contacts.all(): context.update({'candidate': candidate}) send_mail(context, template, to=[contact.mail])
def send_mail(self, sleep): context = self.suggestion.get_context_for_candidate(self.candidate) context['formset'] = self.formset context['candidate_incremental'] = self for candidacy in self.candidate.candidacy_set.all(): context['candidacy'] = candidacy subject = None if self.suggestion and self.suggestion.subject: subject = self.suggestion.subject send_mail(context, 'suggestions_for_candidates', subject=subject, to=[candidacy.user.email]) time.sleep(sleep)
def send(self): proposals = self.get_proposals() subscriptions = self.get_subscriptions() if not proposals: return False context = { 'proposals': proposals, 'subscriptions': subscriptions, 'user': self.user } send_mail(context, 'search_proposals_subscription', to=[self.user.email]) return True
def send(self): for person in self.people.all(): outbound_message = OutboundMessage.objects.create(message=self, person=person) reply_to = '%(localpart)s+%(key)s@%(domain)s' % { 'localpart': settings.EMAIL_LOCALPART, 'key': outbound_message.key, 'domain': settings.EMAIL_DOMAIN } context = { 'election': self.election, 'candidate': person, 'message': self } send_mail(context, 'nueva_pregunta_candidato', to=[person.email], \ reply_to=reply_to) self.status.sent = True self.status.save()
def send_mail_with_user_and_password(self): if self.times_email_has_been_sent >= settings.MAX_AMOUNT_OF_MAILS_TO_CANDIDATE: return self.times_email_has_been_sent += 1 if self.candidacy is None: username = self.candidate.id + unicode(uuid.uuid4())[:4] password = uuid.uuid4().hex self.initial_password = password user = User.objects.create(username=username) user.set_password(self.initial_password) user.save() self.candidacy = Candidacy.objects.create(user=user, candidate=self.candidate) site = Site.objects.get_current() login_url = reverse('backend_candidate:candidate_auth_login') full_login_url = "http://%s%s" % (site.domain, login_url) send_mail({'contact': self, 'login_url': full_login_url}, 'candidates/mail_with_user_and_password', to=[self.mail],) self.save()
def create_proposal(self, moderator=None): self.status = ProposalTemporaryData.Statuses.Accepted self.save() title = self.get_title() popular_proposal = PopularProposal(proposer=self.proposer, title=title, area=self.area, temporary=self, data=self.data) if 'organization' in self.data.keys() and self.data['organization']: organization, created = Organization.objects.get_or_create(name=self.data['organization']) popular_proposal.organization = organization popular_proposal.save() mail_context = { 'area': self.area, 'temporary_data': self, 'moderator': moderator, } send_mail(mail_context, 'popular_proposal_accepted', to=[self.proposer.email]) return popular_proposal
def create_proposal(self, moderator=None): self.status = ProposalTemporaryData.Statuses.Accepted self.save() title = self.get_title() popular_proposal = PopularProposal(proposer=self.proposer, title=title, area=self.area, temporary=self, data=self.data) if 'organization' in self.data.keys() and self.data['organization']: organization, created = Organization.objects.get_or_create(name=self.data['organization']) popular_proposal.organization = organization Enrollment.objects.create(organization=organization, user=self.proposer) popular_proposal.save() site = Site.objects.get_current() mail_context = { 'area': self.area, 'temporary_data': self, 'moderator': moderator, 'site': site, } send_mail(mail_context, 'popular_proposal_accepted', to=[self.proposer.email]) return popular_proposal
def send_mail_with_link(self): if self.times_email_has_been_sent >= settings.MAX_AMOUNT_OF_MAILS_TO_CANDIDATE: return send_mail({'contact': self}, 'candidates/join_us_pls', to=[self.mail],) self.times_email_has_been_sent += 1 self.save()
def notify(self): for person in self.get_who(): email = self.get_mail_from(person) context = self.get_context(person=person) template = self.get_template() send_mail(context, template, to=[email])