""" This module contains urls for the ``brainstormers`` app. """

from macrosurl import url

from . import views


app_name = 'brainstormers'

urlpatterns = [
    # List Brainstormer by session
    url(r'^session/:session_uuid/brainstormer_list/:brainstormer_type_slug/$',
        views.BrainstormerSessionListView.as_view(),
        name='list_by_session'),

    # Create Brainstormer
    url(r'^session/:session_uuid/create/:brainstormer_type_slug/$',
        views.BrainstormerCreateView.as_view(),
        name='create'),

    # Delete Brainstormer
    url(r'^:brainstormer_uuid/update/$',
        views.BrainstormerUpdateView.as_view(),
        name='update'),

    # Delete Brainstormer
    url(r'^:brainstormer_uuid/delete/$',
        views.BrainstormerDeleteView.as_view(),
        name='delete'),

    # Detail Brainstormer template
    url(r'^template/:template_uuid/',
        views.BrainstormerTemplateDetailView.as_view(),
        name='template-detail'),

    # Edit Template Brainstormer
    url(r'^template/:template_uuid/update$',
        views.BrainstormerTemplateUpdateView.as_view(),
        name='template-update'),

    # Delete Template Brainstormer
    url(r'^template/:template_uuid/delete$',
        views.BrainstormerTemplateDeleteView.as_view(),
        name='template-delete'),

    # Detail Brainstormer
    url(r'^:brainstormer_uuid/$',
        views.BrainstormerDetailView.as_view(),
        name='detail'),

    # Create Proposition
    url(r':brainstormer_uuid/proposition/create$',
        views.BrainstormerPropositionCreateView.as_view(),
        name='create_proposition'),

    # Update Proposition Brainstormer
    url(r':brainstormer_uuid/proposition/:proposition_uuid/update$',
        views.BrainstormerPropositionUpdateView.as_view(),
        name='update_proposition'),

    # Delete Proposition Brainstormer
    url(r':brainstormer_uuid/proposition/:proposition_uuid/delete$',
        views.BrainstormerPropositionDeleteView.as_view(),
        name='delete_proposition'),

    # Create Group Proposition Brainstormer
    url(r':brainstormer_uuid/group/create$',
        views.BrainstormerPropositionGroupCreateView.as_view(),
        name='create_group'),

    # Update Group Proposition Brainstormer
    url(r':brainstormer_uuid/group/:group_uuid/update$',
        views.BrainstormerPropositionGroupUpdateView.as_view(),
        name='update_group'),

    # Delete Group Proposition Brainstormer
    url(r':brainstormer_uuid/group/:group_uuid/delete$',
        views.BrainstormerPropositionGroupDeleteView.as_view(),
        name='delete_group'),

    # Export CSV Brainstormer
    url(r'^:brainstormer_uuid/export_csv$',
        views.CSVBrainstormerExportView.as_view(),
        name='export_csv'),

    # Export XLS Brainstormer
    url(r'^:brainstormer_uuid/export_xls$',
        views.XLSBrainstormerExportView.as_view(),
        name='brainstormer-export-xls'),

    # Import XLS Brainstormer
    url(r'^session/:session_uuid/import_xls$',
        views.XLSBrainstormerImportView.as_view(),
        name='brainstormer-import-xls'),

    # Export XLS Brainstormer Template
    url(r'^template/:brainstormer_template_uuid/export_xls$',
        views.XLSBrainstormerTemplateExportView.as_view(),
        name='brainstormer-template-export-xls'),

    # Import XLS Brainstormer Template
    url(r'^trainings/:training_uuid/import_xls$',
        views.XLSBrainstormerTemplateImportView.as_view(),
        name='brainstormer-template-import-xls'),
]
