Example #1
0
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
Example #2
0
def prepareMail(mail):
    newMail = Mail()
    newMail.mop = mail.mop
    newMail.unit = mail.unit
    newMail.type = Mail.TYPE_RECEIVED
    newMail.processed = True
    return newMail
    
Example #3
0
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,})