Ejemplo n.º 1
0
    def save(self):
        cleaned_data = self.cleaned_data

        proposal = None
        with transaction.atomic():
            proposal = Proposal.objects.create(
                first_name=cleaned_data["first_name"],
                last_name=cleaned_data["last_name"],
                address=cleaned_data["address"],
                email=cleaned_data["email"],
                phone=cleaned_data["phone"],
                foirequest=self.foirequest,
                publicbody=cleaned_data["publicbody"],
                description=cleaned_data["description"],
            )
            last_date = None
            for kind, _kind_detail in ProposalDocument.DOCUMENT_KINDS:
                pd = ProposalDocument(proposal=proposal, kind=kind)
                if self.foirequest is None:
                    pd.date = cleaned_data["date_%s" % kind]
                    pd.document = cleaned_data["document_%s" % kind]
                else:
                    fm = cleaned_data["foimessage_%s" % kind]
                    pd.foimessage = fm
                    pd.date = fm.timestamp.date()
                if kind == "final_rejection":
                    last_date = pd.date
                pd.save()
            proposal.legal_date = calculate_month_range_de(last_date)
            proposal.save()
        return proposal
Ejemplo n.º 2
0
 def calculate_due_date(self, date=None):
     if date is None:
         date = datetime.now()
     if self.max_response_time_unit == "month_de":
         return calculate_month_range_de(date, self.max_response_time)
     elif self.max_response_time_unit == "day":
         return date + timedelta(days=self.max_response_time)
     elif self.max_response_time_unit == "working_day":
         return calculate_workingday_range(date, self.max_response_time)
Ejemplo n.º 3
0
 def calculate_due_date(self, date=None, value=None):
     if date is None:
         date = timezone.now()
     if value is None:
         value = self.max_response_time
     if self.max_response_time_unit == "month_de":
         return calculate_month_range_de(date, value)
     elif self.max_response_time_unit == "day":
         return date + timedelta(days=value)
     elif self.max_response_time_unit == "working_day":
         return calculate_workingday_range(date, value)