def set_location_do(request): if 'person_id' in request.POST and len(request.POST.get('person_id')) > 0\ and _has_group(request.user, 'ADMIN'): user_profile = Person.objects.get(pk__exact=request.POST.get('person_id')) else: user_profile = request.user.get_profile() edit_location_form = mysite.account.forms.EditLocationForm( request.POST, instance=user_profile, prefix='edit_location') if edit_location_form.is_valid(): address = edit_location_form.cleaned_data['location_display_name'] as_string = mysite.base.view_helpers.cached_geocoding_in_json(address) as_dict = json.loads(as_string) if 'latitude' and 'longitude' in as_dict: user_profile.latitude = as_dict['latitude'] user_profile.longitude = as_dict['longitude'] else: user_profile.location_display_name = mysite.profile.models.DEFAULT_LOCATION user_profile.latitude = mysite.profile.models.DEFAULT_LATITUDE user_profile.longitude = mysite.profile.models.DEFAULT_LONGITUDE user_profile.location_confirmed = True user_profile.save() edit_location_form.save() return HttpResponseRedirect(reverse(set_location) + '?notification_id=success&person_id=%s' % user_profile.id) else: return set_location(request, edit_location_form=edit_location_form)
def set_location(request, edit_location_form = None): # {{{ person = None user_id = None if 'person_id' in request.GET and _has_group(request.user, 'ADMIN'): person = Person.objects.get(pk__exact=request.GET.get('person_id')) else: person = request.user.get_profile() data = {} initial = {} data['person_id'] = person.id # If the user's location is the default one, then we create a guess. if (not person.location_display_name) or (person.location_display_name == mysite.profile.models.DEFAULT_LOCATION): geoip_guess = mysite.profile.view_helpers.get_geoip_guess_for_ip( mysite.base.middleware.get_user_ip(request))[1] initial['location_display_name'] = geoip_guess else: initial['location_display_name'] = person.location_display_name # Initialize edit location form if edit_location_form is None: edit_location_form = mysite.account.forms.EditLocationForm( prefix='edit_location', instance=person, initial=initial) data['edit_location_form'] = edit_location_form if request.GET.get('notification_id', None) == 'success': data['account_notification'] = 'Saved.' else: data['account_notification'] = '' return (request, 'account/set_location.html', data)
def edit_fields(request, edit_fields_form = None, edit_displayed_fields_cards_form = None, edit_displayed_fields_list_form = None, edit_view_type_form=None): if not _has_group(request.user, 'ADMIN') and not _has_group(request.user, 'PROJECT_PARTNER'): return (request, 'account/settings.html', {}) if edit_fields_form is None: edit_fields_form = EditFieldsForm() if edit_displayed_fields_cards_form is None: edit_displayed_fields_cards_form = EditFieldsDisplayedInSearchForm(user=request.user, type=u'cards') if edit_displayed_fields_list_form is None: edit_displayed_fields_list_form = EditFieldsDisplayedInSearchForm(user=request.user, type=u'list') if edit_view_type_form is None: edit_view_type_form = EditViewTypeForm(initial={"view_list": request.user.get_profile().view_list}) return (request, 'account/edit_fields.html', {'edit_fields_form': edit_fields_form, 'edit_displayed_fields_cards_form': edit_displayed_fields_cards_form, 'edit_displayed_fields_list_form': edit_displayed_fields_list_form, 'edit_view_type_form': edit_view_type_form})
def people_export(request): query = request.POST.get('q', '') parsed_query = mysite.profile.view_helpers.parse_string_query(query) if parsed_query['q'].strip(): people = parsed_query['callable_searcher']().people else: people = Person.objects.all().order_by('user__username') people = mysite.profile.view_helpers.filter_people(people, request.POST) questions_to_export = [field.question.display_name for field in CardDisplayedQuestion.objects.filter(person__user__pk=request.user.id)] format = request.GET.get('format', 'csv') if format in ['csv', 'json', 'html', 'xml']: return globals()["export_to_" + format](people, questions_to_export, request.user.id, _has_group(request.user, 'ADMIN'))
def people_export(request): query = request.POST.get('q', '') parsed_query = mysite.profile.view_helpers.parse_string_query(query) if parsed_query['q'].strip(): people = parsed_query['callable_searcher']().people else: people = Person.objects.all().order_by('user__username') people = mysite.profile.view_helpers.filter_people(people, request.POST) if 'selected_people' in request.POST: selected_people = [int(id) for id in str(request.POST.get('selected_people')).split(',')] people = [person for person in people if person.id in [int(id) for id in selected_people]] if 'date_range' in request.POST: date_from = None date_to = None date_range = str(request.POST.get('date_range')).split(' - ') if len(date_range) > 1: date_from = parser.parse(date_range[0]) date_to = parser.parse(date_range[1]) else: date_from = parser.parse(date_range[0]) date_to = date_from if date_from == date_to: date_to += datetime.timedelta(days=1) people = [person for person in people if person.date_added >= date_from and person.date_added <= date_to] questions_to_export = [field.question.display_name for field in ExportQuestion.objects.filter(person__user__pk=request.user.id)] format = request.GET.get('format', 'csv') if format in ['csv', 'json', 'html', 'xml']: return globals()["export_to_" + format](people, questions_to_export, request.user.id, _has_group(request.user, 'ADMIN'))