def preview(request, id=None, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template="pages/preview.html"): content_type = get_object_or_404(ContentType, app_label='pages', model='page') page = None if id: page = get_object_or_404(Page, pk=id) if request.method == "POST": if page: form = form_class(request.POST, request.FILES, instance=page, user=request.user) else: form = form_class(request.POST, request.FILES, user=request.user) metaform = meta_form_class(request.POST, prefix='meta') categoryform = category_form_class(content_type, request.POST, prefix='category') if form.is_valid(): page = form.save(commit=False) edit_button = False if request.POST['preview_for'] == 'edit': edit_button = True f = form.cleaned_data['header_image'] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f, save=False) page.header_image = header return render_to_response(template, { 'page': page, 'form': form, 'metaform': metaform, 'categoryform': categoryform, 'edit_button': edit_button }, context_instance=RequestContext(request)) return HttpResponseRedirect(reverse('page.search'))
def preview( request, id=None, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template="pages/preview.html", ): content_type = get_object_or_404(ContentType, app_label="pages", model="page") page = None if id: page = get_object_or_404(Page, pk=id) if request.method == "POST": if page: form = form_class(request.POST, request.FILES, instance=page, user=request.user) else: form = form_class(request.POST, request.FILES, user=request.user) metaform = meta_form_class(request.POST, prefix="meta") categoryform = category_form_class(content_type, request.POST, prefix="category") if form.is_valid(): page = form.save(commit=False) edit_button = False if request.POST["preview_for"] == "edit": edit_button = True f = form.cleaned_data["header_image"] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f, save=False) page.header_image = header return render_to_response( template, { "page": page, "form": form, "metaform": metaform, "categoryform": categoryform, "edit_button": edit_button, }, context_instance=RequestContext(request), ) return HttpResponseRedirect(reverse("page.search"))
def preview(request, id=None, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template="pages/preview.html"): content_type = get_object_or_404(ContentType, app_label='pages', model='page') page = None if id: page = get_object_or_404(Page, pk=id) if request.method == "POST": if page: form = form_class(request.POST, request.FILES, instance=page, user=request.user) else: form = form_class(request.POST, request.FILES, user=request.user) metaform = meta_form_class(request.POST, prefix='meta') categoryform = category_form_class(content_type, request.POST, prefix='category') if form.is_valid(): page = form.save(commit=False) edit_button = False if request.POST['preview_for'] == 'edit': edit_button = True f = form.cleaned_data['header_image'] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f, save=False) page.header_image = header return render_to_response(template, {'page': page, 'form': form, 'metaform': metaform, 'categoryform': categoryform, 'edit_button': edit_button}, context_instance=RequestContext(request)) return HttpResponseRedirect(reverse('page.search'))
def add( request, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template_name="pages/add.html", ): if not has_perm(request.user, "pages.add_page"): raise Http403 content_type = get_object_or_404(ContentType, app_label="pages", model="page") if request.method == "POST": form = form_class(request.POST, request.FILES, user=request.user) metaform = meta_form_class(request.POST, prefix="meta") categoryform = category_form_class(content_type, request.POST, prefix="category") if form.is_valid() and metaform.is_valid() and categoryform.is_valid(): page = form.save() # handle header image f = form.cleaned_data["header_image"] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f) page.header_image = header # save meta meta = metaform.save() page.meta = meta ## update the category and subcategory page.update_category_subcategory( categoryform.cleaned_data["category"], categoryform.cleaned_data["sub_category"] ) # add all permissions page = update_perms_and_save(request, form, page) messages.add_message(request, messages.SUCCESS, _("Successfully added %(p)s" % {"p": unicode(page)})) checklist_update("add-page") if not request.user.profile.is_superuser: # send notification to administrators recipients = get_notice_recipients("module", "pages", "pagerecipients") if recipients: if notification: extra_context = {"object": page, "request": request} notification.send_emails(recipients, "page_added", extra_context) if page.status and page.status_detail == "active": return HttpResponseRedirect(reverse("page", args=[page.slug])) return HttpResponseRedirect(reverse("page.search")) else: initial_category_form_data = {"app_label": "pages", "model": "page", "pk": 0} form = form_class(user=request.user) metaform = meta_form_class(prefix="meta") categoryform = category_form_class(content_type, initial=initial_category_form_data, prefix="category") return render_to_response( template_name, {"form": form, "metaform": metaform, "categoryform": categoryform}, context_instance=RequestContext(request), )
def edit( request, id, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template_name="pages/edit.html", ): page = get_object_or_404(Page, pk=id) if not has_perm(request.user, "pages.change_page", page): raise Http403 content_type = get_object_or_404(ContentType, app_label="pages", model="page") if request.method == "POST": form = form_class(request.POST, request.FILES, instance=page, user=request.user) metaform = meta_form_class(request.POST, instance=page.meta, prefix="meta") categoryform = category_form_class(content_type, request.POST, prefix="category") if form.is_valid() and metaform.is_valid() and categoryform.is_valid(): page = form.save() # handle header image f = form.cleaned_data["header_image"] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f) page.header_image = header # save meta meta = metaform.save() page.meta = meta ## update the category and subcategory page.update_category_subcategory( categoryform.cleaned_data["category"], categoryform.cleaned_data["sub_category"] ) # update all permissions page = update_perms_and_save(request, form, page) if page.pk == 1: # the about page has id 1 in the npo defaults fixture checklist_update("update-about") messages.add_message(request, messages.SUCCESS, _("Successfully updated %(p)s" % {"p": unicode(page)})) if not request.user.profile.is_superuser: # send notification to administrators recipients = get_notice_recipients("module", "pages", "pagerecipients") if recipients: if notification: extra_context = {"object": page, "request": request} notification.send_emails(recipients, "page_edited", extra_context) return HttpResponseRedirect(reverse("page", args=[page.slug])) else: form = form_class(instance=page, user=request.user) metaform = meta_form_class(instance=page.meta, prefix="meta") # setup categories category = Category.objects.get_for_object(page, "category") sub_category = Category.objects.get_for_object(page, "sub_category") initial_category_form_data = { "app_label": "pages", "model": "page", "pk": page.pk, "category": getattr(category, "name", "0"), "sub_category": getattr(sub_category, "name", "0"), } categoryform = category_form_class(content_type, initial=initial_category_form_data, prefix="category") return render_to_response( template_name, {"page": page, "form": form, "metaform": metaform, "categoryform": categoryform}, context_instance=RequestContext(request), )
def add(request, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template_name="pages/add.html"): if not has_perm(request.user, 'pages.add_page'): raise Http403 content_type = get_object_or_404(ContentType, app_label='pages', model='page') if request.method == "POST": form = form_class(request.POST, request.FILES, user=request.user) metaform = meta_form_class(request.POST, prefix='meta') categoryform = category_form_class(content_type, request.POST, prefix='category') if form.is_valid() and metaform.is_valid() and categoryform.is_valid(): page = form.save() # handle header image f = form.cleaned_data['header_image'] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f) page.header_image = header #save meta meta = metaform.save() page.meta = meta ## update the category and subcategory page.update_category_subcategory( categoryform.cleaned_data['category'], categoryform.cleaned_data['sub_category'] ) # add all permissions page = update_perms_and_save(request, form, page) messages.add_message(request, messages.SUCCESS, _('Successfully added %(p)s' % {'p': unicode(page)})) checklist_update('add-page') if not request.user.profile.is_superuser: # send notification to administrators recipients = get_notice_recipients('module', 'pages', 'pagerecipients') if recipients: if notification: extra_context = { 'object': page, 'request': request, } notification.send_emails(recipients, 'page_added', extra_context) if page.status and page.status_detail == 'active': return HttpResponseRedirect(reverse('page', args=[page.slug])) return HttpResponseRedirect(reverse('page.search')) else: initial_category_form_data = { 'app_label': 'pages', 'model': 'page', 'pk': 0, } form = form_class(user=request.user) metaform = meta_form_class(prefix='meta') categoryform = category_form_class(content_type, initial=initial_category_form_data, prefix='category') return render_to_response(template_name, { 'form': form, 'metaform': metaform, 'categoryform': categoryform, }, context_instance=RequestContext(request))
def edit(request, id, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template_name="pages/edit.html"): page = get_object_or_404(Page, pk=id) if not has_perm(request.user, 'pages.change_page', page): raise Http403 content_type = get_object_or_404(ContentType, app_label='pages', model='page') if request.method == "POST": form = form_class(request.POST, request.FILES, instance=page, user=request.user) metaform = meta_form_class(request.POST, instance=page.meta, prefix='meta') categoryform = category_form_class(content_type, request.POST, prefix='category') if form.is_valid() and metaform.is_valid() and categoryform.is_valid(): page = form.save() # handle header image f = form.cleaned_data['header_image'] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f) page.header_image = header #save meta meta = metaform.save() page.meta = meta ## update the category and subcategory page.update_category_subcategory( categoryform.cleaned_data['category'], categoryform.cleaned_data['sub_category'] ) # update all permissions page = update_perms_and_save(request, form, page) if page.pk == 1: # the about page has id 1 in the npo defaults fixture checklist_update('update-about') messages.add_message(request, messages.SUCCESS, _('Successfully updated %(p)s' % {'p': unicode(page)})) if not request.user.profile.is_superuser: # send notification to administrators recipients = get_notice_recipients('module', 'pages', 'pagerecipients') if recipients: if notification: extra_context = { 'object': page, 'request': request, } notification.send_emails(recipients, 'page_edited', extra_context) return HttpResponseRedirect(reverse('page', args=[page.slug])) else: form = form_class(instance=page, user=request.user) metaform = meta_form_class(instance=page.meta, prefix='meta') #setup categories category = Category.objects.get_for_object(page, 'category') sub_category = Category.objects.get_for_object(page, 'sub_category') initial_category_form_data = { 'app_label': 'pages', 'model': 'page', 'pk': page.pk, 'category': getattr(category, 'name', '0'), 'sub_category': getattr(sub_category, 'name', '0') } categoryform = category_form_class(content_type, initial=initial_category_form_data, prefix='category') return render_to_response(template_name, { 'page': page, 'form': form, 'metaform': metaform, 'categoryform': categoryform, }, context_instance=RequestContext(request))
def preview(request, id=None, form_class=PageForm, meta_form_class=MetaForm, category_form_class=CategoryForm, template="pages/preview.html"): content_type = get_object_or_404(ContentType, app_label='pages', model='page') page = None if id: page = get_object_or_404(Page, pk=id) if request.method == "POST": if page: form = form_class(request.POST, request.FILES, instance=page, user=request.user) else: form = form_class(request.POST, request.FILES, user=request.user) metaform = meta_form_class(request.POST, prefix='meta') categoryform = category_form_class(content_type, request.POST, prefix='category') if form.is_valid(): page = form.save(commit=False) edit_button = False if request.POST.get('preview_for', '') == 'edit': edit_button = True f = form.cleaned_data['header_image'] if f: header = HeaderImage() header.content_type = ContentType.objects.get_for_model(Page) header.object_id = page.id header.creator = request.user header.creator_username = request.user.username header.owner = request.user header.owner_username = request.user.username filename = "%s-%s" % (page.slug, f.name) f.file.seek(0) header.file.save(filename, f, save=False) page.header_image = header if 'preview_for' not in request.POST: page.save() if metaform.is_valid(): #save meta meta = metaform.save() page.meta = meta if categoryform.is_valid(): ## update the category and subcategory page.update_category_subcategory( categoryform.cleaned_data['category'], categoryform.cleaned_data['sub_category'] ) # update all permissions page = update_perms_and_save(request, form, page) messages.add_message(request, messages.SUCCESS, _('Successfully updated %(p)s' % {'p': str(page)})) if not request.user.profile.is_superuser: # send notification to administrators recipients = get_notice_recipients('module', 'pages', 'pagerecipients') if recipients: if notification: extra_context = { 'object': page, 'request': request, } notification.send_emails(recipients, 'page_edited', extra_context) return HttpResponseRedirect(reverse('page', args=[page.slug])) return render_to_resp(request=request, template_name=template, context={'page': page, 'form': form, 'metaform': metaform, 'categoryform': categoryform, 'edit_button': edit_button}) return HttpResponseRedirect(reverse('page.search'))