def map_detail(request, mapid, snapshot=None, template='maps/map_detail.html'): ''' The view that show details of each map ''' map_obj = _resolve_map(request, mapid, 'base.view_resourcebase', _PERMISSION_MSG_VIEW) # Update count for popularity ranking, # but do not includes admins or resource owners if request.user != map_obj.owner and not request.user.is_superuser: Map.objects.filter(id=map_obj.id).update(popular_count=F('popular_count') + 1) if snapshot is None: config = map_obj.viewer_json(request.user) else: config = snapshot_config(snapshot, map_obj, request.user) config = json.dumps(config) layers = MapLayer.objects.filter(map=map_obj.id) if request.method == "POST": if 'keywords' in request.POST: keywords_form = KeywordsForm(request.POST, instance=map_obj) if keywords_form.is_valid(): keywords_form.save() new_keywords = keywords_form.cleaned_data['keywords'] map_obj.keywords.set(*new_keywords) map_obj.save() published_form = PublishStatusForm(instance=map_obj) elif 'published_submit_btn' in request.POST: published_form = PublishStatusForm(request.POST, instance=map_obj) if published_form.is_valid(): published_form.save() map_obj.is_published = published_form.cleaned_data['is_published'] map_obj.save() keywords_form = KeywordsForm(instance=map_obj) elif 'add_keyword' in request.POST: map_obj.keywords.add(request.POST['add_keyword']) map_obj.save() elif 'remove_keyword' in request.POST: map_obj.keywords.remove(request.POST['remove_keyword']) map_obj.save() else: keywords_form = KeywordsForm(instance=map_obj) published_form = PublishStatusForm(instance=map_obj) context_dict = { 'config': config, 'resource': map_obj, 'layers': layers, 'permissions_json': _perms_info_json(map_obj), "documents": get_related_documents(map_obj), "keywords_form": keywords_form, "published_form": published_form, } if settings.SOCIAL_ORIGINS: context_dict["social_links"] = build_social_links(request, map_obj) return render_to_response(template, RequestContext(request, context_dict))
def map_detail(request, mapid, snapshot=None, template='maps/map_detail.html'): ''' The view that show details of each map ''' map_obj = _resolve_map(request, mapid, 'base.view_resourcebase', _PERMISSION_MSG_VIEW) # Update count for popularity ranking, # but do not includes admins or resource owners if request.user != map_obj.owner and not request.user.is_superuser: MapStory.objects.filter(id=map_obj.id).update(popular_count=F('popular_count') + 1) if snapshot is None: config = map_obj.viewer_json(request.user) else: config = snapshot_config(snapshot, map_obj, request.user) config = json.dumps(config) chapters = map_obj.chapters layers = [] for chapter in chapters: layers = layers + list(chapter.local_layers) print layers if request.method == "POST": keywords_form = KeywordsForm(request.POST, instance=map_obj) published_form = PublishStatusForm(instance=map_obj) if 'keywords' in request.POST: if keywords_form.is_valid(): keywords_form.save() new_keywords = keywords_form.cleaned_data['keywords'] map_obj.keywords.set(*new_keywords) map_obj.save() published_form = PublishStatusForm(instance=map_obj) elif 'published_submit_btn' in request.POST: published_form = PublishStatusForm(request.POST, instance=map_obj) if published_form.is_valid(): published_form.save() map_obj.is_published = published_form.cleaned_data['is_published'] map_obj.save() keywords_form = KeywordsForm(instance=map_obj) elif 'add_keyword' in request.POST: map_obj.keywords.add(request.POST['add_keyword']) map_obj.save() elif 'remove_keyword' in request.POST: map_obj.keywords.remove(request.POST['remove_keyword']) map_obj.save() else: keywords_form = KeywordsForm(instance=map_obj) published_form = PublishStatusForm(instance=map_obj) context_dict = { 'config': config, 'resource': map_obj, 'layers': layers, 'permissions_json': _perms_info_json(map_obj), 'documents': get_related_documents(map_obj), 'keywords_form': keywords_form, 'published_form': published_form, } if settings.SOCIAL_ORIGINS: context_dict["social_links"] = build_social_links(request, map_obj) return render_to_response(template, RequestContext(request, context_dict))
def map_detail(request, slug, snapshot=None, template='maps/map_detail.html'): ''' The view that show details of each map ''' # MapStory specific change from mapid parameter to slug parameter map_obj = _resolve_map( request, slug, 'base.view_resourcebase', _PERMISSION_MSG_VIEW) # Update count for popularity ranking, # but do not includes admins or resource owners if request.user != map_obj.owner and not request.user.is_superuser: Map.objects.filter( id=map_obj.id).update( popular_count=F('popular_count') + 1) if 'access_token' in request.session: access_token = request.session['access_token'] else: access_token = None if snapshot is None: config = map_obj.viewer_json(request, access_token) else: config = snapshot_config(snapshot, map_obj, request.user, access_token) config = json.dumps(config) layers = MapLayer.objects.filter(map=map_obj.id) links = map_obj.link_set.download() group = None if map_obj.group: try: group = GroupProfile.objects.get(slug=map_obj.group.name) except GroupProfile.DoesNotExist: group = None ### # MapStory Specific Changes ### chapters = map_obj.chapters # Overwrite the layers list so that we can add all layers from all chapters. layers = [] for chapter in chapters: layers = layers + list(chapter.local_layers) keywords = json.dumps([tag.name for tag in map_obj.keywords.all()]) if request.method == "POST": keywords_form = KeywordsForm(request.POST, instance=map_obj) published_form = PublishStatusForm(instance=map_obj) if 'keywords' in request.POST: if keywords_form.is_valid(): new_keywords = keywords_form.cleaned_data['keywords'] map_obj.keywords.add(*new_keywords) map_obj.save() published_form = PublishStatusForm(instance=map_obj) elif 'published_submit_btn' in request.POST: published_form = PublishStatusForm(request.POST, instance=map_obj) if published_form.is_valid(): published_form.save() map_obj.is_published = published_form.cleaned_data['is_published'] map_obj.save() keywords_form = KeywordsForm(instance=map_obj) elif 'add_keyword' in request.POST: map_obj.keywords.add(request.POST['add_keyword']) map_obj.save() elif 'remove_keyword' in request.POST: map_obj.keywords.remove(request.POST['remove_keyword']) map_obj.save() else: keywords_form = KeywordsForm(instance=map_obj) published_form = PublishStatusForm(instance=map_obj) map_thumbnail = map_obj.get_thumbnail_url update_es_index(MapStory, MapStory.objects.get(id=map_obj.id)) # This will get URL encoded later and is used for the social media share URL share_url = "https://%s/story/%s" % (request.get_host(), map_obj.slug) share_title = "%s by %s." % (map_obj.title, map_obj.owner) share_description = map_obj.abstract # Check if user is admin in one of those organizations org_admin_memberships = [] memberships = OrganizationMembership.objects.filter( user_id=request.user.pk) for membership in memberships.all(): if membership.is_admin: org_admin_memberships.append(membership) if len(org_admin_memberships) < 1: org_admin_memberships = None ini_memberships = InitiativeMembership.objects.filter( user_id=request.user.pk) ini_admin_memberships = [] for m in ini_memberships.all(): if m.is_admin: ini_admin_memberships.append(m) if len(ini_admin_memberships) < 1: ini_admin_memberships = None ### # End MapStory Specific Changes ### context_dict = { 'config': config, 'resource': map_obj, 'group': group, 'layers': layers, 'perms_list': get_perms(request.user, map_obj.get_self_resource()), 'permissions_json': _perms_info_json(map_obj), "documents": get_related_documents(map_obj), 'links': links, # MapStory Specific Additions 'keywords': keywords, 'keywords_form': keywords_form, 'published_form': published_form, 'thumbnail': map_thumbnail, 'share_url': share_url, 'share_title': share_title, 'share_description': share_description, 'organizations': org_admin_memberships, 'initiatives': ini_admin_memberships, } context_dict["preview"] = getattr( settings, 'GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY', 'geoext') context_dict["crs"] = getattr( settings, 'DEFAULT_MAP_CRS', 'EPSG:900913') if settings.SOCIAL_ORIGINS: context_dict["social_links"] = build_social_links(request, map_obj) # Favorites if request.user.is_authenticated(): context_dict["favorite_info"] = get_favorite_info( request.user, map_obj) return render(request, template, context=context_dict)
def map_detail(request, slug, snapshot=None, template='maps/map_detail.html'): ''' The view that show details of each map ''' # MapStory specific change from mapid parameter to slug parameter map_obj = _resolve_map(request, slug, 'base.view_resourcebase', _PERMISSION_MSG_VIEW) # Update count for popularity ranking, # but do not includes admins or resource owners if request.user != map_obj.owner and not request.user.is_superuser: Map.objects.filter(id=map_obj.id).update( popular_count=F('popular_count') + 1) if 'access_token' in request.session: access_token = request.session['access_token'] else: access_token = None if snapshot is None: config = map_obj.viewer_json(request, access_token) else: config = snapshot_config(snapshot, map_obj, request.user, access_token) config = json.dumps(config) layers = MapLayer.objects.filter(map=map_obj.id) links = map_obj.link_set.download() group = None if map_obj.group: try: group = GroupProfile.objects.get(slug=map_obj.group.name) except GroupProfile.DoesNotExist: group = None ### # MapStory Specific Changes ### chapters = map_obj.chapters # Overwrite the layers list so that we can add all layers from all chapters. layers = [] for chapter in chapters: layers = layers + list(chapter.local_layers) keywords = json.dumps([tag.name for tag in map_obj.keywords.all()]) if request.method == "POST": keywords_form = KeywordsForm(request.POST, instance=map_obj) published_form = PublishStatusForm(instance=map_obj) if 'keywords' in request.POST: if keywords_form.is_valid(): new_keywords = keywords_form.cleaned_data['keywords'] map_obj.keywords.add(*new_keywords) map_obj.save() published_form = PublishStatusForm(instance=map_obj) elif 'published_submit_btn' in request.POST: published_form = PublishStatusForm(request.POST, instance=map_obj) if published_form.is_valid(): published_form.save() map_obj.is_published = published_form.cleaned_data[ 'is_published'] map_obj.save() keywords_form = KeywordsForm(instance=map_obj) elif 'add_keyword' in request.POST: map_obj.keywords.add(request.POST['add_keyword']) map_obj.save() elif 'remove_keyword' in request.POST: map_obj.keywords.remove(request.POST['remove_keyword']) map_obj.save() else: keywords_form = KeywordsForm(instance=map_obj) published_form = PublishStatusForm(instance=map_obj) map_thumbnail = map_obj.get_thumbnail_url update_es_index(MapStory, MapStory.objects.get(id=map_obj.id)) # This will get URL encoded later and is used for the social media share URL share_url = "https://%s/story/%s" % (request.get_host(), map_obj.slug) share_title = "%s by %s." % (map_obj.title, map_obj.owner) share_description = map_obj.abstract # Check if user is admin in one of those organizations org_admin_memberships = [] memberships = OrganizationMembership.objects.filter( user_id=request.user.pk) for membership in memberships.all(): if membership.is_admin: org_admin_memberships.append(membership) if len(org_admin_memberships) < 1: org_admin_memberships = None ini_memberships = InitiativeMembership.objects.filter( user_id=request.user.pk) ini_admin_memberships = [] for m in ini_memberships.all(): if m.is_admin: ini_admin_memberships.append(m) if len(ini_admin_memberships) < 1: ini_admin_memberships = None ### # End MapStory Specific Changes ### context_dict = { 'config': config, 'resource': map_obj, 'group': group, 'layers': layers, 'perms_list': get_perms(request.user, map_obj.get_self_resource()), 'permissions_json': _perms_info_json(map_obj), "documents": get_related_documents(map_obj), 'links': links, # MapStory Specific Additions 'keywords': keywords, 'keywords_form': keywords_form, 'published_form': published_form, 'thumbnail': map_thumbnail, 'share_url': share_url, 'share_title': share_title, 'share_description': share_description, 'organizations': org_admin_memberships, 'initiatives': ini_admin_memberships, } context_dict["preview"] = getattr(settings, 'GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY', 'geoext') context_dict["crs"] = getattr(settings, 'DEFAULT_MAP_CRS', 'EPSG:900913') if settings.SOCIAL_ORIGINS: context_dict["social_links"] = build_social_links(request, map_obj) # Favorites if request.user.is_authenticated(): context_dict["favorite_info"] = get_favorite_info( request.user, map_obj) return render(request, template, context=context_dict)
def map_detail(request, mapid, snapshot=None, template='maps/map_detail.html'): ''' The view that show details of each map ''' map_obj = _resolve_map(request, mapid, 'base.view_resourcebase', _PERMISSION_MSG_VIEW) # Update count for popularity ranking, # but do not includes admins or resource owners if request.user != map_obj.owner and not request.user.is_superuser: MapStory.objects.filter(id=map_obj.id).update(popular_count=F('popular_count') + 1) if snapshot is None: config = map_obj.viewer_json(request.user) else: config = snapshot_config(snapshot, map_obj, request.user) config = json.dumps(config) chapters = map_obj.chapters layers = [] for chapter in chapters: layers = layers + list(chapter.local_layers) keywords = json.dumps([tag.name for tag in map_obj.keywords.all()]) if request.method == "POST": keywords_form = KeywordsForm(request.POST, instance=map_obj) published_form = PublishStatusForm(instance=map_obj) if 'keywords' in request.POST: if keywords_form.is_valid(): keywords_form.save() new_keywords = keywords_form.cleaned_data['keywords'] map_obj.keywords.set(*new_keywords) map_obj.save() published_form = PublishStatusForm(instance=map_obj) elif 'published_submit_btn' in request.POST: published_form = PublishStatusForm(request.POST, instance=map_obj) if published_form.is_valid(): published_form.save() map_obj.is_published = published_form.cleaned_data['is_published'] map_obj.save() keywords_form = KeywordsForm(instance=map_obj) elif 'add_keyword' in request.POST: map_obj.keywords.add(request.POST['add_keyword']) map_obj.save() elif 'remove_keyword' in request.POST: map_obj.keywords.remove(request.POST['remove_keyword']) map_obj.save() else: keywords_form = KeywordsForm(instance=map_obj) published_form = PublishStatusForm(instance=map_obj) map_thumbnail_dir = os.path.join(settings.MEDIA_ROOT, 'thumbs') map_default_thumbnail_array = map_obj.get_thumbnail_url().split('/') map_default_thumbnail_name = 'map' + str(mapid) + '.jpg' map_default_thumbnail = os.path.join(map_thumbnail_dir, map_default_thumbnail_name) # TODO: create function to handle map and layer thumbs if request.method == 'POST': map_thumb_form = ThumbnailImageForm(request.POST, request.FILES) if map_thumb_form.is_valid(): map_new_img = ThumbnailImage( thumbnail_image=request.FILES['thumbnail_image'] ) map_new_img.save() map_obj.save_thumbnail(map_default_thumbnail_name, map_new_img) map_user_upload_thumbnail = ThumbnailImage.objects.all()[0] map_user_upload_thumbnail_filepath = str( map_user_upload_thumbnail.thumbnail_image ) os.rename(map_user_upload_thumbnail_filepath, map_default_thumbnail) else: map_thumb_form = ThumbnailImageForm() map_thumbnail = map_obj.get_thumbnail_url update_es_index(MapStory, MapStory.objects.get(id=map_obj.id)) context_dict = { 'config': config, 'resource': map_obj, 'layers': layers, 'keywords': keywords, 'permissions_json': _perms_info_json(map_obj), 'documents': get_related_documents(map_obj), 'keywords_form': keywords_form, 'published_form': published_form, 'thumbnail': map_thumbnail, 'thumb_form': map_thumb_form } if settings.SOCIAL_ORIGINS: context_dict["social_links"] = build_social_links(request, map_obj) return render_to_response(template, RequestContext(request, context_dict))
def map_detail(request, mapid, snapshot=None, template='maps/map_detail.html'): ''' The view that show details of each map ''' map_obj = _resolve_map(request, mapid, 'base.view_resourcebase', _PERMISSION_MSG_VIEW) # Update count for popularity ranking, # but do not includes admins or resource owners if request.user != map_obj.owner and not request.user.is_superuser: MapStory.objects.filter(id=map_obj.id).update( popular_count=F('popular_count') + 1) if snapshot is None: config = map_obj.viewer_json(request.user) else: config = snapshot_config(snapshot, map_obj, request.user) config = json.dumps(config) chapters = map_obj.chapters layers = [] for chapter in chapters: layers = layers + list(chapter.local_layers) keywords = json.dumps([tag.name for tag in map_obj.keywords.all()]) if request.method == "POST": keywords_form = KeywordsForm(request.POST, instance=map_obj) published_form = PublishStatusForm(instance=map_obj) if 'keywords' in request.POST: if keywords_form.is_valid(): keywords_form.save() new_keywords = keywords_form.cleaned_data['keywords'] map_obj.keywords.set(*new_keywords) map_obj.save() published_form = PublishStatusForm(instance=map_obj) elif 'published_submit_btn' in request.POST: published_form = PublishStatusForm(request.POST, instance=map_obj) if published_form.is_valid(): published_form.save() map_obj.is_published = published_form.cleaned_data[ 'is_published'] map_obj.save() keywords_form = KeywordsForm(instance=map_obj) elif 'add_keyword' in request.POST: map_obj.keywords.add(request.POST['add_keyword']) map_obj.save() elif 'remove_keyword' in request.POST: map_obj.keywords.remove(request.POST['remove_keyword']) map_obj.save() else: keywords_form = KeywordsForm(instance=map_obj) published_form = PublishStatusForm(instance=map_obj) map_thumbnail_dir = os.path.join(settings.MEDIA_ROOT, 'thumbs') map_default_thumbnail_array = map_obj.get_thumbnail_url().split('/') map_default_thumbnail_name = 'map' + str(mapid) + '.jpg' map_default_thumbnail = os.path.join(map_thumbnail_dir, map_default_thumbnail_name) # TODO: create function to handle map and layer thumbs if request.method == 'POST': map_thumb_form = ThumbnailImageForm(request.POST, request.FILES) if map_thumb_form.is_valid(): map_new_img = ThumbnailImage( thumbnail_image=request.FILES['thumbnail_image']) map_new_img.save() map_obj.save_thumbnail(map_default_thumbnail_name, map_new_img) map_user_upload_thumbnail = ThumbnailImage.objects.all()[0] map_user_upload_thumbnail_filepath = str( map_user_upload_thumbnail.thumbnail_image) os.rename(map_user_upload_thumbnail_filepath, map_default_thumbnail) else: map_thumb_form = ThumbnailImageForm() map_thumbnail = map_obj.get_thumbnail_url update_es_index(MapStory, MapStory.objects.get(id=map_obj.id)) context_dict = { 'config': config, 'resource': map_obj, 'layers': layers, 'keywords': keywords, 'permissions_json': _perms_info_json(map_obj), 'documents': get_related_documents(map_obj), 'keywords_form': keywords_form, 'published_form': published_form, 'thumbnail': map_thumbnail, 'thumb_form': map_thumb_form } if settings.SOCIAL_ORIGINS: context_dict["social_links"] = build_social_links(request, map_obj) return render_to_response(template, RequestContext(request, context_dict))