def remove_old_documents(): output = [] randomizedDocument_list = RandomizedDocument.objects.filter(active=True).exclude(mopDocument__clearance=Clearance.CLEARANCE_WHITE) for randomizedDocument in randomizedDocument_list: if randomizedDocument.dueAt and randomizedDocument.dueAt < now(): randomizedDocument.active = False randomizedDocument.save() output.append(randomizedDocument.serial) mopDocumentInstance_list = MopDocumentInstance.objects.filter(randomizedDocument=randomizedDocument).filter(status=MopDocumentInstance.STATUS_ACTIVE) for mopDocumentInstance in mopDocumentInstance_list: mopDocumentInstance.status = MopDocumentInstance.STATUS_REVOKED mopDocumentInstance.save() mail = Mail() mail.mop = mopDocumentInstance.mop mail.type = Mail.TYPE_RECEIVED mail.processed = True mail.unit = mopDocumentInstance.randomizedDocument.unit mail.subject = Mail.SUBJECT_REVOKE_DOCUMENT mail.bodyType = Mail.BODY_REVOKING_DOCUMENT mail.mopDocumentInstance = mopDocumentInstance mail.trust = mopDocumentInstance.getTrustFinal() mail.save() mopDocumentInstance.mop.mopTracker.addTrust(mopDocumentInstance.getTrustFinal(), True) mopDocumentInstance.mop.mopTracker.save() return output
def prepareMail(mail): newMail = Mail() newMail.mop = mail.mop newMail.unit = mail.unit newMail.type = Mail.TYPE_RECEIVED newMail.processed = True return newMail
def mail_compose(request): #TODO Mail needs a sentAt / savedAt value so that trashing email does not change its date if request.method == 'POST': mail = Mail(mop=request.user.mop, type=Mail.TYPE_SENT) if 'send' in request.POST: mail.type = Mail.TYPE_SENT mail.read = True elif 'draft' in request.POST: mail.type = Mail.TYPE_DRAFT mail.read = False form = MailForm(data=request.POST, instance=mail) if form.is_valid(): mail.processed = False mail = form.save() if mail.type == Mail.TYPE_SENT: if not mail.requisitionInstance == None: mail.requisitionInstance.used = True mail.requisitionInstance.save() if not mail.mopDocumentInstance == None: mail.mopDocumentInstance.used = True mail.mopDocumentInstance.save() #TODO remove for real game analyze_mail() return redirect('mop_index') else: #TODO code duplication between here and the else below form.fields["requisitionInstance"].queryset = RequisitionInstance.objects.filter(blank__mop=request.user.mop).filter(used=False).order_by('-modifiedAt') form.fields["mopDocumentInstance"].queryset = MopDocumentInstance.objects.filter(mop=request.user.mop).filter(used=False).order_by('-modifiedAt') form.fields["subject"].choices = Mail.CHOICES_SUBJECT_SENDING return render(request, 'mop/mail_compose.html', {'form' : form,}) else: form = MailForm() form.fields["requisitionInstance"].queryset = RequisitionInstance.objects.filter(blank__mop=request.user.mop).filter(used=False).order_by('-modifiedAt') form.fields["mopDocumentInstance"].queryset = MopDocumentInstance.objects.filter(mop=request.user.mop).filter(used=False).order_by('-modifiedAt') form.fields["subject"].choices = Mail.CHOICES_SUBJECT_SENDING return render(request, 'mop/mail_compose.html', {'form' : form,})