Browse Source

Made UserCP API flexible

Ralfp 12 years ago
parent
commit
79d1b023dc

+ 19 - 8
misago/usercp/avatar/urls.py

@@ -1,10 +1,21 @@
 from django.conf.urls import patterns, url
 
-urlpatterns = patterns('misago.usercp.avatar.views',
-    url(r'^avatar/$', 'avatar', name="usercp_avatar"),
-    url(r'^avatar/gallery/$', 'gallery', name="usercp_avatar_gallery"),
-    url(r'^avatar/upload/$', 'upload', name="usercp_avatar_upload"),
-    url(r'^avatar/upload/crop/$', 'crop', name="usercp_avatar_upload_crop", kwargs={'upload': True}),
-    url(r'^avatar/crop/$', 'crop', name="usercp_avatar_crop"),
-    url(r'^avatar/gravatar/$', 'gravatar', name="usercp_avatar_gravatar"),
-)
+def register_usercp_urls(first=False):
+    urlpatterns = []
+    if first:
+        urlpatterns += patterns('misago.usercp.avatar.views',
+            url(r'^$', 'avatar', name="usercp"),
+            url(r'^$', 'avatar', name="usercp_avatar"),
+        )
+    else:
+        urlpatterns += patterns('misago.usercp.avatar.views',
+            url(r'^avatar/$', 'avatar', name="usercp_avatar"),
+        )
+    urlpatterns += patterns('misago.usercp.avatar.views',
+        url(r'^avatar/gallery/$', 'gallery', name="usercp_avatar_gallery"),
+        url(r'^avatar/upload/$', 'upload', name="usercp_avatar_upload"),
+        url(r'^avatar/upload/crop/$', 'crop', name="usercp_avatar_upload_crop", kwargs={'upload': True}),
+        url(r'^avatar/crop/$', 'crop', name="usercp_avatar_crop"),
+        url(r'^avatar/gravatar/$', 'gravatar', name="usercp_avatar_gravatar"),
+    )
+    return urlpatterns

+ 9 - 3
misago/usercp/blocked/urls.py

@@ -1,5 +1,11 @@
 from django.conf.urls import patterns, url
 
-urlpatterns = patterns('misago.usercp.blocked.views',
-    url(r'^blocked/$', 'blocked', name="usercp_blocked"),
-)
+def register_usercp_urls(first=False):
+    if first:
+        return patterns('misago.usercp.blocked.views',
+            url(r'^$', 'blocked', name="usercp"),
+            url(r'^$', 'blocked', name="usercp_blocked"),
+        )
+    return patterns('misago.usercp.blocked.views',
+        url(r'^blocked/$', 'blocked', name="usercp_blocked"),
+    )

+ 15 - 4
misago/usercp/credentials/urls.py

@@ -1,6 +1,17 @@
 from django.conf.urls import patterns, url
 
-urlpatterns = patterns('misago.usercp.credentials.views',
-    url(r'^credentials/$', 'credentials', name="usercp_credentials"),
-    url(r'^credentials/activate/(?P<token>[a-zA-Z0-9]+)/$', 'activate', name="usercp_credentials_activate"),
-)
+def register_usercp_urls(first=False):
+    urlpatterns = []
+    if first:
+        urlpatterns += patterns('misago.usercp.credentials.views',
+            url(r'^$', 'credentials', name="usercp"),
+            url(r'^$', 'credentials', name="usercp_credentials"),
+        )
+    else:
+        urlpatterns += patterns('misago.usercp.credentials.views',
+            url(r'^credentials/$', 'credentials', name="usercp_credentials"),
+        )
+    urlpatterns += patterns('misago.usercp.credentials.views',
+        url(r'^credentials/activate/(?P<token>[a-zA-Z0-9]+)/$', 'activate', name="usercp_credentials_activate"),
+    )
+    return urlpatterns

+ 9 - 3
misago/usercp/options/urls.py

