name='video-album-cover'), url(r'^add/$', login_required(VideoCreateView.as_view()), name='video-add'), url(r'^(?P<pk>[\d]+)/edit/$', login_required(VideoUpdateView.as_view()), name='video-edit'), url(r'^(?P<pk>[\d]+)/get-s3-upload-url/$', login_required(VideoGetS3UploadURLView.as_view()), name='video-get-s3-upload-url'), url(r'^videos-delete/$', login_required(ObjectsDeleteView.as_view(model=Video)), name='videos-delete'), url(r'^albums-delete/$', login_required(ObjectsDeleteView.as_view(model=VideoAlbum)), name='videoalbums-delete'), url(r'^video-move/$', login_required(VideoMoveView.as_view()), name='video-move'), url(r'^(?P<pk>\w+).xml$', XMLDetailView.as_view( model=Video, template_name_suffix='_xml'), name='video-xml'),
name='photo-add' ), url(r'^(?P<pk>[\d]+)/edit/$', login_required(PhotoUpdateView.as_view()), name='photo-edit' ), url(r'^$', PhotoAlbumListView.as_view(), name='photo-list' ), url(r'^~(?P<category>[\w\-]+)/$', PhotoAlbumListView.as_view(), name='photo-list-category' ), url(r'^photos-delete/$', login_required(ObjectsDeleteView.as_view(model=Photo)), name='photos-delete' ), url(r'^albums-delete/$', login_required(ObjectsDeleteView.as_view(model=PhotoAlbum)), name='photoalbums-delete' ), url(r'^photo-move/$', login_required(PhotoMoveView.as_view()), name='photo-move' ), url(r'^(?P<pk>\w+)/$', PhotoDetailView.as_view(), name='photo-detail' ),