Пример #1
0
def render_detail(request, reservation_id, rejection_form, approval_form):

    approval_form.initial = {
        'pickup': userService.get_preferred_pickup_location(request.user.id)
    }

    try:
        context = {
            'reservation':
            service.get_reservation(reservation_id),
            'rejection_form':
            rejection_form,
            'approval_form':
            approval_form,
            'pending_approval':
            ReservationStatus.Pending_approval,
            'awating_for_start_date':
            ReservationStatus.Awating_for_start_date,
            'ongoing':
            ReservationStatus.Ongoing,
            'pending_return':
            ReservationStatus.Pending_return,
            'pending_return_acknowledge':
            ReservationStatus.Pending_return_acknowledge,
            'reservationhistory_set':
            service.get_reservation_history(reservation_id)
        }
    except Reservation.DoesNotExist:
        return error404(request)

    return render(request, 'toolshareapp/reservation/detail.html', context)
Пример #2
0
 def details(request, user_id):
     try:
         context = { 'user' : service.get_user(user_id) }
     except User.DoesNotExist:
         return error404(request)
     
     return render(request, 'toolshareapp/user/details.html', context)
Пример #3
0
    def edit_post(request, tool_id):
        try:
            tool = service.get_tool(tool_id)

            form = ToolForm(request.user.id,
                            request.POST,
                            request.FILES,
                            instance=tool)

            if form.is_valid():
                edit_tool = form.save(commit=False)
                service.update(edit_tool, request.user.id)
                form.save_m2m(
                )  # TODO: implement this in ToolService.register()
                messages.success(request, 'Tool updated succesfully.')
                return HttpResponseRedirect(
                    reverse('tool.edit.get', kwargs={'tool_id': tool_id}))
            else:
                messages.error(request, 'Validation errors occurred.')

        except Tool.DoesNotExist:
            return error404(request)

        except ToolHasReservationsError as e:
            messages.error(request, e.msg)

        return render(request, 'toolshareapp/tool/edit.html', {
            'form': form,
            'tool_id': tool_id
        })
Пример #4
0
 def requests(request):
     try:
         context = { 'tools': service.get_inclusion_requests(request.user.id) }
     except Shed.DoesNotExist:
         return error404(request)
     
     return render(request, 'toolshareapp/shed/requests.html', context)
Пример #5
0
    def create_post(request):
        form = ReservationForm(request.POST)

        if form.is_valid():
            new_reservation = form.get_model()
            new_reservation.user_id = request.user.id

            try:
                service.request_borrow(new_reservation, request.user.id)
            except Tool.DoesNotExist:
                return error404(request)

            messages.success(request, 'Reservation was created successfully.')
            return HttpResponseRedirect(reverse('reservation'))

        unavailable_dates_str = format_as_string_array(
            *service.get_reserved_dates_for_tool(
                form.data['requested_tool_id']))

        messages.error(request, 'Validation errors occured.')

        if 'changeAvailability' in request.META['HTTP_REFERER']:
            title = "Change tool availability"
        else:
            title = "Request tool"

        return render(
            request, 'toolshareapp/reservation/create.html', {
                'form': form,
                'title': title,
                'unavailable_dates_str': unavailable_dates_str
            })
Пример #6
0
    def acknowledge_return(request, reservation_id):
        try:
            service.acknowledge_tool_return(reservation_id, request.user.id)
        except Reservation.DoesNotExist:
            return error404(request)

        messages.success(request, 'Tool return acknowledged.')
        return HttpResponseRedirect(reverse('reservation.incoming'))
Пример #7
0
 def reject_tool(request, tool_id):
     try:
         service.reject_tool(tool_id)
     except Tool.DoesNotExist:
         return error404(request)
     
     messages.success(request, 'Tool has been rejected.')
     return HttpResponseRedirect(reverse('shed.requests'))
Пример #8
0
    def cancel_borrow(request, reservation_id):
        try:
            service.cancel_borrow(reservation_id, request.user.id)
        except Reservation.DoesNotExist:
            return error404(request)

        messages.success(request, 'Reservation cancelled.')
        return HttpResponseRedirect(reverse('reservation'))
Пример #9
0
 def edit(request, shed_id):
     try:
         edit_shed = service.get_shed(shed_id)
     except Shed.DoesNotExist:
         return error404(request)
         
     context = {'form': ShedForm(instance=edit_shed), 'shed_id': shed_id }
     return render(request, 'toolshareapp/shed/edit.html', context)    
