Changeset 2465
- Timestamp:
- 12/02/09 11:16:53 (8 months ago)
- Location:
- branches/0.9/pylucid_project/pylucid_plugins
- Files:
-
- 1 added
- 4 modified
-
admin_menu/templates/admin_menu/includes/pylucid_admin_menu.html (modified) (1 diff)
-
page_admin/admin_urls.py (modified) (1 diff)
-
page_admin/admin_views.py (modified) (5 diffs)
-
page_admin/forms.py (modified) (2 diffs)
-
page_admin/templates/page_admin/page_order.html (added)
Legend:
- Unmodified
- Added
- Removed
-
branches/0.9/pylucid_project/pylucid_plugins/admin_menu/templates/admin_menu/includes/pylucid_admin_menu.html
r2372 r2465 103 103 {% endif %} 104 104 105 {% if perms.pylucid.change_pagetree %} 106 <li><a href="{% url PageAdmin-page_order PYLUCID.pagetree.id %}">change page order</a></li> 107 {% endif %} 108 105 109 {% if perms.pylucid.delete_pageplugin and perms.pylucid.delete_pagecontent and perms.pylucid.delete_pagemeta and perms.pylucid.delete_pagetree %} 106 110 <li><a href="{% url admin:pylucid_pagetree_delete PYLUCID.pagemeta.id %}">delete page</a></li> -
branches/0.9/pylucid_project/pylucid_plugins/page_admin/admin_urls.py
r2449 r2465 18 18 from django.conf.urls.defaults import patterns, url 19 19 20 from pylucid_project.pylucid_plugins.page_admin import admin_views 20 21 21 urlpatterns = patterns('page_admin.admin_views', 22 url(r'^new_content_page/$', "new_content_page", name='PageAdmin-new_content_page'), 23 url(r'^new_plugin_page/$', "new_plugin_page", name='PageAdmin-new_plugin_page'), 24 url(r'^edit_page/(?P<pagetree_id>\d+?)/$', "edit_page", name='PageAdmin-edit_page'), 25 url(r'^translate/(?P<pagemeta_id>\d+?)/$', "translate", name='PageAdmin-translate'), 26 url(r'^tag_list/$', "tag_list", name='PageAdmin-tag_list'), 22 urlpatterns = patterns('', 23 url(r'^new_content_page/$', admin_views.new_content_page, name='PageAdmin-new_content_page'), 24 url(r'^new_plugin_page/$', admin_views.new_plugin_page, name='PageAdmin-new_plugin_page'), 25 url(r'^edit_page/(?P<pagetree_id>\d+?)/$', admin_views.edit_page, name='PageAdmin-edit_page'), 26 url(r'^page_order/(?P<pagetree_id>\d+?)/$', admin_views.page_order, name='PageAdmin-page_order'), 27 url(r'^translate/(?P<pagemeta_id>\d+?)/$', admin_views.translate, name='PageAdmin-translate'), 28 url(r'^tag_list/$', admin_views.tag_list, name='PageAdmin-tag_list'), 27 29 ) -
branches/0.9/pylucid_project/pylucid_plugins/page_admin/admin_views.py
r2449 r2465 1 # coding:utf -81 # coding:utf - 8 2 2 3 3 import inspect … … 6 6 from django.conf import settings 7 7 from django.db import transaction 8 from django.forms.models import modelformset_factory 8 9 from django.utils.translation import ugettext_lazy as _ 9 10 … … 18 19 from pylucid_admin.admin_menu import AdminMenu 19 20 20 from page_admin.forms import PageTreeForm, PageMetaForm, PageContentForm, PluginPageForm, LanguageSelectForm 21 from page_admin.forms import PageTreeForm, PageMetaForm, PageContentForm, PluginPageForm, \ 22 LanguageSelectForm, PageOrderFormSet 21 23 22 24 … … 393 395 394 396 pagetree = PageTree.objects.get(id=pagetree_id) 395 396 context = { 397 "form_url": request.path, 398 } 397 context = {"form_url": request.path} 399 398 400 399 is_pluginpage = pagetree.page_type == PageTree.PLUGIN_TYPE 401 400 if is_pluginpage: 402 # return _edit_plugin_page(request)403 404 401 return _edit_plugin_page(request, context, pagetree) 405 402 else: 406 403 return _edit_content_page(request, context, pagetree) 404 405 406 407 @check_permissions(superuser_only=False, permissions=("pylucid.change_pagetree",)) 408 @render_to("page_admin/page_order.html") 409 def page_order(request, pagetree_id=None): 410 """ 411 Change PageTree 'position', the ordering weight for sorting the pages in the menu. 412 """ 413 try: 414 pagetree = PageTree.on_site.get(id=pagetree_id) 415 except PageTree.DoesNotExist, err: 416 raise PageTree.DoesNotExist( 417 "PageTree with ID %r doesn't exist. (Original error: %s)" % (pagetree_id, err) 418 ) 419 parent = pagetree.parent 420 421 queryset = PageTree.on_site.all().order_by("position") 422 queryset = queryset.filter(parent=parent) 423 424 if request.method == 'POST': 425 formset = PageOrderFormSet(request.POST, queryset=queryset) 426 if formset.is_valid(): 427 formset.save() 428 request.page_msg("New position saved.") 429 return http.HttpResponseRedirect(request.path) 430 else: 431 formset = PageOrderFormSet(queryset=queryset) 432 433 # Change field label ("position") to PageTree.slug 434 for form in formset.forms: 435 for field_name, field in form.fields.iteritems(): 436 field.label = form.instance.slug 437 field.help_text = form.instance.get_absolute_url() 438 439 context = { 440 "title": "Change the page order.", 441 "pagetree": pagetree, 442 "abort_url": pagetree.get_absolute_url(), 443 # "next_level": 444 "formset": formset, 445 } 446 if parent is not None: 447 context["previous_level"] = parent 448 449 try: 450 context["next_level"] = PageTree.on_site.order_by("position").filter(parent=pagetree)[0] 451 except IndexError: 452 pass 453 454 return context 455 456 457 458 459 460 407 461 408 462 … … 443 497 }) 444 498 return context 499 445 500 446 501 -
branches/0.9/pylucid_project/pylucid_plugins/page_admin/forms.py
r2441 r2465 4 4 from django.template import mark_safe 5 5 from django.forms.util import ErrorList 6 from django.forms.models import BaseModelFormSet, modelformset_factory 7 from django.contrib.auth.models import User, Group 6 from django.forms.models import modelformset_factory 8 7 from django.utils.translation import ugettext as _ 9 8 … … 122 121 123 122 123 class PageOderForm(forms.ModelForm): 124 def __init__(self, *args, **kwargs): 125 """ Change form field data in a DRY way """ 126 super(PageOderForm, self).__init__(*args, **kwargs) 127 choices = [(i, i) for i in range(-10, 10)] 128 for field_name, field in self.fields.iteritems(): 129 field.widget = forms.widgets.Select(choices=choices) 130 # print field, field_name 131 132 class Meta: 133 model = PageTree 134 135 PageOrderFormSet = modelformset_factory( 136 model=PageTree, form=PageOderForm, extra=0, fields=('position',) 137 ) 138 139 140 124 141 class LanguageSelectForm(forms.Form): 125 142 language = forms.ChoiceField()