Beispiel #1
0
    def handle(self, *args, **options):
        if len(args) != 1:
            raise CommandError("This command takes exactly one argument")

        try:
            f = open(args[0], "r")
            u = update.wurfl(f)
            f.close()

            print "-- %s Update --" % u.get_update_type_display()
            print u.summary
        except Exception, e:
            if options.get("traceback", False):
                import traceback

                traceback.print_exc()
            else:
                raise CommandError(e)
Beispiel #2
0
    def update_wurfl_view(self, request):

        if not self.has_add_permission(request):
            raise PermissionDenied
        
        context = RequestContext(request)
        
        opts = self.model._meta
        app_label = opts.app_label

        context.update({
            'opts': opts,
            'root_path': getattr(self.admin_site, 'root_path', None),
            'has_add_permission': self.has_add_permission(request),
            'current_app': self.admin_site.name,
            'app_label': app_label,
            'original': 'Import',
            'model_admin': self
        })

        if request.method == 'GET':
            form = WurflImportForm()
        else:
            form = WurflImportForm(data=request.POST, files=request.FILES)
            if form.is_valid():
                temp_file = tempfile.NamedTemporaryFile(mode='w+b', delete=True)
                for chunk in request.FILES['xml_file'].chunks():
                    temp_file.write(chunk)
                temp_file.seek(0)
                stats = update.wurfl(temp_file.name)
                temp_file.close()

                self.message_user(request, "%s %s: %s" %
                    (stats.get_update_type_display(), _(' updated successfully'), mark_safe(stats.summary)))
                return HttpResponseRedirect(reverse('admin:wurfl_update_changelist'))

        context['media'] = self.media + form.media
        context['adminform'] = form

        return render_to_response('admin/wurfl/import.html', context)