1 # -*- encoding: utf-8 -*-
3 from django
.conf
.urls
.defaults
import patterns
, include
, handler500
, handler404
, url
4 from django
.conf
import settings
5 from django
.contrib
import admin
6 from savoirs
.rss
import FilChercheurs
, FilRessources
, FilActualites
, FilAppels
, FilEvenements
, FilSites
, FilMessages
9 handler500
= "views.page_500"
10 handler404
= "views.page_404"
12 # Les URLs suivantes peuvent être préfixées de la discipline et/ou la
13 # région. Nous les regroupons donc dans un module qu'on incluera plus bas.
14 sep_patterns
= patterns(
18 (r
'^$', 'savoirs.views.index', {}, 'accueil'),
21 (r
'^recherche/$', 'savoirs.views.recherche'),
24 urlpatterns
= sep_patterns
+ patterns(
27 (r
'^informations/$', 'savoirs.views.informations'),
30 (r
'^agenda/$', 'savoirs.views.evenement_index', {}, 'agenda'),
31 (r
'^agenda/evenements/(?P<id>\d+)/$', 'savoirs.views.evenement', {}, 'evenement'),
32 (r
'^agenda/evenements/moderer/$', 'savoirs.views.evenement_moderation'),
33 (r
'^agenda/evenements/moderer/(.+)/accepter/$', 'savoirs.views.evenement_accepter'),
34 (r
'^agenda/evenements/moderer/(.+)/refuser/$', 'savoirs.views.evenement_refuser'),
35 (r
'^agenda/evenements/utilisation/$', 'savoirs.views.page_statique', dict(id='conditions-agenda'), 'conditions-agenda'),
36 (r
'^agenda/evenements/creer/$', 'savoirs.views.evenement_ajout', {}, 'evenement-ajout'),
37 (r
'^agenda/evenements/creer/options_fuseau_horaire/$', 'savoirs.views.options_fuseau_horaire'),
40 (r
'^a-propos/$', 'savoirs.views.page_statique', dict(id='a-propos'), 'a-propos'),
41 (r
'^aide/$', 'savoirs.views.page_statique', dict(id='aide'), 'aide'),
42 (r
'^domaines-de-recherche/$', 'savoirs.views.page_statique', dict(id='domaines-de-recherche'), 'domaines-de-recherche'),
43 (r
'^legal/$', 'savoirs.views.page_statique', dict(id='legal'), 'legal'),
44 (r
'^nous-contacter/$', 'savoirs.views.page_statique', dict(id='contact'), 'contact'),
47 (r
'^ressources/$', 'savoirs.views.ressource_index', {}, 'ressources'),
48 (r
'^ressources/(?P<id>\d+)/$', 'savoirs.views.ressource_retrieve', {}, 'ressource'),
51 (r
'^actualites/$', 'savoirs.views.actualite_index', {}, 'actualites'),
52 (r
'^actualites/(?P<id>\d+)/$', 'savoirs.views.actualite', {}, 'actualite'),
53 (r
'^appels/$', 'savoirs.views.actualite_index', dict(type='appels'), 'appels'),
56 (r
'^sites/$', 'sitotheque.views.index', {}, 'sites'),
57 (r
'^sites/(?P<id>\d+)/$', 'sitotheque.views.retrieve', {}, 'site'),
58 (r
'^sites/google.xml$', 'sitotheque.views.config_google'),
61 (r
'^sites-auf/$', 'savoirs.views.sites_auf', {}, 'sites-auf'),
64 (r
'^chercheurs/$', 'chercheurs.views.index', {}, 'chercheurs'),
65 (r
'^chercheurs/(?P<id>\d+)/$', 'chercheurs.views.retrieve', {}, 'chercheur'),
66 (r
'^chercheurs/inscription/$', 'chercheurs.views.inscription', {}, 'inscription'),
67 (r
'^chercheurs/inscription_faite/$', 'django.views.generic.simple.direct_to_template', dict(
68 template
='chercheurs/inscription_faite.html'
69 ), 'chercheurs-inscription-faite'),
70 (r
'^chercheurs/activation/(?P<id_base36>.*)/(?P<token>.*)/$', 'chercheurs.views.activation', {}, 'chercheurs-activation'),
71 (r
'^chercheurs/desinscription/$', 'chercheurs.views.desinscription'),
72 (r
'^chercheurs/perso/$', 'chercheurs.views.perso'),
73 (r
'^chercheurs/edit/$', 'chercheurs.views.edit'),
74 (r
'^chercheurs/conversion$', 'savoirs.views.page_statique', dict(id='table-de-passage'), 'conversion'),
75 (r
'^chercheurs/connexion/$', 'chercheurs.views.login', dict(
76 template_name
='chercheurs/login.html'
77 ), 'chercheurs-login'),
78 (r
'^chercheurs/deconnexion/$', 'django.contrib.auth.views.logout', dict(
79 template_name
='chercheurs/logged_out.html'
80 ), 'chercheurs-logout'),
81 (r
'^chercheurs/changement-mdp/$', 'chercheurs.views.password_change', dict(
82 template_name
='chercheurs/password_change_form.html',
83 post_change_redirect
='/chercheurs/changement-mdp-fini/'
84 ), 'chercheurs-password-change'),
85 (r
'^chercheurs/changement-mdp-fini/$', 'django.contrib.auth.views.password_change_done', dict(
86 template_name
='chercheurs/password_change_done.html'
87 ), 'chercheurs-password-change-done'),
88 (r
'^chercheurs/oubli-mdp/$', 'django.contrib.auth.views.password_reset', dict(
89 template_name
='chercheurs/password_reset_form.html',
90 email_template_name
='chercheurs/password_reset_email.txt',
91 post_reset_redirect
='/chercheurs/oubli-mdp-envoye/'
92 ), 'chercheurs-password-reset'),
93 (r
'^chercheurs/oubli-mdp-envoye/$', 'django.contrib.auth.views.password_reset_done', dict(
94 template_name
='chercheurs/password_reset_done.html'
95 ), 'chercheurs-password-reset-done'),
96 (r
'^chercheurs/oubli-mdp-retour/(?P<uidb36>.*)/(?P<token>.*)/$', 'django.contrib.auth.views.password_reset_confirm', dict(
97 template_name
='chercheurs/password_reset_confirm.html'
98 ), 'chercheurs-password-reset-confirm'),
99 (r
'^chercheurs/oubli-mdp-fini/$', 'django.contrib.auth.views.password_reset_complete', dict(
100 template_name
='chercheurs/password_reset_complete.html'
102 (r
'^etablissements/autocomplete/$', 'chercheurs.views.etablissements_autocomplete'),
103 (r
'^etablissements/autocomplete/(?P<pays>.*)/$', 'chercheurs.views.etablissements_autocomplete'),
106 (r
'^api/chercheurs/(?P<chercheur_id>\d+)/$', 'chercheurs.api.api'),
107 (r
'^api/chercheurs/pays/(?P<pays>.*)/$', 'chercheurs.api.api'),
108 (r
'^api/chercheurs/region/(?P<region>.*)/$', 'chercheurs.api.api'),
109 (r
'^api/chercheurs/recherche', 'chercheurs.api.recherche' ),
113 (r
'^groupes/$', 'chercheurs.views.groupe_index'),
114 url(r
'^groupes/(?P<id>\d+)/$', 'chercheurs.views.groupe_retrieve', name
='groupe_retrieve'),
115 url(r
'^groupes/(?P<id>\d+)/adhesion/$', 'chercheurs.views.groupe_adhesion', name
='groupe_adhesion'),
116 url(r
'^groupes/(?P<id>\d+)/membres/$', 'chercheurs.views.groupe_membres', name
='groupe_membres'),
117 url(r
'^groupes/(?P<id>\d+)/messages/$', 'chercheurs.views.groupe_messages', name
='groupe_messages'),
119 # section par discipline et/ou région
120 (r
'^discipline/(?P<discipline>\d+)/', include(sep_patterns
)),
121 (r
'^region/(?P<region>\d+)/', include(sep_patterns
)),
122 (r
'^discipline/(?P<discipline>\d+)/region/(?P<region>\d+)/', include(sep_patterns
)),
124 # traduction disponible dans le frontend sans permissons
125 url(r
'^jsi18n/$', admin
.site
.i18n_javascript
,),
128 (r
'^admin/rappels/$', 'rappels.views.admin_rappels', {}, 'admin-rappels'),
131 url(r
'^admin_tools/', include('admin_tools.urls')),
132 (r
'^admin/', include(admin
.site
.urls
)),
133 (r
'^admin/confirmation/(.*)', 'savoirs.admin_views.confirmation'),
134 (r
'^admin/assigner_pays', 'savoirs.admin_views.assigner_pays'),
135 (r
'^admin/assigner_thematiques', 'savoirs.admin_views.assigner_thematiques'),
136 (r
'^admin/assigner_categorie', 'savoirs.admin_views.assigner_categorie'),
137 (r
'^admin/assigner_cgstatut', 'chercheurs.admin_views.assigner_cgstatut'),
138 (r
'^admin/(?P<app_name>[^/]*)/(?P<model_name>[^/]*)/assigner_regions', 'savoirs.admin_views.assigner_regions', {}, 'assigner_regions'),
139 (r
'^admin/(?P<app_name>[^/]*)/(?P<model_name>[^/]*)/assigner_disciplines', 'savoirs.admin_views.assigner_disciplines', {}, 'assigner_disciplines'),
140 (r
'^admin/chercheurs/chercheur/export', 'chercheurs.admin_views.export'),
141 (r
'^admin/(.*)', admin
.site
.root
),
144 (r
'^stats/$', 'savoirs.admin_views.stats', {}, 'stats'),
148 (r
'^rss/chercheurs/$', FilChercheurs(), {}, 'rss_chercheurs'),
149 (r
'^rss/ressources/$', FilRessources(), {}, 'rss_ressources'),
150 (r
'^rss/actualites/$', FilActualites(), {}, 'rss_actualites'),
151 (r
'^rss/appels/$', FilAppels(), {}, 'rss_appels'),
152 (r
'^rss/agenda/$', FilEvenements(), {}, 'rss_agenda'),
153 (r
'^rss/sites/$', FilSites(), {}, 'rss_sites'),
154 (r
'^rss/messages/(?P<groupe_id>\d+)/$', FilMessages(), {}, 'rss_messages'),
155 (r
'^json/get/$', 'savoirs.views.json_get'),
156 (r
'^json/set/$', 'savoirs.views.json_set'),
158 # recherches sauvegardées
159 (r
'^recherches/$', 'savoirs.views.recherches', {}, 'recherches'),
160 (r
'^recherches/(?P<type>[^/]*)/sauvegarder/$', 'savoirs.views.sauvegarder_recherche', {}, 'sauvegarder_recherche'),
161 (r
'^recherches/(?P<id>\d+)/supprimer/$', 'savoirs.views.supprimer_recherche', {}, 'supprimer_recherche'),
162 (r
'^recherches/(?P<id>\d+)/editer/$', 'savoirs.views.editer_recherche', {}, 'editer_recherche'),
163 (r
'^recherches/(?P<id>\d+)/activer-alerte/$', 'savoirs.views.activer_alerte', {}, 'activer_alerte'),
164 (r
'^recherches/(?P<id>\d+)/desactiver-alerte/$', 'savoirs.views.desactiver_alerte', {}, 'desactiver_alerte'),
166 # API Interface (FAUN)
167 (r
'^faun/auteurs/(?P<id>\d+)', 'interfaces.views.faun_auteurs', {}, 'faun_auteurs'),
170 (r
'^djselectable/', include('selectable.urls')),
174 urlpatterns
+= patterns('',
175 (r
'^media/(?P<path>.*)$', 'django.views.static.serve',
176 {'document_root': settings
.MEDIA_ROOT
}),