1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- import datetime
- from django.shortcuts import render, redirect
- from django.contrib.auth.decorators import login_required
- from django.contrib import messages
- from django.http import HttpResponseForbidden
- from django.core.urlresolvers import reverse
- from .forms import LoanTransferForm, LoanReturnForm
- from .models import Item, Loan
- @login_required
- def loan_return(request, pk):
- loan = get_object_or_404(Loan, pk=pk)
- if not loan.user_can_close(request.user):
- return HttpResponseForbidden('Non autorisé')
- if request.method == 'POST':
- form = LoanReturnForm(request.POST)
- if form.is_valid():
- messages.success(
- request,
- 'Le matériel {} a été marqué comme rendu'.format(
- loan.item))
- loan.item.give_back(form.cleaned_data['storage'])
- return redirect(reverse('hardware_provisioning:loan-list'))
- else:
- form = LoanReturnForm()
- return render(request, 'hardware_provisioning/return.html', {
- 'loan': loan,
- 'form': form,
- })
- @login_required
- def loan_transfer(request, pk):
- """ Transfer something loaned to another member
- """
- old_loan = get_object_or_404(Loan, pk=pk)
- if not old_loan.user_can_close(request.user):
- return HttpResponseForbidden()
- if request.method == 'POST':
- form = LoanTransferForm(request.POST)
- if form.is_valid():
- old_loan.item.give_back()
- Loan.objects.create(
- user=form.cleaned_data['target_user'],
- loan_date=datetime.date.today(),
- item=old_loan.item)
- messages.success(
- request,
- "Le matériel {} a été transféré à l'adhérent \"{}\"".format(
- old_loan.item,
- form.data['target_user']))
- return redirect(reverse('hardware_provisioning:loan-list'))
- else:
- form = LoanTransferForm()
- return render(request, 'hardware_provisioning/transfer.html', {
- 'form': form,
- 'loan': old_loan,
- })
- @login_required
- def loan_list(request):
- view = 'old' if 'old' in request.GET else ''
- if view == 'old':
- loans = request.user.loans.finished().order_by('-loan_date_end')
- else:
- loans = request.user.loans.running()
- return render(request, 'hardware_provisioning/list.html', {
- 'loans': loans,
- 'view': view,
- })
- @login_required
- def loan_detail(request, pk):
- return render(request, 'hardware_provisioning/detail.html', {})
|