Coverage for extras/urls.py: 100%
5 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from django.urls import include, path
3from extras import views
4from utilities.urls import get_model_urls
6app_name = 'extras'
7urlpatterns = [
9 path('custom-fields/', include(get_model_urls('extras', 'customfield', detail=False))),
10 path('custom-fields/<int:pk>/', include(get_model_urls('extras', 'customfield'))),
12 path('custom-field-choices/', include(get_model_urls('extras', 'customfieldchoiceset', detail=False))),
13 path('custom-field-choices/<int:pk>/', include(get_model_urls('extras', 'customfieldchoiceset'))),
15 path('custom-links/', include(get_model_urls('extras', 'customlink', detail=False))),
16 path('custom-links/<int:pk>/', include(get_model_urls('extras', 'customlink'))),
18 path('export-templates/', include(get_model_urls('extras', 'exporttemplate', detail=False))),
19 path('export-templates/<int:pk>/', include(get_model_urls('extras', 'exporttemplate'))),
21 path('table-configs/', include(get_model_urls('extras', 'tableconfig', detail=False))),
22 path('table-configs/<int:pk>/', include(get_model_urls('extras', 'tableconfig'))),
24 path('saved-filters/', include(get_model_urls('extras', 'savedfilter', detail=False))),
25 path('saved-filters/<int:pk>/', include(get_model_urls('extras', 'savedfilter'))),
27 path('bookmarks/', include(get_model_urls('extras', 'bookmark', detail=False))),
28 path('bookmarks/<int:pk>/', include(get_model_urls('extras', 'bookmark'))),
30 path('notification-groups/', include(get_model_urls('extras', 'notificationgroup', detail=False))),
31 path('notification-groups/<int:pk>/', include(get_model_urls('extras', 'notificationgroup'))),
33 path('notifications/', views.NotificationsView.as_view(), name='notifications'),
34 path('notifications/', include(get_model_urls('extras', 'notification', detail=False))),
35 path('notifications/<int:pk>/', include(get_model_urls('extras', 'notification'))),
37 path('subscriptions/', include(get_model_urls('extras', 'subscription', detail=False))),
38 path('subscriptions/<int:pk>/', include(get_model_urls('extras', 'subscription'))),
40 path('webhooks/', include(get_model_urls('extras', 'webhook', detail=False))),
41 path('webhooks/<int:pk>/', include(get_model_urls('extras', 'webhook'))),
43 path('event-rules/', include(get_model_urls('extras', 'eventrule', detail=False))),
44 path('event-rules/<int:pk>/', include(get_model_urls('extras', 'eventrule'))),
46 path('tags/', include(get_model_urls('extras', 'tag', detail=False))),
47 path('tags/<int:pk>/', include(get_model_urls('extras', 'tag'))),
49 path('config-context-profiles/', include(get_model_urls('extras', 'configcontextprofile', detail=False))),
50 path('config-context-profiles/<int:pk>/', include(get_model_urls('extras', 'configcontextprofile'))),
52 path('config-contexts/', include(get_model_urls('extras', 'configcontext', detail=False))),
53 path('config-contexts/<int:pk>/', include(get_model_urls('extras', 'configcontext'))),
55 path('config-templates/', include(get_model_urls('extras', 'configtemplate', detail=False))),
56 path('config-templates/<int:pk>/', include(get_model_urls('extras', 'configtemplate'))),
58 path('image-attachments/', include(get_model_urls('extras', 'imageattachment', detail=False))),
59 path('image-attachments/<int:pk>/', include(get_model_urls('extras', 'imageattachment'))),
61 path('journal-entries/', include(get_model_urls('extras', 'journalentry', detail=False))),
62 path('journal-entries/<int:pk>/', include(get_model_urls('extras', 'journalentry'))),
64 # User dashboard
65 path('dashboard/reset/', views.DashboardResetView.as_view(), name='dashboard_reset'),
66 path('dashboard/widgets/add/', views.DashboardWidgetAddView.as_view(), name='dashboardwidget_add'),
67 path(
68 'dashboard/widgets/<uuid:id>/configure/',
69 views.DashboardWidgetConfigView.as_view(),
70 name='dashboardwidget_config'
71 ),
72 path(
73 'dashboard/widgets/<uuid:id>/delete/',
74 views.DashboardWidgetDeleteView.as_view(),
75 name='dashboardwidget_delete'
76 ),
78 # Scripts
79 path('scripts/', views.ScriptListView.as_view(), name='script_list'),
80 path('scripts/add/', views.ScriptModuleCreateView.as_view(), name='scriptmodule_add'),
81 path('scripts/results/<int:job_pk>/', views.ScriptResultView.as_view(), name='script_result'),
82 path('scripts/<int:pk>/', views.ScriptView.as_view(), name='script'),
83 path('scripts/<str:module>.<str:name>/', views.ScriptView.as_view(), name='script'),
84 path('scripts/<int:pk>/source/', views.ScriptSourceView.as_view(), name='script_source'),
85 path('scripts/<str:module>.<str:name>/source/', views.ScriptSourceView.as_view(), name='script_source'),
86 path('scripts/<int:pk>/jobs/', views.ScriptJobsView.as_view(), name='script_jobs'),
87 path('scripts/<str:module>.<str:name>/jobs/', views.ScriptJobsView.as_view(), name='script_jobs'),
88 path('script-modules/<int:pk>/', include(get_model_urls('extras', 'scriptmodule'))),
90 # Markdown
91 path('render/markdown/', views.RenderMarkdownView.as_view(), name="render_markdown"),
92]