예제 #1
0
파일: ecx_docs.py 프로젝트: emulbreh/ecs
 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')
예제 #2
0
파일: submissions.py 프로젝트: emulbreh/ecs
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', {
    
    })
예제 #3
0
파일: serializer.py 프로젝트: emulbreh/ecs
 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)
예제 #4
0
파일: submissions.py 프로젝트: emulbreh/ecs
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
예제 #5
0
파일: forms.py 프로젝트: wuxxin/ecs
 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
예제 #6
0
파일: export_ecx.py 프로젝트: emulbreh/ecs
    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()
예제 #7
0
    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))
예제 #8
0
파일: import_ecx.py 프로젝트: emulbreh/ecs
 def handle(self, file, **options):
     serializer = Serializer()
     with open(file, 'rb') as f:
         serializer.read(f)