element_type = 'collection'
PUBLIC_ACCESS_CHOICES = (('none', 'none'), ('metadata', 'metadata'), ('full', 'full'))
- published_code_regex = '[A-Za-z0-9._]*'
- unpublished_code_regex = '[A-Za-z0-9._]*'
+ published_code_regex = '[A-Za-z0-9._-]*'
+ unpublished_code_regex = '[A-Za-z0-9._-]*'
code_regex = '(?:%s|%s)' % (published_code_regex, unpublished_code_regex)
reference = CharField(_('reference'), unique=True, null=True)
element_type = 'item'
PUBLIC_ACCESS_CHOICES = (('none', 'none'), ('metadata', 'metadata'), ('full', 'full'))
- published_code_regex = '[A-Za-z0-9._]*'
- unpublished_code_regex = '[A-Za-z0-9._]*'
+ published_code_regex = '[A-Za-z0-9._-]*'
+ unpublished_code_regex = '[A-Za-z0-9._-]*'
code_regex = '(?:%s|%s)' % (published_code_regex, unpublished_code_regex)
collection = ForeignKey('MediaCollection', related_name="items",
url(r'^items/$', 'django.views.generic.list_detail.object_list',
dict(all_items, paginate_by=20, template_name="telemeta/mediaitem_list.html"),
name="telemeta-items"),
- url(r'^items/(?P<public_id>[A-Za-z0-9._]+)/$', web_view.item_detail,
+ url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/$', web_view.item_detail,
name="telemeta-item-detail"),
- url(r'^items/(?P<public_id>[A-Za-z0-9._]+)/dc/$', web_view.item_detail,
+ url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', web_view.item_detail,
{'template': 'telemeta/mediaitem_detail_dc.html'},
name="telemeta-item-dublincore"),
- url(r'^items/(?P<public_id>[A-Za-z0-9._]+)/dc/xml/$', web_view.item_detail,
+ url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/dc/xml/$', web_view.item_detail,
{'format': 'dublin_core_xml'},
name="telemeta-item-dublincore-xml"),
- url(r'^items/download/(?P<public_id>[A-Za-z0-9._]+)\.(?P<extension>'
+ url(r'^items/download/(?P<public_id>[A-Za-z0-9._-]+)\.(?P<extension>'
+ export_extensions + ')$',
web_view.item_export,
name="telemeta-item-export"),
- url(r'^items/(?P<public_id>[A-Za-z0-9._]+)/visualize/(?P<visualizer_id>[0-9a-z_]+)/(?P<width>[0-9A-Z]+)x(?P<height>[0-9A-Z]+)/$',
+ url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/visualize/(?P<visualizer_id>[0-9a-z_]+)/(?P<width>[0-9A-Z]+)x(?P<height>[0-9A-Z]+)/$',
web_view.item_visualize,
name="telemeta-item-visualize"),
- url(r'^items/(?P<public_id>[A-Za-z0-9._]+)/analyze/(?P<analyzer_id>[0-9a-z_]+)/$',
+ url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/analyze/(?P<analyzer_id>[0-9a-z_]+)/$',
web_view.item_analyze,
name="telemeta-item-analyze"),
- url(r'^items/(?P<public_id>[A-Za-z0-9._]+)/item_xspf.xml$',
+ url(r'^items/(?P<public_id>[A-Za-z0-9._-]+)/item_xspf.xml$',
web_view.item_playlist,
dict(template="telemeta/mediaitem_xspf.xml", mimetype="application/xspf+xml"),
name="telemeta-item-xspf"),
url(r'^collections/?page=(?P<page>[0-9]+)$',
'django.views.generic.list_detail.object_list',
dict(all_collections, paginate_by=20)),
- url(r'^collections/(?P<public_id>[A-Za-z0-9._]+)/$', web_view.collection_detail,
+ url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/$', web_view.collection_detail,
dict(template="telemeta/collection_detail.html"), name="telemeta-collection-detail"),
- url(r'^collections/(?P<public_id>[A-Za-z0-9._]+)/dc/$', web_view.collection_detail,
+ url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', web_view.collection_detail,
dict(template="telemeta/collection_detail_dc.html"), name="telemeta-collection-dublincore"),
- url(r'^collections/(?P<public_id>[A-Za-z0-9._]+)/collection_xspf.xml$',
+ url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/collection_xspf.xml$',
web_view.collection_playlist,
dict(template="telemeta/collection_xspf.xml", mimetype="application/xspf+xml"),
name="telemeta-collection-xspf"),
- url(r'^collections/(?P<public_id>[A-Za-z0-9._]+)/collection.m3u$',
+ url(r'^collections/(?P<public_id>[A-Za-z0-9._-]+)/collection.m3u$',
web_view.collection_playlist,
dict(template="telemeta/collection.m3u", mimetype="audio/mpegurl"),
name="telemeta-collection-m3u"),