__init__.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. )
  12. def threads_list_patterns(root_name, view, patterns):
  13. urlpatterns = []
  14. for i, pattern in enumerate(patterns):
  15. if i > 0:
  16. url_name = '%s_%s' % (root_name, PATTERNS_KWARGS[i]['list_type'])
  17. else:
  18. url_name = root_name
  19. urlpatterns.append(url(
  20. pattern,
  21. view.as_view(),
  22. name=url_name,
  23. kwargs=PATTERNS_KWARGS[i],
  24. ))
  25. return urlpatterns
  26. if settings.MISAGO_CATEGORIES_ON_INDEX:
  27. urlpatterns = threads_list_patterns('threads', ThreadsList, (
  28. r'^threads/$',
  29. r'^threads/my/$',
  30. r'^threads/new/$',
  31. r'^threads/unread/$',
  32. r'^threads/subscribed/$',
  33. ))
  34. else:
  35. urlpatterns = threads_list_patterns('threads', ThreadsList, (
  36. r'^$',
  37. r'^my/$',
  38. r'^new/$',
  39. r'^unread/$',
  40. r'^subscribed/$',
  41. ))
  42. urlpatterns += threads_list_patterns('category', CategoryThreadsList, (
  43. r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/$',
  44. r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/my/$',
  45. r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/new/$',
  46. r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/unread/$',
  47. r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/subscribed/$',
  48. ))
  49. urlpatterns += threads_list_patterns('private_threads', CategoryThreadsList, (
  50. r'^private-threads/$',
  51. r'^private-threads/my/$',
  52. r'^private-threads/new/$',
  53. r'^private-threads/unread/$',
  54. r'^private-threads/subscribed/$',
  55. ))