def get_context_data(self, **kwargs): context = super(DetailOfferView, self).get_context_data(**kwargs) obj = self.get_object() context['object'] = obj if can_manage_branch_specific(obj.donor, self.request.user, obj.branch): context['can_manage'] = True return context
def manage_success(request, success_demand_id): """ View for a job who has been completed """ success = get_object_or_404(SuccessDemand, pk=success_demand_id) demand = success.demand form = CommentConfirmForm() if can_manage_branch_specific(success.ask_to, request.user, success.branch): if request.POST: form = CommentConfirmForm(request.POST) if form.is_valid(): if 'accept' in request.POST: if success.time > 100000: success.time = 100000 if success.time < 0: success.time = 0 demand.real_time = success.time demand.success = True demand.donor.credit += success.time demand.donor.save() demand.receiver.credit -= success.time demand.receiver.save() subject = _("Job confirmé") body = _("L'utilisateur {user} ({username}) a confirmé que vous aviez accompli le job {job} avec succès ! Votre compte a donc été crédité de {time} minutes.\n")\ .format(user=demand.receiver.get_full_name(), job=demand.title, time=success.time, username=demand.receiver) if form.cleaned_data['comment'] != "": body += _("L'utilisateur {user} ({username}) a laissé le commentaire suivant : {comment}")\ .format(user=demand.receiver.get_full_name(), comment=form.cleaned_data['comment'], username=demand.receiver) pm_write(demand.receiver, demand.donor, subject, body) success.delete() demand.save() return redirect('home') if 'decline' in request.POST: success.delete() demand.success_fill = False demand.save() subject = _("Job refusé") body = _("L'utilisateur {user} ({username}) a déclaré que vous n'aviez pas passé {time} minutes pour accomplir le job {job}. Votre compte n'a donc pas été crédité.\n")\ .format(user=demand.receiver.get_full_name(), job=demand.title, time=success.time, username=demand.receiver) if form.cleaned_data['comment'] != "": body += _("L'utilisateur {user} ({username}) a laissé un commentaire, expliquant pourquoi il n'a pas désiré créditer votre compte : {comment}\n" "Vous pouvez recréer une demande de confirmation avec un nouveau montant de crédit correspondant plus à la perception du demandeur d'aide.\n" "Si vous ne parvenez pas à trouver un terrain d'entente avec l'utilisateur {user} ({username}), vous pouvez contacter un administrateur pour régler le problème.")\ .format(user=demand.receiver.get_full_name(), comment=form.cleaned_data['comment'], username=demand.receiver) pm_write(demand.receiver, demand.donor, subject, body) return redirect('home') return render(request, 'job/manage_success.html', locals()) else: return refuse(request)
def manage_success(request, success_demand_id): """ View for a job who has been completed """ success = get_object_or_404(SuccessDemand, pk=success_demand_id) demand = success.demand form = CommentConfirmForm() if can_manage_branch_specific(success.ask_to, request.user, success.branch): if request.POST: form = CommentConfirmForm(request.POST) if form.is_valid(): if 'accept' in request.POST: if success.time > 100000: success.time = 100000 if success.time < 0: success.time = 0 demand.real_time = success.time demand.success = True demand.donor.credit += success.time demand.donor.save() demand.receiver.credit -= success.time demand.receiver.save() subject = _("Job confirmé") body = _("L'utilisateur {user} ({username}) a confirmé que vous aviez accompli le job {job} avec succès ! Votre compte a donc été crédité de {time} minutes.\n")\ .format(user=demand.receiver.get_full_name(), job=demand.title, time=success.time, username=demand.receiver) if form.cleaned_data['comment'] != "": body += _("L'utilisateur {user} ({username}) a laissé le commentaire suivant : {comment}")\ .format(user=demand.receiver.get_full_name(), comment=form.cleaned_data['comment'], username=demand.receiver) pm_write(demand.receiver, demand.donor, subject, body) success.delete() demand.save() return redirect('home') if 'decline' in request.POST: success.delete() demand.success_fill = False demand.save() subject = _("Job refusé") body = _("L'utilisateur {user} ({username}) a déclaré que vous n'aviez pas passé {time} minutes pour accomplir le job {job}. Votre compte n'a donc pas été crédité.\n")\ .format(user=demand.receiver.get_full_name(), job=demand.title, time=success.time, username=demand.receiver) if form.cleaned_data['comment'] != "": body += _("L'utilisateur {user} ({username}) a laissé un commentaire, expliquant pourquoi il n'a pas désiré créditer votre compte : {comment}\n" "Vous pouvez recréer une demande de confirmation avec un nouveau montant de crédit correspondant plus à la perception du demandeur d'aide.\n" "Si vous ne parvenez pas à trouver un terrain d'entente avec l'utilisateur {user} ({username}), vous pouvez contacter un administrateur pour régler le problème.")\ .format(user=demand.receiver.get_full_name(), comment=form.cleaned_data['comment'], username=demand.receiver) pm_write(demand.receiver, demand.donor, subject, body) return redirect('home') return render(request,'job/manage_success.html', locals()) else : return refuse(request)
def get_context_data(self, **kwargs): context = super(DetailDemandView, self).get_context_data(**kwargs) obj = self.get_object() context['object'] = obj if self.request.user in obj.volunteers.all(): context['already_volunteer'] = True if can_manage_branch_specific(obj.receiver, self.request.user, obj.branch): context['can_manage'] = True return context
def delete_offer(request, branch_id, slug, offer_id): """ Delete an offer """ offer = get_object_or_404(Offer, pk=offer_id) if can_manage_branch_specific(offer.donor, request.user, offer.branch): offer.delete() messages.add_message(request, messages.INFO, _('Vous avez supprimé l\'offre {offer}').format(offer=offer)) return redirect(offer.branch.get_absolute_url()) return redirect('home')
def volunteer_decline(request, volunteer_id): """ Decline an help form the volunteer_id """ demandProposition = DemandProposition.objects.get(pk=volunteer_id) demand = demandProposition.demand if can_manage_branch_specific(demand.receiver, request.user, demand.branch): demandProposition.delete() messages.add_message(request, messages.INFO, _('Vous avez refusé cette aide')) return redirect(demand.get_absolute_url()) return redirect('home')
def delete_demand(request, branch_id, slug, demand_id): """ Delete a demand """ demand = get_object_or_404(Demand, pk=demand_id) if can_manage_branch_specific(demand.receiver, request.user, demand.branch): demand.delete() messages.add_message(request, messages.INFO, _('Vous avez supprimé la demande {demand}').format(demand=demand)) return redirect(demand.branch.get_absolute_url()) else: return refuse(request)
def volunteer_accept(request, volunteer_id): """ Accept an help from the volunteer_id """ demandProposition = DemandProposition.objects.get(pk=volunteer_id) demand = demandProposition.demand if can_manage_branch_specific(demand.receiver, request.user, demand.branch): demandProposition.accepted = True demandProposition.save() subject = _("Je vous ai choisi pour '") + demand.title + "'" body = _( " Je vous ai choisi pour effectuer le job '") + demand.title + "'" body += '\n\n' + _('Lieu : ') + demand.location body += '\n' + _('Date : ') + formats.date_format( demand.date, "DATE_FORMAT") body += '\n' + _('Heure(s) désirée(s) : ') + demand.get_verbose_time() body += '\n' + _('Description : ') + demand.description body += '\n' if demand.receiver.emergency_contacts.count() > 0: body += '\n' + _( 'En cas d\'incident durant cette tâche, voici les personnes à contacter :' ) for ec in demand.receiver.emergency_contacts.all(): body += '\n' + _('Prénom :') + ' ' + ec.first_name body += '\n' + _('Nom :') + ' ' + ec.last_name body += '\n' + _('Téléphone fixe :') + ' ' + ec.phone_number body += '\n' + _('Téléphone mobile :') + ' ' + ec.mobile_number body += '\n' + _( 'Langues parlées :') + ' ' + ec.get_verbose_languages() body += '\n' body += '\n\n' + _( 'N\'hésitez pas à me contacter pour de plus amples informations') body += '\n' + _('À bientôt,') + '\n' body += demand.receiver.first_name pm_write(demand.receiver, demandProposition.user, subject, body) for vol in DemandProposition.objects.filter(demand=demand, accepted=False): vol.delete() demand.closed = True demand.km = demandProposition.km if not demand.km: demand.km = 0 demand.donor = demandProposition.user demand.save() messages.add_message(request, messages.INFO, _('Vous avez accepté cette aide !')) return redirect(demand.get_absolute_url()) return redirect('home')
def volunteer_accept(request, volunteer_id): """ Accept an help from the volunteer_id """ demandProposition = DemandProposition.objects.get(pk=volunteer_id) demand = demandProposition.demand if can_manage_branch_specific(demand.receiver, request.user, demand.branch): demandProposition.accepted = True demandProposition.save() subject = _("Je vous ai choisi pour '") + demand.title + "'" body = _(" Je vous ai choisi pour effectuer le job '") + demand.title + "'" body += '\n\n' + _('Lieu : ') + demand.location body += '\n' + _('Date : ') + formats.date_format(demand.date, "DATE_FORMAT") body += '\n' + _('Heure(s) désirée(s) : ') + demand.get_verbose_time() body += '\n' + _('Description : ') + demand.description body += '\n' if demand.receiver.emergency_contacts.count() > 0: body += '\n' + _('En cas d\'incident durant cette tâche, voici les personnes à contacter :') for ec in demand.receiver.emergency_contacts.all(): body += '\n' + _('Prénom :') + ' ' + ec.first_name body += '\n' + _('Nom :') + ' ' + ec.last_name body += '\n' + _('Téléphone fixe :') + ' ' + ec.phone_number body += '\n' + _('Téléphone mobile :') + ' ' + ec.mobile_number body += '\n' + _('Langues parlées :') + ' ' + ec.get_verbose_languages() body += '\n' body += '\n\n' + _('N\'hésitez pas à me contacter pour de plus amples informations') body += '\n' + _('À bientôt,') + '\n' body += demand.receiver.first_name pm_write(demand.receiver, demandProposition.user, subject, body) for vol in DemandProposition.objects.filter(demand=demand, accepted=False): vol.delete() demand.closed = True demand.km = demandProposition.km if not demand.km: demand.km = 0 demand.donor = demandProposition.user demand.save() messages.add_message(request, messages.INFO, _('Vous avez accepté cette aide !')) return redirect(demand.get_absolute_url()) return redirect('home')
def unsuccess_job(request, demand_id): """ View for a job who has not been completed """ demand = get_object_or_404(Demand, pk=demand_id) if can_manage_branch_specific(demand.donor, request.user, demand.branch): demand.success_fill=True demand.success=False demand.save() subject = _("Absence lors d'un job") body = _("L'utilisateur {user} ({username}) n'était apparemment pas présent pour accomplir le job {job}.\n" "S'il s'agit d'une erreur et que {user} ({username}) était bien présent, veuillez contacter un administrateur pour régler le problème.\n" "Si vous désirez ne plus demander d'aide à l'utilisateur {user} ({username}), vous pouvez l'ignorer en vous rendant sur son profil.")\ .format(user=demand.donor.get_full_name(), job=demand.title, username=demand.donor) pm_write(demand.donor, demand.receiver, subject, body) messages.add_message(request, messages.INFO, _('Vous avez indiqué la tâche {demand} comme non-completée').format(demand=demand)) return redirect('home') else: return refuse(request)
def dispatch(self, *args, **kwargs): demand = Demand.objects.get(pk=self.kwargs['demand_id']) if not can_manage_branch_specific(demand.receiver, self.request.user, demand.branch): return refuse(self.request) return super(CreateVolunteerView, self).dispatch(*args, **kwargs)
def dispatch(self, *args, **kwargs): obj = self.get_object() if not can_manage_branch_specific(obj.donor, self.request.user, obj.branch): return refuse(self.request) return super(UpdateOfferView, self).dispatch(*args, **kwargs)