src/cm/urls.py
author Simon Descarpentries <sid@sopinspace.com>
Mon, 21 Oct 2013 16:37:07 +0200
changeset 553 bf26fb47a14c
parent 542 6e2110836a4b
permissions -rw-r--r--
To allow scrolling in Safari mobile, we set the content of text_view_comments frame in a jQuery UI layout. So the automated scrolling operations in c_sync.js must be adjustable to the right part to scroll. Also, if a comment have to be shown outside of the current viewport, we scroll the correct part to that viewport and then set the comment top Y offset to juste what it needs to avoid the "Add comment" button after scrolling operation. If not in Safari mobile, we add an offset here to avoid comment to display under the "Add comment" button.

from django.views.generic import list_detail
from django.views.generic import create_update
from django.contrib.auth.models import User
from django.conf.urls.defaults import *
from django.conf import settings
from cm.views import *
from cm.views.create import *
from cm.views.export import *
from cm.views.texts import *
from cm.views.user import *
from cm.views.timezone import *
from cm.views.site import *
from cm.views.feeds import *
from cm.views.followup import *
from cm.views import i18n

 
urlpatterns = patterns('',
)

urlpatterns += patterns('',
     url(r'^$', dashboard, name="index"),
     url(r'^text/$', text_list, name="text"),
     url(r'^settings/$', settingss, name="settings"),
     url(r'^settings/design/$', settings_design, name="settings-design"),

     # system pages
     url(r'^i18n/setlang/(?P<lang_code>\w+)/$', i18n.set_language, name="setlang"),
     url(r'^unauthorized/$', unauthorized, name="unauthorized"),
     url(r'^timezone_set/$', timezone_set, name="timezone_set"),     
     
     # user login/logout/profile pages
     url(r'^login/$', login, name="login"),
     url(r'^register/$', register, name="register"),
     url(r'^logout/$', logout, name="logout"),
     url(r'^profile/$', profile, name="profile"),    
     url(r'^profile-pw/$', profile_pw, name="profile-pw"),    
     
     # users
     url(r'^user/$', user_list, name="user"),
     url(r'^user/(?P<key>\w*)/activate/$', user_activate, name="user-activate"),
     url(r'^user/(?P<key>\w*)/suspend/$', user_suspend, name="user-suspend"),
     url(r'^user/(?P<key>\w*)/enable/$', user_enable, name="user-enable"),
     url(r'^user/(?P<key>\w*)/edit/$', user_edit, name="user-edit"),
     url(r'^user/-/edit/$', user_anon_edit, name="user-anon-edit"),     
     url(r'^user/(?P<key>\w*)/contact/$', user_contact, name="user-contact"),
     url(r'^user/(?P<key>\w*)/send_invitation/$', user_send_invitation, name="user-send-invitation"),
     url(r'^user/add/$', user_add, name="user-add"),
     url(r'^user/mass-add/$', user_mass_add, name="user-mass-add"),
     
     # new texts
     url(r'^text/(?P<key>\w*)/share/$', text_share, name="text-share"),

     # text create
     url(r'^create/content/$', text_create_content, name="text-create-content"),
     url(r'^create/upload/$', text_create_upload, name="text-create-upload"),
     url(r'^create/import/$', text_create_import, name="text-create-import"),

     # text
     url(r'^text/(?P<key>\w*)/view/$', text_view, name="text-view"),
     url(r'^text/(?P<key>\w*)/view/\?comment_id_key=(?P<id>\w*)$', text_view, name="text-view-show-comment"), 
     
     url(r'^text/(?P<key>\w*)/edit/$', text_edit, name="text-edit"),
     url(r'^text/(?P<key>\w*)/pre_edit/$', text_pre_edit, name="text-preedit"),
     url(r'^text/(?P<key>\w*)/settings/$', text_settings, name="text-settings"),
     url(r'^text/(?P<key>\w*)/history/$', text_history, name="text-history"),
     url(r'^text/(?P<key>\w*)/history-version/(?P<version_key>\w*)/$', text_history_version, name="text-history-version"),
     url(r'^text/(?P<key>\w*)/history-compare/(?P<v1_version_key>\w*)/(?P<v2_version_key>\w*)/$', text_history_compare, name="text-history-compare"),
     url(r'^text/(?P<key>\w*)/history-compare/(?P<v1_version_key>\w*)/(?P<v2_version_key>\w*)/(?P<mode>\d*)$', text_history_compare, name="text-history-compare2"),
     url(r'^text/(?P<key>\w*)/revert/(?P<text_version_key>\w*)/$', text_revert, name="text-revert"),
     url(r'^text/(?P<key>\w*)/attach/(?P<attach_key>\w*)/$', text_attach, name="text-attach"),
     url(r'^text/(?P<key>\w*)/delete/$', text_delete, name="text-delete"),
     url(r'^text/(?P<key>\w*)/(?P<text_version_key>\w*)/delete/$', text_version_delete, name="text-version-delete"),        
     url(r'^text/(?P<key>\w*)/export/(?P<format>\w*)/(?P<download>\w*)/(?P<whichcomments>\w*)/(?P<withcolor>\w*)/$', text_export, name="text-export"),
     url(r'^text/(?P<key>\w*)/history/$', text_history, name="text-history"),

     # detached attachements! (used for saving images when just converting to HTML, without creating a text)
     url(r'^attach/(?P<attach_key>\w*)/$', notext_attach, name="notext-attach"),
     
     # main client frame
     url(r'^text/(?P<key>\w*)/comments_frame/$', text_view_frame, name="text-view-comments-frame"),
     url(r'^text/(?P<key>\w*)/comments_frame/(?P<version_key>\w*)/$', text_view_frame, name="text-view-comments-frame-version"),

     # included in text_view_frame
     url(r'^text/(?P<key>\w*)/comments/$', text_view_comments, name="text-view-comments"),
     url(r'^text/(?P<key>\w*)/comments/(?P<version_key>\w*)/$', text_view_comments, name="text-view-comments-version"),

     url(r'^text/(?P<key>\w*)/user/add/$', user_add, name="user-add-text"),
     url(r'^text/(?P<key>\w*)/user/mass-add/$', user_mass_add, name="user-mass-add-text"),
     
     # site
     url(r'^contact/$', contact, name="contact"),
     url(r'^help/$', help, name="help"),
     
     # notifications
     ## workspace followup
     url(r'^followup/$', followup, name="followup"),
     url(r'^followup/(?P<adminkey>\w*)/deactivate/$', desactivate_notification, name="desactivate-notification"),
     ## text notifications
     url(r'^text/(?P<key>\w*)/followup/$', text_followup, name="text-followup"),
     ## embed
     url(r'^text/(?P<key>\w*)/embed/$', text_embed, name="text-embed"),

     # feeds
     ## workspace feeds
     url(r'^feed/(?P<key>\w*)/$', private_feed, name="private-feed"),
     url(r'^feed/$', public_feed, name="public-feed"),
     ## text feeds
     url(r'^text/(?P<key>\w*)/feed/$', text_feed, name="text-feed"),
     url(r'^text/(?P<key>\w*)/feed/(?P<private_feed_key>\w*)/$', text_feed_private, name="text-private-feed"),

     url(r'^wysiwyg-preview/(?P<format>\w*)/$', text_wysiwyg_preview, name="text-wysiwyg-preview"),
)