@@ -1,5 +1,11 @@
 from django.conf.urls import patterns, url
 
-urlpatterns = patterns('misago.usercp.options.views',
-    url(r'^$', 'options', name="usercp"),
-)
+def register_usercp_urls(first=False):
+    if first:
+        return patterns('misago.usercp.options.views',
+            url(r'^$', 'options', name="usercp"),
+            url(r'^$', 'options', name="usercp_options"),
+        )
+    return patterns('misago.usercp.options.views',
+        url(r'^options/$', 'options', name="usercp_options"),
+    )

+ 1 - 1
misago/usercp/options/usercp.py

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

+ 1 - 1
misago/usercp/options/views.py

@@ -31,6 +31,6 @@ def options(request):
     return request.theme.render_to_response('usercp/options.html',
                                             context_instance=RequestContext(request, {
                                               'message': message,
-                                              'tab': 'usercp',
+                                              'tab': 'options',
                                               'form': FormLayout(form)
                                              }));

+ 9 - 3
misago/usercp/signature/urls.py

@@ -1,5 +1,11 @@
 from django.conf.urls import patterns, url
 
-urlpatterns = patterns('misago.usercp.signature.views',
-    url(r'^signature/$', 'signature', name="usercp_signature"),
-)
+def register_usercp_urls(first=False):
+    if first:
+        return patterns('misago.usercp.signature.views',
+            url(r'^$', 'signature', name="usercp"),
+            url(r'^$', 'signature', name="usercp_signature"),
+        )
+    return patterns('misago.usercp.signature.views',
+        url(r'^signature/$', 'signature', name="usercp_signature"),
+    )

+ 1 - 0
misago/usercp/template.py

@@ -13,6 +13,7 @@ def RequestContext(request, context=None):
             append_links = usercp_module.register_usercp_extension(request)
             if append_links:
                 for link in append_links:
+                    link = list(link)
                     token = link[0][link[0].find('_') + 1:]
                     context['tabs'].append({
                                             'route': link[0],

+ 10 - 3
misago/usercp/urls.py

@@ -1,8 +1,15 @@
 from django.conf import settings
 from django.conf.urls import include, patterns, url
+from django.utils.importlib import import_module
 
 urlpatterns = []
+iteration = 0
 for extension in settings.USERCP_EXTENSIONS:
-    urlpatterns += patterns('',
-        (r'^', include(extension + '.urls')),
-    )
+    iteration += 1
+    usercp_module = import_module(extension + '.urls')
+    try:
+        urlpatterns += patterns('',
+            (r'^', include(usercp_module.register_usercp_urls(iteration == 1))),
+        )
+    except AttributeError:
+        pass

+ 9 - 3
misago/usercp/username/urls.py

@@ -1,5 +1,11 @@
 from django.conf.urls import patterns, url
 
-urlpatterns = patterns('misago.usercp.username.views',
-    url(r'^username/$', 'username', name="usercp_username"),
-)
+def register_usercp_urls(first=False):
+    if first:
+        return patterns('misago.usercp.username.views',
+            url(r'^$', 'username', name="usercp"),
+            url(r'^$', 'username', name="usercp_username"),
+        )
+    return patterns('misago.usercp.username.views',
+        url(r'^username/$', 'username', name="usercp_username"),
+    )

+ 1 - 1
templates/sora/usercp/options.html

@@ -9,7 +9,7 @@
 {% block action %}
 <h2>{% trans %}Change Forum Options{% endtrans %}</h2>
 {% if message %}{{ macros.draw_message(message, 'alert-form') }}{% endif %}
-<form action="{% url 'usercp' %}" method="post">
+<form action="{% url 'usercp_options' %}" method="post">
   {{ form_theme.form_widget(form, width=9) }}
   <div class="form-actions">
   	<button name="save" type="submit" class="btn btn-primary">{% trans %}Change Options{% endtrans %}</button>