Mercurial > hg > savane-forge
changeset 204:4ef3a86b4b17
Tidy project administration pages headers + start group features selection
author | Sylvain Beucler <beuc@beuc.net> |
---|---|
date | Thu, 29 Jul 2010 22:04:45 +0200 |
parents | 8d2449a167bb |
children | 93815ee7cef7 |
files | savane/svmain/forms.py savane/svmain/models.py savane/svmain/templatetags/svtopmenu.py savane/svmain/urls.py savane/svmain/views.py templates/svmain/group_admin.html templates/svmain/group_admin_features.html templates/svmain/group_admin_info.html templates/svmain/group_admin_members.html templates/svmain/group_admin_members_add.html templates/svmain/group_detail.html |
diffstat | 11 files changed, 110 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/savane/svmain/forms.py +++ b/savane/svmain/forms.py @@ -24,3 +24,20 @@ class Meta: model = svmain_models.SvGroupInfo fields = ('full_name', 'short_description', 'long_description', 'devel_status',) + +class GroupFeaturesForm(forms.ModelForm): + class Meta: + model = svmain_models.SvGroupInfo + fields = ('use_homepage', 'use_mail', 'use_news', 'use_download', + 'use_extralink_documentation', + 'use_cvs', 'use_arch', 'use_svn', 'use_git', 'use_hg', 'use_bzr', + 'use_bugs', 'use_support', 'use_patch', 'use_task', + + 'url_homepage', 'url_mail', 'url_download', 'url_extralink_documentation', + 'url_cvs', 'url_cvs_viewcvs', 'url_cvs_viewcvs_homepage', + 'url_arch', 'url_arch_viewcvs', + 'url_svn', 'url_svn_viewcvs', + 'url_git', 'url_git_viewcvs', + 'url_hg', 'url_hg_viewcvs', + 'url_bzr', 'url_bzr_viewcvs', + 'url_bugs', 'url_support', 'url_patch', 'url_task')
--- a/savane/svmain/models.py +++ b/savane/svmain/models.py @@ -408,8 +408,8 @@ # Project "Features" use_homepage = models.BooleanField(default=False) use_mail = models.BooleanField(default=False) - use_patch = models.BooleanField(default=False) - use_task = models.BooleanField(default=False) + use_download = models.BooleanField(default=False) + use_extralink_documentation = models.BooleanField(default=False) use_cvs = models.BooleanField(default=False) use_arch = models.BooleanField(default=False) use_svn = models.BooleanField(default=False) @@ -417,16 +417,16 @@ use_hg = models.BooleanField(default=False) use_bzr = models.BooleanField(default=False) use_news = models.BooleanField(default=False) + use_bugs = models.BooleanField(default=False) + use_patch = models.BooleanField(default=False) use_support = models.BooleanField(default=False) - use_download = models.BooleanField(default=False) - use_bugs = models.BooleanField(default=False) - use_extralink_documentation = models.BooleanField(default=False) + use_task = models.BooleanField(default=False) # blank means 'use default' url_homepage = models.CharField(max_length=255, blank=True) + url_mail = models.CharField(max_length=255, blank=True) url_download = models.CharField(max_length=255, blank=True) - url_support = models.CharField(max_length=255, blank=True) - url_mail = models.CharField(max_length=255, blank=True) + url_extralink_documentation = models.CharField(max_length=255, blank=True) url_cvs = models.CharField(max_length=255, blank=True) url_cvs_viewcvs = models.CharField(max_length=255, blank=True) url_cvs_viewcvs_homepage = models.CharField(max_length=255, blank=True) @@ -441,9 +441,9 @@ url_bzr = models.CharField(max_length=255, blank=True) url_bzr_viewcvs = models.CharField(max_length=255, blank=True) url_bugs = models.CharField(max_length=255, blank=True) + url_patch = models.CharField(max_length=255, blank=True) + url_support = models.CharField(max_length=255, blank=True) url_task = models.CharField(max_length=255, blank=True) - url_patch = models.CharField(max_length=255, blank=True) - url_extralink_documentation = models.CharField(max_length=255, blank=True) # Admin override (unused) #dir_cvs = models.CharField(max_length=255)
--- a/savane/svmain/templatetags/svtopmenu.py +++ b/savane/svmain/templatetags/svtopmenu.py @@ -43,15 +43,21 @@ 'href' : reverse('savane:svmain:group_detail', args=[group.name]), 'title': "Project Main Page at %s" % 'this website'} entry_home['children'] = [] - entry_home['children'].append({'text' : _("Main"), 'href' : reverse('savane:svmain:group_detail', args=[group.name]) }) - entry_home['children'].append({'text' : _("View Members"), 'href' : reverse('savane:svmain:group_memberlist', args=[group.name]) }) + entry_home['children'].append({'text' : _("Main"), + 'href' : reverse('savane:svmain:group_detail', args=[group.name]) }) + entry_home['children'].append({'text' : _("View members"), + 'href' : reverse('savane:svmain:group_memberlist', args=[group.name]) }) + entry_home['children'].append({'text' : _("GPG keyring"), + 'href' : reverse('savane:svmain:group_gpgkeyring', args=[group.name]) }) if (svmain_models.Membership.is_admin(context['user'], group)): entry_home['children'].append({'separator' : True }) entry_home['children'].append({'text' : _("Administer:"), 'strong': True, 'href' : reverse('savane:svmain:group_admin', args=[group.name]) }) - entry_home['children'].append({'text' : _("Edit Public Info"), + entry_home['children'].append({'text' : _("Edit public info"), 'href' : reverse('savane:svmain:group_admin_info', args=[group.name]) }) - entry_home['children'].append({'text' : _("Manage Members"), + entry_home['children'].append({'text' : _("Select features"), + 'href' : reverse('savane:svmain:group_admin_features', args=[group.name]) }) + entry_home['children'].append({'text' : _("Manage members"), 'href' : reverse('savane:svmain:group_admin_members', args=[group.name]) }) entry_test = {
--- a/savane/svmain/urls.py +++ b/savane/svmain/urls.py @@ -78,7 +78,6 @@ url(r'^p/(?P<slug>[-\w]+)/$', object_detail, { 'queryset' : auth_models.Group.objects.all(), 'slug_field' : 'name', - 'extra_context' : { 'title' : 'Project summary' }, 'template_name' : 'svmain/group_detail.html', 'template_object_name' : 'group', }, name='group_detail'), @@ -102,17 +101,19 @@ ) urlpatterns += decorated_patterns ('', only_project_admin, url(r'^p/(?P<slug>[-\w]+)/admin/$', views.group_admin, - { 'extra_context' : { 'title' : 'Administration Summary' }, }, name='group_admin'), url(r'^p/(?P<slug>[-\w]+)/admin/info/$', views.group_admin_info, { 'post_save_redirect' : '../../', # back to project page to see the changes - 'extra_context' : { 'title' : 'Administration Summary: Editing Public Info' }, }, + 'extra_context' : { 'title' : 'Editing public info' }, }, name='group_admin_info'), + url(r'^p/(?P<slug>[-\w]+)/admin/features/$', views.group_admin_features, + { 'extra_context' : { 'title' : 'Select features' }, }, + name='group_admin_features'), url(r'^p/(?P<slug>[-\w]+)/admin/members/$', views.group_admin_members, - { 'extra_context' : { 'title' : 'Administration Summary: Manage Members' }, }, + { 'extra_context' : { 'title' : 'Manage members' }, }, name='group_admin_members'), url(r'^p/(?P<slug>[-\w]+)/admin/members/add/$', views.group_admin_members_add, - { 'extra_context' : { 'title' : 'Administration Summary: Manage Members' }, }, + { 'extra_context' : { 'title' : 'Manage members' }, }, name='group_admin_members_add'), )
--- a/savane/svmain/views.py +++ b/savane/svmain/views.py @@ -156,6 +156,33 @@ context.update(extra_context) return context +@render_to("svmain/group_admin_features.html", mimetype=None) +def group_admin_features(request, slug, extra_context={}): + group = get_object_or_404(auth_models.Group, name=slug) + object = group.svgroupinfo + + form_class = svmain_forms.GroupFeaturesForm + + if request.method == 'POST': # If the form has been submitted... + form = form_class(request.POST, instance=object) # A form bound to the POST data + if form.is_valid(): # All validation rules pass + # Process the data + object = form.save() + messages.success(request, u"%s saved." % capfirst(object._meta.verbose_name)) + if post_save_redirect is None: + post_save_redirect = object.get_absolute_url() + return HttpResponseRedirect(post_save_redirect) # Redirect after POST + else: + form = form_class(instance=object) # An unbound form + + context = { + 'group' : group, + 'form' : form, + } + context.update(extra_context) + return context + + @render_to('svmain/group_admin_members.html', mimetype=None) def group_admin_members(request, slug, extra_context={}): group = get_object_or_404(auth_models.Group, name=slug)
--- a/templates/svmain/group_admin.html +++ b/templates/svmain/group_admin.html @@ -3,7 +3,7 @@ {% load svtopmenu %} {% block title %} -{{group.svgroupinfo.get_full_name_display}} - {{title}} +{{group.svgroupinfo.get_full_name_display}} - {% trans "Administration summary" %} {% endblock %} {% block icon %}preferences{% endblock %}
new file mode 100644 --- /dev/null +++ b/templates/svmain/group_admin_features.html @@ -0,0 +1,33 @@ +{% extends "base.html" %} +{% load i18n %} +{% load svtopmenu %} + +{% block title %} +{{group.svgroupinfo.get_full_name_display}} - {% trans "Administration summary" %}{% trans ": " %}{{title}} +{% endblock %} + +{% block icon %}preferences{% endblock %} + +{% block topmenu %} + {% svtopmenu "group" %} +{% endblock %} + +{% block content %} + +<form action="." method="POST">{% csrf_token %} +<input type="hidden" name="next" value="{{next}}" /> +<table> +{{ form.as_table }} +</table> +<p><input type="submit" value="{% trans "Submit" %}" /></p> +</form> + +{% endblock %} + +{% comment %} +Local Variables: ** +mode: django-html ** +tab-width: 4 ** +indent-tabs-mode: nil ** +End: ** +{% endcomment %}
--- a/templates/svmain/group_admin_info.html +++ b/templates/svmain/group_admin_info.html @@ -3,7 +3,7 @@ {% load svtopmenu %} {% block title %} -{{group.svgroupinfo.get_full_name_display}} - {{title}} +{{group.svgroupinfo.get_full_name_display}} - {% trans "Administration summary" %}{% trans ": " %}{{title}} {% endblock %} {% block icon %}preferences{% endblock %}
--- a/templates/svmain/group_admin_members.html +++ b/templates/svmain/group_admin_members.html @@ -3,7 +3,7 @@ {% load svtopmenu %} {% block title %} -{{group.svgroupinfo.get_full_name_display}} - {{title}} +{{group.svgroupinfo.get_full_name_display}} - {% trans "Administration summary" %}{% trans ": " %}{{title}} {% endblock %} {% block icon %}preferences{% endblock %}
--- a/templates/svmain/group_admin_members_add.html +++ b/templates/svmain/group_admin_members_add.html @@ -3,7 +3,7 @@ {% load svtopmenu %} {% block title %} -{{group.svgroupinfo.get_full_name_display}} - {{title}} +{{group.svgroupinfo.get_full_name_display}} - {% trans "Administration summary" %}{% trans ": " %}{{title}} {% endblock %} {% block icon %}preferences{% endblock %}
--- a/templates/svmain/group_detail.html +++ b/templates/svmain/group_detail.html @@ -2,6 +2,10 @@ {% load i18n %} {% load svtopmenu %} +{% block title %} +{{group.svgroupinfo.get_full_name_display}} - {% trans "Summary" %} +{% endblock %} + {% block topmenu %} {% svtopmenu "group" %} {% endblock %}