def get_update_detail(update): try: user = \ User.objects.get( username=update['changeset__social_user__username']) profile = get_profile(user) update['nickname'] = profile.screen_name except (User.DoesNotExist, KeyError) as e: # noqa pass return update
def get_context_data(self, *args, **kwargs): """ *debug* toggles GoogleAnalytics support on the main page """ user = get_object_or_404(User, username=kwargs["username"]) user = get_profile(user) context = super(ProfilePage, self).get_context_data(*args, **kwargs) context['user'] = user return context
def get_context_data(self, *args, **kwargs): """ *debug* toggles GoogleAnalytics support on the main page """ user = get_object_or_404(User, username=kwargs['username']) user = get_profile(user) context = super(ProfilePage, self).get_context_data(*args, **kwargs) context['user'] = user context['api_keys'] = None if self.request.user == user: autogenerate_api_key = False if user.is_superuser: autogenerate_api_key = True context['api_keys'] = UserApiKey.get_user_api_key( self.request.user, autogenerate=autogenerate_api_key) return context
def get_context_data(self, *args, **kwargs): """ *debug* toggles GoogleAnalytics support on the main page """ user = get_object_or_404(User, username=kwargs['username']) user = get_profile(user) context = super(ProfilePage, self).get_context_data(*args, **kwargs) context['user'] = user context['api_keys'] = None if self.request.user == user: autogenerate_api_key = False if user.is_superuser: autogenerate_api_key = True context['api_keys'] = UserApiKey.get_user_api_key( self.request.user, autogenerate=autogenerate_api_key) return context
def get_context_data(self, *args, **kwargs): """ *debug* toggles GoogleAnalytics support on the main page """ context = super(ProfilePage, self).get_context_data(*args, **kwargs) context['api_keys'] = None try: user = User.objects.get(username=kwargs['username']) user = get_profile(user, self.request) osm_user = False if self.request.user == user: # this is for checking availability old data old_data = Locality.objects.filter( changeset__social_user__username=user, migrated=False) if old_data: context['old_data_available'] = True pathname = \ os.path.join( settings.CACHE_DIR, 'data-migration-progress') progress_file = \ os.path.join(pathname, '{}.txt'.format(user)) found = os.path.exists(progress_file) if found: context['data_migration_in_progress'] = True autogenerate_api_key = False if user.is_superuser: autogenerate_api_key = True context['api_keys'] = UserApiKey.get_user_api_key( self.request.user, autogenerate=autogenerate_api_key) except User.DoesNotExist: user = {'username': kwargs['username']} osm_user = True context['user'] = user context['osm_user'] = osm_user context['osm_API'] = settings.OSM_API_URL return context
def get_update_detail(update): profile = get_profile( User.objects.get(username=update['changeset__social_user__username'])) update['nickname'] = profile.screen_name update['changeset__created'] = update['changeset__created'] return update
def get_locality_detail(locality, changes): # count completeness based attributes obj_repr = locality.repr_dict() # get master masters = [] for val in SynonymLocalities.objects.filter(synonym_id=locality.id): master_uuid = val.locality.uuid master_name = val.locality.name masters.append({'name': master_name, 'uuid': master_uuid}) # get synonyms synonyms = [] for val in SynonymLocalities.objects.filter(locality_id=locality.id): synonym_uuid = val.synonym.uuid synonym_name = val.synonym.name synonyms.append({'name': synonym_name, 'uuid': synonym_uuid}) # get potential master potential_masters = [] for val in UnconfirmedSynonym.objects.filter(synonym_id=locality.id): master_uuid = val.locality.uuid master_name = val.locality.name potential_masters.append({'name': master_name, 'uuid': master_uuid}) # get unconfirmed synonyms unconfirmed_synonyms = [] for val in UnconfirmedSynonym.objects.filter(locality_id=locality.id): synonym_uuid = val.synonym.uuid synonym_name = val.synonym.name unconfirmed_synonyms.append({ 'name': synonym_name, 'uuid': synonym_uuid }) obj_repr[u'masters'] = masters obj_repr[u'synonyms'] = synonyms obj_repr[u'potential_masters'] = potential_masters obj_repr[u'unconfirmed_synonyms'] = unconfirmed_synonyms # get latest update try: updates = [] last_updates = locality_updates(locality.id, datetime.now()) for last_update in last_updates: updates.append({ "last_update": last_update['changeset__created'], "uploader": last_update['changeset__social_user__username'], "nickname": last_update['nickname'], "changeset_id": last_update['changeset'] }) obj_repr.update({'updates': updates}) except Exception as e: pass # FOR HISTORY obj_repr['history'] = False if changes: # get updates changeset = Changeset.objects.get(id=changes) obj_repr['updates'][0]['last_update'] = changeset.created obj_repr['updates'][0]['uploader'] = changeset.social_user.username obj_repr['updates'][0]['changeset_id'] = changes # get profile name profile = get_profile( User.objects.get(username=changeset.social_user.username)) obj_repr['updates'][0]['nickname'] = profile.screen_name # check archive try: localityArchives = LocalityArchive.objects.filter( changeset=changes).filter(uuid=obj_repr['uuid']) for archive in localityArchives: obj_repr['geom'] = (archive.geom.x, archive.geom.y) obj_repr['history'] = True except LocalityArchive.DoesNotExist: pass try: localityArchives = ValueArchive.objects.filter( changeset=changes).filter(locality_id=locality.id) for archive in localityArchives: try: specification = Specification.objects.get( id=archive.specification_id) obj_repr['values'][ specification.attribute.key] = archive.data obj_repr['history'] = True except Specification.DoesNotExist: pass except LocalityArchive.DoesNotExist: pass return obj_repr
def map(request): """View for request.""" if request.user.is_authenticated(): user = get_object_or_404(User, username=request.user) request.user = get_profile(user) if request.method == 'POST': search_query = request.POST.get('q') option = request.POST.get('option') if option == 'place': map_url = reverse('map') return HttpResponseRedirect( map_url + '?place=%s' % search_query) elif option == 'what3words': locality_values = Value.objects.filter( specification__attribute__key='what3words').filter( data=search_query) if locality_values: locality_value = locality_values[0] else: return render_to_response( 'map.html', context_instance=RequestContext(request) ) locality_uuid = locality_value.locality.uuid map_url = reverse('map') return HttpResponseRedirect( map_url + '#!/locality/%s' % locality_uuid) elif option == 'healthsite': localities = Locality.objects.filter( name=search_query) if len(localities) > 0: locality = localities[0] locality_uuid = locality.uuid map_url = reverse('map') return HttpResponseRedirect( map_url + '#!/locality/%s' % locality_uuid) else: return render_to_response( 'map.html', context_instance=RequestContext(request) ) else: tag = request.GET.get('tag') country = request.GET.get('country') place = request.GET.get('place') attribute = request.GET.get('attribute') result = {} if tag: result = search_locality_by_tag(tag) result['tag'] = tag elif country: result = get_country_statistic(country) result['country'] = country result['polygon'] = ( Country.objects.get(name__iexact=country).polygon_geometry.geojson ) result['shapefile_size'] = 0 filename = os.path.join(directory_media, country + '_shapefile.zip') if (os.path.isfile(filename)): result['shapefile_size'] = size(os.path.getsize(filename)) + 'B' elif place: result = search_place(request, place) elif attribute: uuid = request.GET.get('uuid') result = search_locality_by_spec_data('attribute', attribute, uuid) result['attribute'] = { 'attribute': attribute, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } elif len(request.GET) == 0: result = search_place(request, place) # get facilities shapefile size result['shapefile_size'] = 0 filename = os.path.join(directory_media, 'facilities_shapefile.zip') if (os.path.isfile(filename)): result['shapefile_size'] = size(os.path.getsize(filename)) + 'B' else: uuid = request.GET.get('uuid') for item in request.GET: if item != 'uuid': spec = item data = request.GET.get(item) result = search_locality_by_spec_data(spec, data, uuid) result['spec'] = { 'spec': spec, 'data': data, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } if 'new_geom' in request.session: result['new_geom'] = request.session['new_geom'] del request.session['new_geom'] return render_to_response( 'map.html', result, context_instance=RequestContext(request) )
def map(request): """View for request.""" if request.user.is_authenticated(): user = get_object_or_404(User, username=request.user) request.user = get_profile(user) if request.method == 'POST': search_query = request.POST.get('q') option = request.POST.get('option') if option == 'place': map_url = reverse('map') return HttpResponseRedirect(map_url + "?place=%s" % search_query) elif option == 'what3words': locality_values = Value.objects.filter( specification__attribute__key='what3words').filter( data=search_query) if locality_values: locality_value = locality_values[0] else: return render_to_response( 'map.html', context_instance=RequestContext(request)) locality_uuid = locality_value.locality.uuid map_url = reverse('map') return HttpResponseRedirect(map_url + "#!/locality/%s" % locality_uuid) elif option == 'healthsite': localities = Locality.objects.filter(name=search_query) if len(localities) > 0: locality = localities[0] locality_uuid = locality.uuid map_url = reverse('map') return HttpResponseRedirect(map_url + "#!/locality/%s" % locality_uuid) else: return render_to_response( 'map.html', context_instance=RequestContext(request)) else: tag = request.GET.get('tag') country = request.GET.get('country') place = request.GET.get('place') attribute = request.GET.get('attribute') result = {} if tag: result = search_locality_by_tag(tag) result['tag'] = tag elif country: result = get_country_statistic(country) result['country'] = country result['polygon'] = Country.objects.get( name__iexact=country).polygon_geometry.geojson elif place: result = search_place(request, place) elif attribute: uuid = request.GET.get('uuid') result = search_locality_by_spec_data("attribute", attribute, uuid) result['attribute'] = { 'attribute': attribute, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } elif len(request.GET) == 0: result = search_place(request, place) else: uuid = request.GET.get('uuid') for item in request.GET: if item != "uuid": spec = item data = request.GET.get(item) result = search_locality_by_spec_data(spec, data, uuid) result['spec'] = { 'spec': spec, 'data': data, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } if 'new_geom' in request.session: result["new_geom"] = request.session['new_geom'] del request.session['new_geom'] return render_to_response('map.html', result, context_instance=RequestContext(request))
def map(request): """View for request.""" if request.user.is_authenticated(): user = get_object_or_404(User, username=request.user) request.user = get_profile(user, request) if request.method == 'POST': search_query = request.POST.get('q') option = request.POST.get('option') if option == 'place': map_url = reverse('map') return HttpResponseRedirect( map_url + '?place=%s' % search_query) elif option == 'what3words': locality_values = Value.objects.filter( specification__attribute__key='what3words').filter( data=search_query) if locality_values: locality_value = locality_values[0] else: return render_to_response( 'map.html', context_instance=RequestContext(request) ) locality_uuid = locality_value.locality.uuid map_url = reverse('map') return HttpResponseRedirect( map_url + '#!/locality/%s' % locality_uuid) elif option == 'healthsite': localities = Locality.objects.filter( name=search_query) if len(localities) > 0: locality = localities[0] locality_uuid = locality.uuid map_url = reverse('map') return HttpResponseRedirect( map_url + '#!/locality/%s' % locality_uuid) else: return render_to_response( 'map.html', context_instance=RequestContext(request) ) else: tag = request.GET.get('tag') country = request.GET.get('country') attribute = request.GET.get('attribute') uuid = request.GET.get('uuid') result = {} if tag: result = search_locality_by_tag(tag) result['tag'] = tag elif country: pass elif attribute: uuid = request.GET.get('uuid') result = search_locality_by_spec_data('attribute', attribute, uuid) result['attribute'] = { 'attribute': attribute, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } elif uuid: for item in request.GET: if item != 'uuid': spec = item data = request.GET.get(item) result = search_locality_by_spec_data(spec, data, uuid) result['spec'] = { 'spec': spec, 'data': data, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } else: result = search_place(request, None) # get facilities shapefile size result['shapefile_size'] = 0 filename = os.path.join(directory_media, 'facilities_shapefile.zip') if (os.path.isfile(filename)): result['shapefile_size'] = size(os.path.getsize(filename)) + 'B' if 'new_geom' in request.session: result['new_geom'] = request.session['new_geom'] del request.session['new_geom'] result['osm_API'] = settings.OSM_API_URL result['map_max_zoom'] = settings.MAX_ZOOM result['schema'] = json.dumps(Schema().get_schema()) return render_to_response( 'map.html', result, context_instance=RequestContext(request) )
def get_update_detail(update): profile = get_profile(User.objects.get(username=update['changeset__social_user__username'])) update['nickname'] = profile.screen_name update['changeset__created'] = update['changeset__created'] return update
def get_locality_detail(locality, changes): # count completeness based attributes obj_repr = locality.repr_dict() # get master masters = [] for val in SynonymLocalities.objects.filter(synonym_id=locality.id): master_uuid = val.locality.uuid master_name = val.locality.name masters.append({'name': master_name, 'uuid': master_uuid}) # get synonyms synonyms = [] for val in SynonymLocalities.objects.filter(locality_id=locality.id): synonym_uuid = val.synonym.uuid synonym_name = val.synonym.name synonyms.append({'name': synonym_name, 'uuid': synonym_uuid}) # get potential master potential_masters = [] for val in UnconfirmedSynonym.objects.filter(synonym_id=locality.id): master_uuid = val.locality.uuid master_name = val.locality.name potential_masters.append({'name': master_name, 'uuid': master_uuid}) # get unconfirmed synonyms unconfirmed_synonyms = [] for val in UnconfirmedSynonym.objects.filter(locality_id=locality.id): synonym_uuid = val.synonym.uuid synonym_name = val.synonym.name unconfirmed_synonyms.append({'name': synonym_name, 'uuid': synonym_uuid}) obj_repr[u'masters'] = masters obj_repr[u'synonyms'] = synonyms obj_repr[u'potential_masters'] = potential_masters obj_repr[u'unconfirmed_synonyms'] = unconfirmed_synonyms # get latest update try: updates = [] last_updates = locality_updates(locality.id, datetime.now()) for last_update in last_updates: updates.append({'last_update': last_update['changeset__created'], 'uploader': last_update['changeset__social_user__username'], 'nickname': last_update['nickname'], 'changeset_id': last_update['changeset']}) obj_repr.update({'updates': updates}) except Exception: pass # FOR HISTORY obj_repr['history'] = False if changes: # get updates changeset = Changeset.objects.get(id=changes) obj_repr['updates'][0]['last_update'] = changeset.created obj_repr['updates'][0]['uploader'] = changeset.social_user.username obj_repr['updates'][0]['changeset_id'] = changes # get profile name profile = get_profile(User.objects.get(username=changeset.social_user.username)) obj_repr['updates'][0]['nickname'] = profile.screen_name # check archive try: localityArchives = ( LocalityArchive.objects.filter(changeset=changes).filter(uuid=obj_repr['uuid']) ) for archive in localityArchives: obj_repr['geom'] = (archive.geom.x, archive.geom.y) obj_repr['history'] = True except LocalityArchive.DoesNotExist: pass try: localityArchives = ( ValueArchive.objects.filter(changeset=changes).filter(locality_id=locality.id) ) for archive in localityArchives: try: specification = Specification.objects.get(id=archive.specification_id) obj_repr['values'][specification.attribute.key] = archive.data obj_repr['history'] = True except Specification.DoesNotExist: pass except LocalityArchive.DoesNotExist: pass return obj_repr
def map(request): """View for request.""" if request.user.is_authenticated(): user = get_object_or_404(User, username=request.user) request.user = get_profile(user) if request.method == 'POST': search_query = request.POST.get('q') option = request.POST.get('option') if option == 'place': map_url = reverse('map') return HttpResponseRedirect(map_url + '?place=%s' % search_query) elif option == 'healthsite': localities = Locality.objects.filter(name=search_query) if len(localities) > 0: locality = localities[0] locality_uuid = locality.uuid map_url = reverse('map') return HttpResponseRedirect(map_url + '#!/locality/%s' % locality_uuid) else: return render_to_response( 'map.html', context_instance=RequestContext(request)) else: tag = request.GET.get('tag') country = request.GET.get('country') place = request.GET.get('place') attribute = request.GET.get('attribute') result = {} if tag: result = search_locality_by_tag(tag) result['tag'] = tag elif country: result = get_country_statistic(country) result['country'] = country result['polygon'] = (Country.objects.get( name__iexact=country).polygon_geometry.geojson) result['shapefile_size'] = 0 filename = os.path.join(directory_media, country + '_shapefile.zip') if (os.path.isfile(filename)): result['shapefile_size'] = size( os.path.getsize(filename)) + 'B' elif place: result = search_place(request, place) elif attribute: uuid = request.GET.get('uuid') result = search_locality_by_spec_data('attribute', attribute, uuid) result['attribute'] = { 'attribute': attribute, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } elif len(request.GET) == 0: result = search_place(request, place) # get facilities shapefile size result['shapefile_size'] = 0 filename = os.path.join(directory_media, 'facilities_shapefile.zip') if (os.path.isfile(filename)): result['shapefile_size'] = size( os.path.getsize(filename)) + 'B' else: uuid = request.GET.get('uuid') for item in request.GET: if item != 'uuid': spec = item data = request.GET.get(item) result = search_locality_by_spec_data(spec, data, uuid) result['spec'] = { 'spec': spec, 'data': data, 'uuid': uuid, 'name': result['locality_name'], 'location': result['location'] } if 'new_geom' in request.session: result['new_geom'] = request.session['new_geom'] del request.session['new_geom'] return render_to_response('map.html', result, context_instance=RequestContext(request))