# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.conf.urls import patterns, url from .models import newsbox_models from .views import NewsboxArchiveView, NewsboxYearArchiveView, \ NewsboxMonthArchiveView, NewsboxDayArchiveView, NewsboxDetailView def get_urls( archive_view=NewsboxArchiveView, year_archive_view=NewsboxYearArchiveView, month_archive_view=NewsboxMonthArchiveView, day_archive_view=NewsboxDayArchiveView, detail_view=NewsboxDetailView ): urls = ['', ] for model in newsbox_models: app_name = model._meta.app_label.lower() model_name = model.__name__.lower() viewurl = 'newsbox/%s/%s/' % (app_name, model_name, ) urls.append( url( r'^%s$' % viewurl, archive_view.as_view( model=model,), name='%s_%s_list' % (app_name, model_name), ), ) viewurl = viewurl + '(?P<year>\d{4})/' urls.append( url( r'^%s$' % viewurl, year_archive_view.as_view( model=model,), name='%s_%s_list_y' % (app_name, model_name), ), ) viewurl = viewurl + '(?P<month>\d{2})/' urls.append( url( r'^%s$' % viewurl, month_archive_view.as_view( model=model,), name='%s_%s_list_ym' % (app_name, model_name), ), ) viewurl = viewurl + '(?P<day>\d{2})/' urls.append( url( r'^%s$' % viewurl, day_archive_view.as_view( model=model,), name='%s_%s_list_ymd' % (app_name, model_name), ), ) urls.append( url( r'^%s(?P<slug>[0-9a-zA-Z_-]+)/$' % viewurl, detail_view.as_view( model=model,), name='%s_%s_detail' % (app_name, model_name), ), ) return urls urls = get_urls() urlpatterns = patterns(*urls)