Пример #1
0
def diff_submission_forms(old_submission_form, new_submission_form):
    assert(old_submission_form.submission == new_submission_form.submission)
    submission = new_submission_form.submission

    differ = diff_match_patch()

    old = render_model_instance(old_submission_form)
    new = render_model_instance(new_submission_form)

    label_lookup = []
    for field_info in paper_forms.get_field_info_for_model(SubmissionForm):
        if field_info.number:
            label_lookup.append((field_info.name, u'%s %s' % (field_info.number, field_info.label)))
        else:
            label_lookup.append((field_info.name, field_info.label))

    label_lookup += [
        ('foreignparticipatingcenter_set', _(u'Auslandszentren')),
        ('investigators', _(u'Zentren')),
        ('measures', _(u'Studienbezogen/Routinemäßig durchzuführende Therapie und Diagnostik')),
        ('nontesteduseddrug_set', _(u'Sonstige im Rahmen der Studie verabreichte Medikamente, deren Wirksamkeit und/oder Sicherheit nicht Gegenstand der Prüfung sind')),
        ('documents', _(u'Dokumente')),
    ]


    diffs = []
    sorted_keys = [x[0] for x in label_lookup if x[0] in old.keys()]
    for field in sorted_keys:
        diff = old[field].diff(new[field])
        if differ.diff_levenshtein(diff or []):
            label = dict(label_lookup)[field]
            diffs.append((label, diff))
    
    return diffs
Пример #2
0
    def handle(self, ec_number, sf_pk, **options):
        try:
            s = Submission.objects.get(ec_number=ec_number)
        except Submission.DoesNotExist:
            raise CommandError("No submission matches the given EC-Number: %s" % ec_number)

        submission_form = s.forms.get(pk=sf_pk)
        if not submission_form:
            raise CommandError("This submission does not have an attached SubmissionForm.")

        pdf = render_pdf(FakeRequest(), 'db/submissions/xhtml2pdf/view.html', {
            'paper_form_fields': paper_forms.get_field_info_for_model(SubmissionForm),
            'submission_form': submission_form,
            'documents': submission_form.documents.filter(deleted=False).order_by('doctype__name', '-date'),
        })
        
        open('%s.pdf' % s.get_ec_number_display(separator='-'), 'w').write(pdf)
Пример #3
0
def submission_pdf(request, submission_form_pk=None):
    submission_form = get_object_or_404(SubmissionForm, pk=submission_form_pk)    
    filename = 'ek-%s-Einreichung.pdf' % submission_form.submission.get_ec_number_display(separator='-')
    
    if not submission_form.pdf_document:
        pdf = render_pdf(request, 'db/submissions/xhtml2pdf/view.html', {
            'paper_form_fields': paper_forms.get_field_info_for_model(SubmissionForm),
            'submission_form': submission_form,
            'documents': submission_form.documents.filter(deleted=False).order_by('doctype__name', '-date'),
        })
        doc = Document.objects.create_from_buffer(pdf)
        submission_form.pdf_document = doc
        submission_form.save()
        pdf = doc.file.read()
    
    submission_form.pdf_document.file.seek(0)
    pdf = submission_form.pdf_document.file.read()
    return pdf_response(pdf, filename=filename)