Exemple #1
0
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': '******'})
Exemple #2
0
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': '******'})
Exemple #3
0
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))
Exemple #4
0
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))
Exemple #5
0
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}
    )
Exemple #6
0
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})
Exemple #7
0
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)
Exemple #8
0
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)
Exemple #9
0
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})
Exemple #10
0
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})
Exemple #11
0
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": "******"},
    )
Exemple #12
0
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})
Exemple #13
0
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))
Exemple #14
0
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"},
    )
Exemple #15
0
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'})
Exemple #16
0
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'})