def save(self): resp = super(File, self).save() status_emails = self.deadline.status.actionstatus_set.get( product=self.deadline.sale.product).actionstatusemails_set.all() if status_emails: recipients = () for status_email in status_emails: if status_email.action_email == 'own': recipients += (self.deadline.sale.owner, ) elif status_email.action_email == 'buy': recipients += (self.deadline.sale.buyer.email, ) elif status_email.action_email == 'inc': recipients += ( self.deadline.sale.product.insurance_company.email, ) elif status_email.action_email == 'usr': for email_user in status_email.actionstatusemailsusers_set.all( ): recipients += (email_user.user, ) notification = Notification(actor=self.deadline, recipient=recipients) notification.send( _('New file uploaded to Sale [#%d]') % self.deadline.sale.pk, _('New file uploaded to Sale [#%d] in status %s. Buyer %s, CPF/CNPJ %s' ) % (self.deadline.sale.pk, self.deadline.status, self.deadline.sale.buyer.name, self.deadline.sale.buyer.cpf_cnpj)) return resp
def save(self, *a, **kw): if not self.status_id: self.status = self.sale.product.begin_status if self.pk is None: resp = super(Deadline, self).save(*a, **kw) status_emails = self.status.actionstatus_set.get( product=self.sale.product).actionstatusemails_set.all() if status_emails: recipients = () for status_email in status_emails: if status_email.action_email == 'own': recipients += (self.sale.owner, ) elif status_email.action_email == 'buy': recipients += (self.sale.buyer.email, ) elif status_email.action_email == 'inc': recipients += ( self.sale.product.insurance_company.email, ) elif status_email.action_email == 'usr': for email_user in status_email.actionstatusemailsusers_set.all( ): recipients += (email_user.user, ) notification = Notification(actor=self, recipient=recipients) notification.send( _('New Sale [#%d] created') % (self.pk), _('The new Sale [#%d] was created with status %s. Buyer %s, CPF/CNPJ %s ' ) % (self.pk, self.status, self.sale.buyer.name, self.sale.buyer.cpf_cnpj)) else: resp = super(Deadline, self).save(*a, **kw) new = Deadline.objects.get(pk=self.pk) if new.status != self.status: if new.status.actionstatus_set.filter( product=self.sale.product).exists(): status_emails = new.status.actionstatus_set.get( product=self.sale.product).actionstatusemails_set.all( ) if status_emails: recipients = () for status_email in status_emails: if status_email.action_email == 'own': # recipients += (self.sale.product.owner, ) recipients += (self.sale.owner, ) elif status_email.action_email == 'buy': recipients += (self.sale.buyer.email, ) elif status_email.action_email == 'inc': recipients += (self.sale.product. insurance_company.email, ) elif status_email.action_email == 'usr': for email_user in status_email.actionstatusemailsusers_set.all( ): recipients += (email_user.user, ) notification = Notification(actor=self, recipient=recipients) notification.send( _('Sale [%d] has status changed') % (self.pk), _('The Sale [%d] has status changed from %s to %s . Buyer %s, CPF/CNPJ %s ' ) % (self.pk, self.status, new.status, new.sale.buyer.name, new.sale.buyer.cpf_cnpj)) return resp