def get_audits_params(request): PAGE_MAX = 100 PAGE_DEFAULT = 20 r = request.REQUEST page_size = min(int(r.get('page_size', PAGE_DEFAULT)), PAGE_MAX) page = int(r.get('page', 0)) models = [] allowed_models = get_filterable_audit_models() models_param = r.get('models', None) if models_param: for model in models_param.split(','): if model.lower() in allowed_models: models.append(allowed_models[model.lower()]) else: raise Exception("Invalid model: %s" % model) else: models = allowed_models.values() model_id = r.get('model_id', None) if model_id is not None and len(models) != 1: raise Exception("You must specific one and only model " "when looking up by id") exclude_pending = r.get('exclude_pending', "false") == "true" return (page, page_size, models, model_id, exclude_pending)
def user(request, username): user = get_object_or_404(User, username=username) instance_id = request.GET.get('instance_id', None) instance = (get_instance_or_404(pk=instance_id) if instance_id else None) query_vars = {'instance_id': instance_id} if instance_id else {} models = get_filterable_audit_models().values() audit_dict = get_audits(request.user, instance, query_vars, user, models, 0, should_count=True) reputation = user.get_reputation(instance) if instance else None public_fields = [] private_fields = [] for field in USER_EDIT_FIELDS.values(): field_tuple = (field['label'], field['identifier'], field.get('template', "treemap/field/div.html")) if field['visibility'] == 'public': public_fields.append(field_tuple) else: private_fields.append(field_tuple) return {'user': user, 'reputation': reputation, 'instance_id': instance_id, 'instances': _user_instances(request.user, user, instance), 'total_edits': audit_dict['total_count'], 'audits': audit_dict['audits'], 'next_page': audit_dict['next_page'], 'public_fields': public_fields, 'private_fields': private_fields}
def user(request, username): user = get_object_or_404(User, username=username) instance_id = request.GET.get("instance_id", None) instance = get_instance_or_404(pk=instance_id) if instance_id else None query_vars = {"instance_id": instance_id} if instance_id else {} models = get_filterable_audit_models().values() audit_dict = get_audits(request.user, instance, query_vars, user, models, 0, should_count=True) reputation = user.get_reputation(instance) if instance else None public_fields = [] private_fields = [] for field in USER_PROFILE_FIELDS.values(): field_tuple = (field["label"], field["identifier"], field.get("template", "treemap/field/div.html")) if field["visibility"] == "public" and user.make_info_public is True: public_fields.append(field_tuple) else: private_fields.append(field_tuple) return { "user": user, "reputation": reputation, "instance_id": instance_id, "instances": get_user_instances(request.user, user, instance), "total_edits": audit_dict["total_count"], "audits": audit_dict["audits"], "next_page": audit_dict["next_page"], "public_fields": public_fields, "private_fields": private_fields, }
def user(request, username): user = get_object_or_404(User, username=username) instance_id = request.GET.get('instance_id', None) instance = (get_instance_or_404(pk=instance_id) if instance_id else None) query_vars = {'instance_id': instance_id} if instance_id else {} models = get_filterable_audit_models().values() audit_dict = get_audits(request.user, instance, query_vars, user, models, 0, should_count=True) reputation = user.get_reputation(instance) if instance else None public_fields = [] private_fields = [] for field in USER_PROFILE_FIELDS.values(): field_tuple = (field['label'], field['identifier'], field.get('template', "treemap/field/div.html")) if field['visibility'] == 'public' and user.make_info_public is True: public_fields.append(field_tuple) else: private_fields.append(field_tuple) return {'user': user, 'reputation': reputation, 'instance_id': instance_id, 'instances': get_user_instances(request.user, user, instance), 'total_edits': audit_dict['total_count'], 'audits': audit_dict['audits'], 'next_page': audit_dict['next_page'], 'public_fields': public_fields, 'private_fields': private_fields}
def user(request, username): user = get_object_or_404(User, username=username) instance_id = request.GET.get('instance_id', None) instance = (get_instance_or_404(pk=instance_id) if instance_id else None) query_vars = {'instance_id': instance_id} if instance_id else {} models = get_filterable_audit_models().values() audit_dict = get_audits(request.user, instance, query_vars, user, models, 0, should_count=True) reputation = user.get_reputation(instance) if instance else None favorites_qs = Favorite.objects.filter(user=user).order_by('-created') favorites = [{ 'map_feature': f.map_feature, 'title': title_for_map_feature(f.map_feature), 'instance': f.map_feature.instance, 'address': f.map_feature.address_full, 'photo': _small_feature_photo_url(f.map_feature) } for f in favorites_qs] public_fields = [] private_fields = [] for field in USER_PROFILE_FIELDS.values(): field_tuple = (field['label'], field['identifier'], field.get('template', "treemap/field/div.html")) if field['visibility'] == 'public' and user.make_info_public is True: public_fields.append(field_tuple) else: private_fields.append(field_tuple) return { 'user': user, 'its_me': user.id == request.user.id, 'reputation': reputation, 'instance_id': instance_id, 'instances': get_user_instances(request.user, user, instance), 'total_edits': audit_dict['total_count'], 'audits': audit_dict['audits'], 'next_page': audit_dict['next_page'], 'public_fields': public_fields, 'private_fields': private_fields, 'favorites': favorites }
def user(request, username): user = get_object_or_404(User, username=username) instance_id = request.GET.get('instance_id', None) instance = (get_instance_or_404(pk=instance_id) if instance_id else None) query_vars = {'instance_id': instance_id} if instance_id else {} models = get_filterable_audit_models().values() audit_dict = get_audits(request.user, instance, query_vars, user, models, 0, should_count=True) reputation = user.get_reputation(instance) if instance else None favorites_qs = Favorite.objects.filter(user=user).order_by('-created') favorites = [{ 'map_feature': f.map_feature, 'title': title_for_map_feature(f.map_feature), 'instance': f.map_feature.instance, 'address': f.map_feature.address_full, 'photo': _small_feature_photo_url(f.map_feature) } for f in favorites_qs] public_fields = [] private_fields = [] for field in USER_PROFILE_FIELDS.values(): field_tuple = (field['label'], field['identifier'], field.get('template', "treemap/field/div.html")) if field['visibility'] == 'public' and user.make_info_public is True: public_fields.append(field_tuple) else: private_fields.append(field_tuple) return {'user': user, 'its_me': user.id == request.user.id, 'reputation': reputation, 'instance_id': instance_id, 'instances': get_user_instances(request.user, user, instance), 'total_edits': audit_dict['total_count'], 'audits': audit_dict['audits'], 'next_page': audit_dict['next_page'], 'public_fields': public_fields, 'private_fields': private_fields, 'favorites': favorites}
def is_filterable_audit_model(model_name): allowed_models = get_filterable_audit_models() return model_name in allowed_models.values()
from treemap.audit import Audit, Authorizable, get_auditable_class from treemap.models import Instance, MapFeature, InstanceUser, User from treemap.util import get_filterable_audit_models from treemap.lib.object_caches import udf_defs from treemap.udf import UDFModel def _instance_ids_edited_by(user): return Audit.objects.filter(user=user)\ .values_list('instance_id', flat=True)\ .exclude(instance_id=None)\ .distinct() PAGE_DEFAULT = 20 ALLOWED_MODELS = get_filterable_audit_models() def get_audits(logged_in_user, instance, query_vars, user=None, models=ALLOWED_MODELS, model_id=None, start_id=None, prev_start_ids=[], page_size=PAGE_DEFAULT, exclude_pending=True, should_count=False): if instance: if instance.is_accessible_by(logged_in_user): instances = Instance.objects.filter(pk=instance.pk) else: instances = Instance.objects.none() # If we didn't specify an instance we only want to # show audits where the user has permission else: instances = Instance.objects\
from treemap.audit import Audit, Authorizable, get_auditable_class from treemap.models import Instance, MapFeature, InstanceUser, User from treemap.util import get_filterable_audit_models from treemap.lib.object_caches import udf_defs from treemap.udf import UDFModel def _instance_ids_edited_by(user): return Audit.objects.filter(user=user)\ .values_list('instance_id', flat=True)\ .exclude(instance_id=None)\ .distinct() PAGE_DEFAULT = 20 ALLOWED_MODELS = get_filterable_audit_models() def get_audits(logged_in_user, instance, query_vars, user=None, models=ALLOWED_MODELS, model_id=None, start_id=None, prev_start_ids=[], page_size=PAGE_DEFAULT, exclude_pending=True, should_count=False): if instance: if instance.is_accessible_by(logged_in_user):