Example #1
0
        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
Example #3
0
        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()
Example #4
0
        def deferred(action):
            action.attachment_set = self.cleaned_data[u'attachments']

            for obligee in self.cleaned_data[u'obligee_set']:
                sub_branch = Branch(
                    inforequest=action.branch.inforequest,
                    obligee=obligee,
                    advanced_by=action,
                )
                sub_branch.save()

                sub_action = Action(
                    branch=sub_branch,
                    type=Action.TYPES.ADVANCED_REQUEST,
                    effective_date=action.effective_date,
                )
                sub_action.save()

            if self.cleaned_data[u'send_email']:
                action.send_by_email()
Example #5
0
    def save(self, commit=True):
        assert self.is_valid()

        branch = Branch(
                inforequest=self.cleaned_data[u'advanced_by'].branch.inforequest,
                obligee=self.cleaned_data[u'obligee'],
                advanced_by=self.cleaned_data[u'advanced_by'],
                )

        @after_saved(branch)
        def deferred(branch):
            action = Action(
                    branch=branch,
                    effective_date=self.cleaned_data[u'advanced_by'].effective_date,
                    type=Action.TYPES.ADVANCED_REQUEST,
                    )
            action.save()

        if commit:
            branch.save()
        return branch
        def deferred(action):
            session_type = ContentType.objects.get_for_model(Session)
            for attachment in self.cleaned_data[u'attachments']:
                # We don't want to steal attachments owned by the email, so we clone them.
                if attachment.generic_type_id != session_type.pk:
                    attachment = attachment.clone(action)
                else:
                    attachment.generic_object = action
                attachment.save()

            for obligee in self.cleaned_data[u'obligee_set']:
                sub_branch = Branch(
                    inforequest=action.branch.inforequest,
                    obligee=obligee,
                    advanced_by=action,
                )
                sub_branch.save()

                sub_action = Action(
                    branch=sub_branch,
                    type=Action.TYPES.ADVANCED_REQUEST,
                    effective_date=action.effective_date,
                )
                sub_action.save()