def test_flow(self): # Export page1 = self.new_page(content={'title': 'page1', 'slug': 'slug1'}) tag1 = Tag.objects.create(name="t1") page1.tags.add(tag1) page2 = self.new_page(content={'title': 'page2', 'slug': 'slug2'}) tag2 = Tag.objects.create(name="t2") page2.tags.add(tag2) data = pages_to_json(Page.objects.all()) # Clear Page.objects.all().delete() Tag.objects.all().delete() # Import user = User.objects.create() json_to_pages(data, user) pages = Page.objects.all() self.assertEqual(pages.count(), 2) page1 = Page.objects.from_slug('slug1') self.assertEqual(page1.title(), 'page1') self.assertEqual([t.name for t in page1.tags.all()], ['t1']) page1 = Page.objects.from_slug('slug2') self.assertEqual(page1.title(), 'page2') self.assertEqual([t.name for t in page1.tags.all()], ['t2'])
def handle(self, user, **options): """ Import pages in JSON format. When creating a page and the original author does not exist, use user as the new author. User may be specified by username, id or email address. """ monkeypatch_remove_pages_site_restrictions() user_model = get_user_model() for match in ('username', 'pk', 'email'): try: u = user_model.objects.get(**{match: user}) break except (user_model.DoesNotExist, ValueError): continue else: raise CommandError( _("User with username/id/email = '%s' not found") % user) json = sys.stdin.read() errors, pages_created = json_to_pages(json, u) if errors: for e in errors: sys.stderr.write(e + '\n') raise CommandError(_("Errors encountered while importing JSON")) for page, created, messages in pages_created: print((_("%s created.") if created else _("%s modified.")) % (page.get_complete_slug())) for m in messages: print(" - " + m)
def handle(self, user, **options): """ Import pages in JSON format. When creating a page and the original author does not exist, use user as the new author. User may be specified by username, id or email address. """ monkeypatch_remove_pages_site_restrictions() user_model = get_user_model() for match in ('username', 'pk', 'email'): try: u = user_model.objects.get(**{match: user}) break except (user_model.DoesNotExist, ValueError): continue else: raise CommandError(_("User with username/id/email = '%s' not found") % user) json = sys.stdin.read() errors, pages_created = json_to_pages(json, u) if errors: for e in errors: sys.stderr.write(e + '\n') raise CommandError(_("Errors encountered while importing JSON")) for page, created, messages in pages_created: print((_("%s created.") if created else _("%s modified.")) % ( page.get_complete_slug())) for m in messages: print(" - " + m)
def import_pages_from_json(modeladmin, request, queryset, template_name="admin/pages/page/import_pages.html"): try: j = request.FILES["json"] except KeyError: return render_to_response( template_name, {"nofile": True, "app_label": "pages", "opts": Page._meta}, RequestContext(request) ) errors, pages_created = json_to_pages(j.read(), request.user, get_language_from_request(request)) return render_to_response( template_name, {"errors": errors, "pages_created": pages_created, "app_label": "pages", "opts": Page._meta}, RequestContext(request), )
def import_pages_from_json(modeladmin, request, queryset, template_name='admin/pages/page/import_pages.html'): try: j = request.FILES['json'] except KeyError: return render(request, template_name, { 'nofile': True, 'app_label': 'pages', 'opts': Page._meta, }, RequestContext(request)) errors, pages_created = json_to_pages(j.read(), request.user, get_language_from_request(request)) return render(request, template_name, { 'errors': errors, 'pages_created': pages_created, 'app_label': 'pages', 'opts': Page._meta, }, RequestContext(request))
def import_pages_from_json(modeladmin, request, queryset, template_name='admin/pages/page/import_pages.html'): try: j = request.FILES['json'] except KeyError: return render_to_response(template_name, { 'nofile': True, 'app_label': 'pages', 'opts': Page._meta, }, RequestContext(request)) errors, pages_created = json_to_pages(j.read(), request.user, get_language_from_request(request)) return render_to_response( template_name, { 'errors': errors, 'pages_created': pages_created, 'app_label': 'pages', 'opts': Page._meta, }, RequestContext(request))