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)
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)
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 })
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)
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 })
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'))
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'))
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'))
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)
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)
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'))
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'))
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'))
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'))
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)
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 })
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)
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())
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())