def deferred(inforequest): branch = Branch( obligee=self.cleaned_data[u'obligee'], inforequest=inforequest, ) branch.save() subject = self.fields[u'subject'].finalize( self.cleaned_data[u'subject']) content = self.fields[u'content'].finalize( self.cleaned_data[u'content'], dict( unique_email=inforequest.unique_email, obligee=self.cleaned_data[u'obligee'], )) action = Action( branch=branch, subject=subject, content=content, effective_date=inforequest.submission_date, type=Action.TYPES.REQUEST, ) action.save() action.attachment_set = self.cleaned_data[u'attachments']
def save_action(self): assert self.values[u'result'] == u'action' assert self.values[u'result_action'] in Action.OBLIGEE_ACTION_TYPES assert not self.email or self.values[ u'result_action'] in Action.OBLIGEE_EMAIL_ACTION_TYPES assert self.values[u'result_branch'].can_add_action( self.values[u'result_action']) action = Action(type=self.values[u'result_action']) action.branch = self.values[u'result_branch'] action.email = self.email if self.email else None action.subject = self.email.subject if self.email else u'' action.content = self.email.text if self.email else u'' action.effective_date = (local_date(self.email.processed) if self.email else self.values[u'result_effective_date']) action.file_number = self.values.get(u'result_file_number', u'') action.deadline = self.values.get(u'result_deadline', None) action.disclosure_level = self.values.get(u'result_disclosure_level', None) action.refusal_reason = self.values.get(u'result_refusal_reason', None) action.save() if self.email: for attch in self.email.attachments: attachment = attch.clone(action) attachment.save() else: action.attachment_set = self.values[u'result_attachments'] for obligee in self.values.get(u'result_advanced_to', []): if obligee: sub_branch = Branch( obligee=obligee, inforequest=action.branch.inforequest, advanced_by=action, ) sub_branch.save() sub_action = Action( branch=sub_branch, effective_date=action.effective_date, type=Action.TYPES.ADVANCED_REQUEST, ) sub_action.save() if self.email: self.inforequestemail.type = InforequestEmail.TYPES.OBLIGEE_ACTION self.inforequestemail.save(update_fields=[u'type']) return action
def deferred(inforequest): branch = Branch( inforequest=inforequest, obligee=self.cleaned_data[u'obligee'], ) branch.save() action = Action( branch=branch, type=Action.TYPES.REQUEST, subject=self.cleaned_data[u'subject'], content=self.cleaned_data[u'content'], effective_date=inforequest.submission_date, ) action.save() action.attachment_set = self.cleaned_data[u'attachments'] if self.cleaned_data[u'send_email']: action.send_by_email()