# this is to make django.contrib.auth.views work with our templates
from django.contrib.sites.models import Site
Site._meta.installed = False

urlpatterns += patterns('django.contrib.auth.views',    
    (r'^password_reset/$', 'password_reset', {'template_name': 'site/forgot_pw.html', 'email_template_name':'email/forgot_pw.txt', 'post_reset_redirect':'/password_reset/done/'}, 'forgot-pw'),
    (r'^password_reset/done/$', password_reset_done),
    (r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'password_reset_confirm', {'template_name': 'site/forgot_pw.html', 'post_reset_redirect':'/reset/done/'}),
    (r'^reset/done/$', password_reset_complete),
)

# static pages
urlpatterns += patterns('django.views.generic.simple',
    url(r'^help/format/$', 'direct_to_template', {'template': 'static/help_format.html'}, name='help-format'),
)


if settings.DEBUG: # client experiments
    urlpatterns += patterns('django.views.generic.simple',
        url(r'anim_io_sync/$','direct_to_template', {'template': 'static/experiment/anim_io_sync.html'}, name='experiment-anim_io_sync'),
        url(r'test0/$','direct_to_template', {'template': 'static/experiment/test0.html'}, name='test0'),
    )

urlpatterns += patterns('',
    url(r'^client/$', client_exchange, name="text-client-exchange"),
)

if settings.DEBUG:
     urlpatterns += patterns('',
       (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
       (r'^cmmedia/(?P<path>.*)$', 'django.views.static.serve', {'document_root': 'src/cm/media/'}),
       (r'^robots.txt$', 'django.views.static.serve', {'document_root': 'src/cm/media/', 'path':'robots.txt'}),
       (r'^favicon.ico$', 'django.views.static.serve', {'document_root': 'src/cm/media/', 'path':'favicon.ico'}),
     )
else:
     urlpatterns += patterns('',
       (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
     )
     
js_info_dict = {
    'packages': ('cm', ),
}

urlpatterns += patterns('',
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
)

urlpatterns += patterns('',
   (r'^api/', include('cm.api.urls')),
)