Пример #10
0
    def mark_as_viewed(request, notification_id):
        try:
            service.mark_as_viewed(notification_id)
        except Notification.DoesNotExist:
            return error404(request)

        notification = service.get_notification(notification_id)
        return HttpResponseRedirect(notification.link)
Пример #11
0
    def release(request, tool_id):
        try:
            service.release(tool_id)
        except Tool.DoesNotExist:
            return error404(request)

        messages.success(request, 'Tool released succesfully.')
        return HttpResponseRedirect(reverse('tool.owned'))
Пример #12
0
 def approve_tool(request, tool_id):
     try:
         service.approve_tool(tool_id, request.user.id)
     except (Shed.DoesNotExist, Tool.DoesNotExist):
         return error404(request)
     
     messages.success(request, 'Tool has been moved to the shed.')
     return HttpResponseRedirect(reverse('shed.requests'))
Пример #13
0
    def return_tool(request, reservation_id):
        try:
            service.return_tool(reservation_id, request.user.id)
        except Reservation.DoesNotExist:
            return error404(request)

        messages.success(request, 'Tool returned.')
        return HttpResponseRedirect(reverse('reservation'))
Пример #14
0
 def deregister(request, shed_id=None):
     try:
         if shed_id == None:
             shed_id = service.get_shed_by_user(request.user.id).id
         service.deregister(shed_id)
     except Shed.DoesNotExist:
         return error404(request)
     
     messages.success(request, 'Shed deregistered succesfully.')
     return HttpResponseRedirect(reverse('shed'))
Пример #15
0
    def edit(request, tool_id):
        try:
            edit_tool = service.get_tool(tool_id)
        except Tool.DoesNotExist:
            return error404(request)

        context = {
            'form': ToolForm(request.user.id, instance=edit_tool),
            'tool_id': tool_id
        }
        return render(request, 'toolshareapp/tool/edit.html', context)
Пример #16
0
 def edit_post(request, shed_id):
     try:
         shed = service.get_shed(shed_id);
     except Shed.DoesNotExist:
         return error404(request)
     
     form = ShedForm(request.POST, instance=shed)
     
     if form.is_valid():
         edit_shed = form.save(commit=False)
         service.update(edit_shed)
         messages.success(request, 'Shed updated successfully.')
         return HttpResponseRedirect(reverse('shed.edit.get', kwargs = { 'shed_id': shed_id }))
     
     messages.error(request, 'Validation errors occurred.')
     render(reques, 'toolshareapp/shed/edit.html', { 'form':form, 'shed_id': shed_id })
Пример #17
0
    def approve(request, reservation_id):

        form = ApprovalForm(request.POST)

        if form.is_valid():
            try:
                service.approve_borrower(reservation_id, request.user.id,
                                         form.get_pickup())
            except Reservation.DoesNotExist:
                return error404(request)

            messages.success(request, 'Reservation approved.')
            return HttpResponseRedirect(reverse('reservation.incoming'))

        messages.error(request, 'Validation errors occured.')
        return render_incoming(request, RejectionForm(), form)
Пример #18
0
    def reject(request, reservation_id):
        #rejection_reason = request.POST['rejection_reason']
        form = RejectionForm(request.POST)

        if form.is_valid():
            try:
                service.reject_borrower(reservation_id, request.user.id,
                                        form.get_reason())
            except Reservation.DoesNotExist:
                return error404(request)

            messages.success(request, 'Reservation rejected.')
            return HttpResponseRedirect(reverse('reservation.incoming'))

        messages.error(request, 'Validation errors occured.')
        return render_incoming(request, form, ApprovalForm())
Пример #19
0
    def detail_reject(request, reservation_id):
        form = RejectionForm(request.POST)

        if form.is_valid():
            try:
                service.reject_borrower(reservation_id, request.user.id,
                                        form.get_reason())
            except Reservation.DoesNotExist:
                return error404(request)

            messages.success(request, 'Reservation rejected.')
            return HttpResponseRedirect(
                reverse('reservation.detail.get',
                        kwargs={'reservation_id': reservation_id}))

        messages.error(request, 'Validation errors occured.')
        return render_detail(request, reservation_id, form, ApprovalForm())