def accreds_list_json(request): """Display the list of accreds, json call for the list""" # Update current unit update_current_unit(request, request.GET.get('upk')) unit = get_current_unit(request) # Check unit access if not Accreditation.static_rights_can('LIST', request.user, unit): raise Http404 # Filter by unit filter_ = lambda x: x.filter(unit=unit) # Si pas le droit de créer, filtrage des accreds invisibles if not Accreditation.static_rights_can('CREATE', request.user, get_current_unit(request)): filter__ = lambda x: x.filter(hidden_in_truffe=False) else: filter__ = lambda x: x # Filter old accreds, if needed if request.GET.get('h', '0') == '0': filter2 = lambda x: filter_(filter__(x)).filter(end_date=None) else: filter2 = lambda x: filter_(filter__(x)) return generic_list_json(request, Accreditation, ['pk', 'user', 'get_role_or_display_name', 'start_date', 'no_epfl_sync', 'hidden_in_epfl', 'hidden_in_truffe', 'renewal_date', 'pk'], 'units/accreds/list_json.html', filter_fields=['user__first_name', 'user__last_name', 'role__name'], bonus_filter_function=filter2, columns_mapping={'get_role_or_display_name': 'role__order', 'user': '******'})
def supply_search(request): from logistics.models import Supply, SupplyReservation q = request.GET.get('q') init = request.GET.get('init') unit_pk = request.GET.get('unit_pk', "-1") or "-1" supplies = Supply.objects.filter(active=True, deleted=False).order_by('title') if q: supplies = supplies.filter(title__icontains=q) if init is not None: if not init: return HttpResponse(json.dumps([])) supplies = supplies.filter(pk=init) if unit_pk == "-1": supplies = supplies.filter(allow_externals=True) else: # Pas de filtre, mais on check que le dude peut faire une réservation # dans l'unité from units.models import Unit get_object_or_404(Unit, pk=unit_pk) dummy = SupplyReservation() update_current_unit(request, unit_pk) if not dummy.rights_can('CREATE', request.user): raise Http404 retour = map(lambda supply: {'id': supply.pk, 'text': supply.title, 'description': strip_tags(html_check_and_safe(supply.description))[:100] + '...', 'unit': str(supply.unit)}, supplies) return HttpResponse(json.dumps(retour))
def accreds_add(request): update_current_unit(request, request.GET.get("upk")) unit = get_current_unit(request) if not Accreditation.static_rights_can("CREATE", request.user, unit): raise Http404 from units.forms2 import AccreditationAddForm from units.models import Role done = False if request.method == "POST": # If the form has been submitted... form = AccreditationAddForm(request.user, request.POST) if form.is_valid(): # If the form is valid accred = form.save(commit=False) accred.unit = unit # Try to find the user. If he dosen't exists, create it. try: user = TruffeUser.objects.get(username=form.cleaned_data["user"].strip()) except TruffeUser.DoesNotExist: user = TruffeUser() user.username = form.cleaned_data["user"].strip() user.last_name, user.first_name, user.email = get_attrs_of_sciper(user.username) user.is_active = True user.save() accred.user = user accred.save() AccreditationLog(accreditation=accred, who=request.user, type="created").save() # Check if validation is needed accred.check_if_validation_needed(request) accred.save() accred.user.clear_rights_cache() messages.success(request, _(u"Accréditation sauvegardée !")) done = True else: form = AccreditationAddForm(request.user) validables = Role.objects.filter(deleted=False, need_validation=True) return render( request, "units/accreds/add.html", {"form": form, "done": done, "unit": unit, "validables": validables} )
def accreds_add(request): update_current_unit(request, request.GET.get('upk')) unit = get_current_unit(request) if not Accreditation.static_rights_can('CREATE', request.user, unit): raise Http404 from units.forms2 import AccreditationAddForm from units.models import Role done = False if request.method == 'POST': # If the form has been submitted... form = AccreditationAddForm(request.user, request.POST) if form.is_valid(): # If the form is valid accred = form.save(commit=False) accred.unit = unit # Try to find the user. If he dosen't exists, create it. try: user = TruffeUser.objects.get(username=form.cleaned_data['user'].strip()) except TruffeUser.DoesNotExist: user = TruffeUser() user.username = form.cleaned_data['user'].strip() user.last_name, user.first_name, user.email = get_attrs_of_sciper(user.username) user.is_active = True user.save() accred.user = user accred.save() AccreditationLog(accreditation=accred, who=request.user, type='created').save() # Check if validation is needed accred.check_if_validation_needed(request) accred.save() accred.user.clear_rights_cache() messages.success(request, _(u'Accréditation sauvegardée !')) done = True else: form = AccreditationAddForm(request.user) validables = Role.objects.filter(deleted=False, need_validation=True) return render(request, 'units/accreds/add.html', {'form': form, 'done': done, 'unit': unit, 'validables': validables})
def users_myunit_list_json(request): """Json for user list in the current unit""" from units.models import Accreditation update_current_unit(request, request.GET.get('upk')) current_unit = get_current_unit(request) if not current_unit or not current_unit.is_user_in_groupe(request.user): raise Http404 filter = lambda x: x.filter(Q(unit=current_unit) & Q(end_date=None)).distinct() return generic_list_json(request, Accreditation, ['user__username', 'user__first_name', 'user__last_name', 'user__pk', 'role__order'], 'users/users/myunit_list_json.html', bonus_filter_function=filter)
def accreds_logs_list(request): """Display the list of accreds""" from units.models import Unit main_unit = Unit.objects.get(pk=settings.ROOT_UNIT_PK) main_unit.set_rights_can_select(lambda unit: Accreditation.static_rights_can('LIST', request.user, unit)) main_unit.set_rights_can_edit(lambda unit: Accreditation.static_rights_can('CREATE', request.user, unit)) main_unit.check_if_can_use_hidden(request.user) if request.GET.get('upk'): update_current_unit(request, request.GET.get('upk')) return render(request, 'units/accreds/logs_list.html', {'main_unit': main_unit})
def accreds_list_json(request): """Display the list of accreds, json call for the list""" # Update current unit update_current_unit(request, request.GET.get("upk")) unit = get_current_unit(request) # Check unit access if not Accreditation.static_rights_can("LIST", request.user, unit): raise Http404 # Filter by unit filter_ = lambda x: x.filter(unit=unit) # Si pas le droit de créer, filtrage des accreds invisibles if not Accreditation.static_rights_can("CREATE", request.user, get_current_unit(request)): filter__ = lambda x: x.filter(hidden_in_truffe=False) else: filter__ = lambda x: x # Filter old accreds, if needed if request.GET.get("h", "0") == "0": filter2 = lambda x: filter_(filter__(x)).filter(end_date=None) else: filter2 = lambda x: filter_(filter__(x)) return generic_list_json( request, Accreditation, [ "pk", "user", "get_role_or_display_name", "start_date", "no_epfl_sync", "hidden_in_epfl", "hidden_in_truffe", "renewal_date", "pk", ], "units/accreds/list_json.html", filter_fields=["user__first_name", "user__last_name", "role__name"], bonus_filter_function=filter2, columns_mapping={"get_role_or_display_name": "role__order", "user": "******"}, )
def accreds_list(request): """Display the list of accreds""" from units.models import Unit main_unit = Unit.objects.get(pk=settings.ROOT_UNIT_PK) main_unit.set_rights_can_select(lambda unit: Accreditation.static_rights_can("LIST", request.user, unit)) main_unit.set_rights_can_edit(lambda unit: Accreditation.static_rights_can("CREATE", request.user, unit)) main_unit.check_if_can_use_hidden(request.user) if request.GET.get("upk"): update_current_unit(request, request.GET.get("upk")) can_edit = Accreditation.static_rights_can("CREATE", request.user, get_current_unit(request)) return render(request, "units/accreds/list.html", {"main_unit": main_unit, "can_edit": can_edit})
def display_search(request): from communication.models import Display, DisplayReservation q = request.GET.get('q') init = request.GET.get('init') unit_pk = request.GET.get('unit_pk', "-1") or "-1" displays = Display.objects.filter(active=True, deleted=False).order_by('title') if q: displays = displays.filter(title__icontains=q) if init is not None: if not init: return HttpResponse(json.dumps([])) displays = displays.filter(pk=init) if unit_pk == "-1": displays = displays.filter(allow_externals=True) else: # Pas de filtre, mais on check que le dude peut faire une réservation # dans l'unité from units.models import Unit get_object_or_404(Unit, pk=unit_pk) dummy = DisplayReservation() update_current_unit(request, unit_pk) if not dummy.rights_can('CREATE', request.user): raise Http404 retour = [{ 'id': display.pk, 'text': display.title, 'description': strip_tags(html_check_and_safe(display.description))[:100] + '...', 'unit': str(display.unit) } for display in displays] return HttpResponse(json.dumps(retour))
def accreds_logs_list_json(request): """Display the list of accreds, json call for the list""" # Update current unit update_current_unit(request, request.GET.get("upk")) unit = get_current_unit(request) # Check unit access if not Accreditation.static_rights_can("LIST", request.user, unit): raise Http404 # Filter by unit filter_ = lambda x: x.filter(accreditation__unit=unit) # Si pas le droit de créer, filtrage des accreds invisibles if not Accreditation.static_rights_can("CREATE", request.user, get_current_unit(request)): filter__ = lambda x: x.filter(accreditation__hidden_in_truffe=False) else: filter__ = lambda x: x filter2 = lambda x: filter_(filter__(x)) return generic_list_json( request, AccreditationLog, ["pk", "accreditation__user", "type", "when", "what"], "units/accreds/logs_list_json.html", filter_fields=[ "accreditation__user__first_name", "accreditation__user__last_name", "accreditation__role__name", "who__first_name", "who__last_name", ], bonus_filter_function=filter2, columns_mapping={"pk": "accreditation__user__first_name"}, )
def accreds_logs_list_json(request): """Display the list of accreds, json call for the list""" # Update current unit update_current_unit(request, request.GET.get('upk')) unit = get_current_unit(request) # Check unit access if not Accreditation.static_rights_can('LIST', request.user, unit): raise Http404 # Filter by unit filter_ = lambda x: x.filter(accreditation__unit=unit) # Si pas le droit de créer, filtrage des accreds invisibles if not Accreditation.static_rights_can('CREATE', request.user, get_current_unit(request)): filter__ = lambda x: x.filter(accreditation__hidden_in_truffe=False) else: filter__ = lambda x: x filter2 = lambda x: filter_(filter__(x)) return generic_list_json( request, AccreditationLog, ['pk', 'accreditation__user', 'type', 'when', 'what'], 'units/accreds/logs_list_json.html', filter_fields=[ 'accreditation__user__first_name', 'accreditation__user__last_name', 'accreditation__role__name', 'who__first_name', 'who__last_name' ], bonus_filter_function=filter2, columns_mapping={'pk': 'accreditation__user__first_name'})
def accreds_logs_list_json(request): """Display the list of accreds, json call for the list""" # Update current unit update_current_unit(request, request.GET.get('upk')) unit = get_current_unit(request) # Check unit access if not Accreditation.static_rights_can('LIST', request.user, unit): raise Http404 # Filter by unit filter_ = lambda x: x.filter(accreditation__unit=unit) # Si pas le droit de créer, filtrage des accreds invisibles if not Accreditation.static_rights_can('CREATE', request.user, get_current_unit(request)): filter__ = lambda x: x.filter(accreditation__hidden_in_truffe=False) else: filter__ = lambda x: x filter2 = lambda x: filter_(filter__(x)) return generic_list_json(request, AccreditationLog, ['pk', 'accreditation__user', 'type', 'when', 'what'], 'units/accreds/logs_list_json.html', filter_fields=['accreditation__user__first_name', 'accreditation__user__last_name', 'accreditation__role__name', 'who__first_name', 'who__last_name'], bonus_filter_function=filter2, columns_mapping={'pk': 'accreditation__user__first_name'})