Compare commits

..

2 Commits

2 changed files with 19 additions and 2 deletions

View File

@ -8,9 +8,14 @@ LINK_TYPES = (
('vimeo', "Vimeo"), ('vimeo', "Vimeo"),
('flickr', 'Flickr'), ('flickr', 'Flickr'),
('googlephotos', "Google Photos"), ('googlephotos', "Google Photos"),
('photoalbum', "Photo album") ('photoalbum', "Photo album"),
) )
LINK_DOMAINS = {
'youtu.be': 'youtube',
'y2u.be': 'youtube',
}
class ExternalLink(PlaceAsset): class ExternalLink(PlaceAsset):
class Meta: class Meta:

View File

@ -12,7 +12,7 @@ from django.http import HttpResponseForbidden
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from lostplaces.forms import SignupVoucherForm, TagSubmitForm from lostplaces.forms import SignupVoucherForm, TagSubmitForm
from lostplaces.models import Place, ExternalLink from lostplaces.models import Place, ExternalLink, external_links
from lostplaces.views.base_views import IsAuthenticatedMixin from lostplaces.views.base_views import IsAuthenticatedMixin
from lostplaces.common import redirect_referer_or from lostplaces.common import redirect_referer_or
@ -54,6 +54,18 @@ class ExternalLinkCreateView(PlaceAssetCreateView):
template_name = 'external_link/external_link_create.html' template_name = 'external_link/external_link_create.html'
success_message = _('External link submitted') success_message = _('External link submitted')
def post(self, request, place_id, *args, **kwargs):
response = super().post(request, place_id, *args, **kwargs)
if not self.object.linktype:
for domain, link_type in external_links.LINK_DOMAINS.items():
if domain in self.object.url:
self.object.linktype = link_type
self.object.save()
break
else:
self.object.linktype = None
return response
class ExternalLinkDeleteView(PlaceAssetDeleteView): class ExternalLinkDeleteView(PlaceAssetDeleteView):
model = ExternalLink model = ExternalLink
pk_url_kwarg = 'pk' pk_url_kwarg = 'pk'