__init__.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. from django.conf import settings
  2. from django.conf.urls import patterns, url
  3. from misago.threads.views.threadslist import (
  4. ThreadsList, CategoryThreadsList, PrivateThreadsList)
  5. PATTERNS_KWARGS = (
  6. {'list_type': 'all'},
  7. {'list_type': 'my'},
  8. {'list_type': 'new'},
  9. {'list_type': 'unread'},
  10. {'list_type': 'subscribed'},
  11. {'list_type': 'unapproved'},
  12. )
  13. def threads_list_patterns(root_name, view, patterns):
  14. urlpatterns = []
  15. for i, pattern in enumerate(patterns):
  16. if i > 0:
  17. url_name = '%s-%s' % (root_name, PATTERNS_KWARGS[i]['list_type'])
  18. else:
  19. url_name = root_name
  20. urlpatterns.append(url(
  21. pattern,
  22. view.as_view(),
  23. name=url_name,
  24. kwargs=PATTERNS_KWARGS[i],
  25. ))
  26. return urlpatterns
  27. if settings.MISAGO_CATEGORIES_ON_INDEX:
  28. urlpatterns = threads_list_patterns('threads', ThreadsList, (
  29. r'^threads/$',
  30. r'^threads/my/$',
  31. r'^threads/new/$',
  32. r'^threads/unread/$',
  33. r'^threads/subscribed/$',
  34. r'^threads/unapproved/$',
  35. ))
  36. else:
  37. urlpatterns = threads_list_patterns('threads', ThreadsList, (
  38. r'^$',
  39. r'^my/$',
  40. r'^new/$',
  41. r'^unread/$',
  42. r'^subscribed/$',
  43. r'^unapproved/$',
  44. ))
  45. urlpatterns += threads_list_patterns('category', CategoryThreadsList, (
  46. r'^category/(?P<slug>[-a-zA-Z0-9]+)-(?P<pk>\d+)/$',
  47. r'^category/(?P<slug>[-a-zA-Z0-9]+)-(?P<pk>\d+)/my/$',
  48. r'^category/(?P<slug>[-a-zA-Z0-9]+)-(?P<pk>\d+)/new/$',
  49. r'^category/(?P<slug>[-a-zA-Z0-9]+)-(?P<pk>\d+)/unread/$',
  50. r'^category/(?P<slug>[-a-zA-Z0-9]+)-(?P<pk>\d+)/subscribed/$',
  51. r'^category/(?P<slug>[-a-zA-Z0-9]+)-(?P<pk>\d+)/unapproved/$',
  52. ))
  53. urlpatterns += threads_list_patterns('private-threads', CategoryThreadsList, (
  54. r'^private-threads/$',
  55. r'^private-threads/my/$',
  56. r'^private-threads/new/$',
  57. r'^private-threads/unread/$',
  58. r'^private-threads/subscribed/$',
  59. r'^private-threads/unapproved/$',
  60. ))