Browse Source

Forum Options moved to separate UserCP extension.

Ralfp 12 years ago
parent
commit
6606484725

+ 1 - 0
misago/settings_base.py

@@ -96,6 +96,7 @@ PERMISSION_PROVIDERS = (
 
 # List of UserCP extensions
 USERCP_EXTENSIONS = (
+    'misago.usercp.options',
     'misago.usercp.avatar',
 )
 

+ 0 - 0
misago/usercp/options/__init__.py


+ 0 - 0
misago/usercp/forms.py → misago/usercp/options/forms.py


+ 5 - 0
misago/usercp/options/urls.py

@@ -0,0 +1,5 @@
+from django.conf.urls import patterns, url
+
+urlpatterns = patterns('misago.usercp.options.views',
+    url(r'^$', 'options', name="usercp"),
+)

+ 4 - 0
misago/usercp/options/usercp.py

@@ -0,0 +1,4 @@
+from django.utils.translation import ugettext_lazy as _
+
+def register_usercp_extension(request):
+    return (('usercp', _('Forum Options')),)

+ 36 - 0
misago/usercp/options/views.py

@@ -0,0 +1,36 @@
+from django.core.urlresolvers import reverse
+from django.shortcuts import redirect
+from django.utils.translation import ugettext as _
+from misago.forms import FormLayout
+from misago.messages import Message
+from misago.authn.decorators import block_guest
+from misago.usercp.options.forms import UserForumOptionsForm
+from misago.usercp.template import RequestContext
+
+
+@block_guest   
+def options(request):
+    message = request.messages.get_message('usercp_options')
+    if request.method == 'POST':
+        form = UserForumOptionsForm(request.POST, request=request)
+        if form.is_valid():
+            request.user.receive_newsletters = form.cleaned_data['newsletters']
+            request.user.hide_activity = form.cleaned_data['hide_activity']
+            request.user.timezone = form.cleaned_data['timezone']
+            request.user.save(force_update=True)
+            request.messages.set_flash(Message(_("Forum options have been changed.")), 'success', 'usercp_options')
+            return redirect(reverse('usercp'))
+        message = Message(form.non_field_errors()[0], 'error')
+    else:
+        form = UserForumOptionsForm(request=request,initial={
+                                                             'newsletters': request.user.receive_newsletters,
+                                                             'hide_activity': request.user.hide_activity,
+                                                             'timezone': request.user.timezone,
+                                                             })
+    
+    return request.theme.render_to_response('usercp/options.html',
+                                            context_instance=RequestContext(request, {
+                                              'message': message,
+                                              'tab': 'usercp',
+                                              'form': FormLayout(form)
+                                             }));

+ 2 - 1
misago/usercp/template.py

@@ -12,9 +12,10 @@ def RequestContext(request, context=None):
         try:
             append_links = usercp_module.register_usercp_extension(request)
             for link in append_links:
+                token = link[0][link[0].find('_') + 1:]
                 context['tabs'].append({
                                         'route': link[0],
-                                        'active': context['tab'] == link[0][link[0].find('_') + 1:],
+                                        'active': context['tab'] == token,
                                         'name': link[1],
                                         })
         except AttributeError:

+ 0 - 1
misago/usercp/urls.py

@@ -3,7 +3,6 @@ from django.conf.urls import include, patterns, url
 from django.utils.importlib import import_module
 
 urlpatterns = patterns('misago.usercp.views',
-    url(r'^$', 'options', name="usercp"),
     url(r'^credentials/$', 'credentials', name="usercp_credentials"),
     url(r'^username/$', 'username', name="usercp_username"),
     url(r'^signature/$', 'signature', name="usercp_signature"),

+ 0 - 32
misago/usercp/views.py

@@ -1,40 +1,8 @@
 from django.core.urlresolvers import reverse
 from django.shortcuts import redirect
 from django.utils.translation import ugettext as _
-from misago.forms import FormLayout
-from misago.messages import Message
 from misago.authn.decorators import block_guest
-from misago.usercp.forms import UserForumOptionsForm
 from misago.usercp.template import RequestContext
-
-
-@block_guest   
-def options(request):
-    message = request.messages.get_message('usercp_options')
-    if request.method == 'POST':
-        form = UserForumOptionsForm(request.POST, request=request)
-        if form.is_valid():
-            request.user.receive_newsletters = form.cleaned_data['newsletters']
-            request.user.hide_activity = form.cleaned_data['hide_activity']
-            request.user.timezone = form.cleaned_data['timezone']
-            request.user.save(force_update=True)
-            request.messages.set_flash(Message(_("Forum options have been changed.")), 'success', 'usercp_options')
-            return redirect(reverse('usercp'))
-        message = Message(form.non_field_errors()[0], 'error')
-    else:
-        form = UserForumOptionsForm(request=request,initial={
-                                                             'newsletters': request.user.receive_newsletters,
-                                                             'hide_activity': request.user.hide_activity,
-                                                             'timezone': request.user.timezone,
-                                                             })
-    
-    return request.theme.render_to_response('usercp/options.html',
-                                            context_instance=RequestContext(request, {
-                                              'message': message,
-                                              'tab': 'options',
-                                              'form': FormLayout(form)
-                                             }));
-    
  
 @block_guest
 def credentials(request):

+ 1 - 3
templates/sora/usercp/layout.html

@@ -15,9 +15,7 @@
         <li{% if link.active %} class="active"{% endif %}><a href="{{ link.route|url }}">{{ link.name }}</a></li>
         {% endfor %}
         <li class="nav-header">Outdated Actions:</li>
-  	    <li{% if tab == 'options' %} class="active"{% endif %}><a href="{% url 'usercp' %}">{% trans %}Forum Options{% endtrans %}</a></li>
-        <li{% if tab == 'avatar' %} class="active"{% endif %}><a href="{% url 'usercp_avatar' %}">{% trans %}Change Avatar{% endtrans %}</a></li>
-        <li{% if tab == 'signature' %} class="active"{% endif %}><a href="{% url 'usercp_signature' %}">{% trans %}Edit Signature{% endtrans %}</a></li>
+  	    <li{% if tab == 'signature' %} class="active"{% endif %}><a href="{% url 'usercp_signature' %}">{% trans %}Edit Signature{% endtrans %}</a></li>
   	    <li{% if tab == 'credentials' %} class="active"{% endif %}><a href="{% url 'usercp_credentials' %}">{% trans %}Change E-mail or Password{% endtrans %}</a></li>
   	    <li{% if tab == 'username' %} class="active"{% endif %}><a href="{% url 'usercp_username' %}">{% trans %}Change Username{% endtrans %}</a></li>
         <li{% if tab == 'ignored' %} class="active"{% endif %}><a href="{% url 'usercp_ignored' %}">{% trans %}Ignored Members List{% endtrans %}</a></li>