def handle(self, **options): ecxf = Serializer() tpl = get_template('docs/ecx/base.html') print tpl.render(Context({ 'version': ecxf.version, 'fields': ecxf.docs(), })).encode('utf-8')
def import_submission_form(request): if 'file' in request.FILES: serializer = Serializer() submission_form = serializer.read(request.FILES['file']) return HttpResponseRedirect(reverse('ecs.core.views.readonly_submission_form', kwargs={'submission_form_pk': submission_form.pk})) return render(request, 'submissions/import.html', { })
def test_import_export(self): with sudo(User.objects.get_or_create(username='******')[0]): sf = self.create_submission_form() buf = StringIO() serializer = Serializer() serializer.write(sf, buf) cp = serializer.read(buf) self.compare(sf, cp)
def export_submission(request, submission_pk): submission = get_object_or_404(Submission, pk=submission_pk) submission_form = submission.current_submission_form serializer = Serializer() buf = StringIO() serializer.write(submission_form, buf) response = HttpResponse(buf.getvalue(), mimetype='application/ecx') response['Content-Disposition'] = 'attachment;filename=%s.ecx' % submission.get_ec_number_display(separator='-') return response
def clean_file(self): f = self.cleaned_data['file'] from ecs.core.serializer import Serializer serializer = Serializer() try: with transaction.atomic(): self.submission_form = serializer.read(self.cleaned_data['file']) except Exception as e: import_error_logger.debug('invalid ecx file') self.add_error('file', _('This file is not a valid ECX archive.')) f.seek(0) return f
def handle(self, ec_number, **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) sf = s.current_submission_form if not sf: raise CommandError("This submission does not have an attached SubmissionForm.") f = file(options['out'] or "%s.ecx" % s.get_ec_number_display(separator='-'), 'w') ecxf = Serializer() ecxf.write(sf, f) f.close()
def handle(self, **options): if options['output_type'] not in ['html', 'pdf']: raise CommandError('Error: --type must be one of "html", "pdf"') if not options['outfile']: raise CommandError( 'Error: Outputfile "-o filename" must be specified') ecxf = Serializer() tpl = get_template('docs/ecx/base.html') html = tpl.render({ 'version': ecxf.version, 'fields': ecxf.docs(), }) with open(options['outfile'], 'wb') as f: if options['output_type'] == "html": f.write(html.encode('utf-8')) else: f.write(html2pdf(html))
def handle(self, file, **options): serializer = Serializer() with open(file, 'rb') as f: serializer.read(f)