def create_ticket(request, ticket_type): """ Create a view to show all feature tickets """ if request.method == "POST": form = TicketForm(request.POST) if form.is_valid(): form.save() messages.success(request, "Ticket added") if ticket_type == "FEATURE": return redirect(all_features) else: return redirect(all_bugs) else: form = TicketForm() form.fields["ticket_type"].initial = ticket_type return render(request, 'ticketform.html', {'form': form})
def tickets_list(request): if request.user.is_authenticated: if request.method == 'POST': form = TicketForm(request.POST) if form.is_valid(): ticket = form.save(commit=False) ticket.owner = request.user ticket.save() logger.debug(f'{ticket} created.') request.session['ticket-uuid'] = str(ticket.uuid) return redirect('ticket_submitted') else: try: if request.user.is_superuser: tickets = Ticket.objects.all() else: tickets = Ticket.objects.filter(owner=request.user) except: # noqa: E722 tickets = None return render( request, 'tickets/tickets-list.html', {'tickets': tickets} ) else: return render(request, 'tickets/tickets-list.html', {})
def create(request): if helpdesk_settings.HELPDESK_STAFF_ONLY_TICKET_OWNERS: assignable_users = User.objects.filter(is_active=True, is_staff=True).order_by(User.USERNAME_FIELD) else: assignable_users = User.objects.filter(is_active=True).order_by(User.USERNAME_FIELD) if request.method == 'POST': form = TicketForm(request.POST, request.FILES) form.fields['queue'].choices = [('', '--------')] + [[q.id, q.title] for q in Queue.objects.all()] form.fields['assigned_to'].choices = [('', '--------')] + [[u.id, u.get_username()] for u in assignable_users] if form.is_valid(): ticket = form.save(user=request.user) return HttpResponseRedirect(ticket.get_absolute_url()) else: initial_data = {} if request.user.usersettings.settings.get('use_email_as_submitter', False) and request.user.email: initial_data['submitter_email'] = request.user.email if request.GET.has_key('queue'): initial_data['queue'] = request.GET['queue'] form = TicketForm(initial=initial_data) form.fields['queue'].choices = [('', '--------')] + [[q.id, q.title] for q in Queue.objects.all()] form.fields['assigned_to'].choices = [('', '--------')] + [[u.id, u.get_username()] for u in assignable_users] if helpdesk_settings.HELPDESK_CREATE_TICKET_HIDE_ASSIGNED_TO: form.fields['assigned_to'].widget = forms.HiddenInput() return render_to_response('tickets/create_ticket.html', RequestContext(request, { 'form': form, }))
def new_ticket(request, slug): repo = get_object_or_404(CodeRepository, slug=slug) TicketDetailForm = get_ticket_form(repo) if request.method == "POST": form = TicketForm(request.POST) detail_form = TicketDetailForm(request.POST) if form.is_valid() and detail_form.is_valid(): ticket = form.save(commit=False) ticket.repo = repo ticket.creator = request.user ticket.created_at = datetime.now() ticket.save() detail_form.save(ticket) return redirect(ticket) else: form = TicketForm() detail_form = TicketDetailForm() return render_to_response([ 'tickets/%s/new_ticket.html' % repo.name, 'tickets/new_ticket.html', ], { 'repo': repo, 'form': form, 'detail_form': detail_form }, context_instance=RequestContext(request))
def tickets_edit(request, pk): """ Edit a Single Ticket """ ticket = get_object_or_404(Ticket, pk=pk) if request.method == "POST": ticket_form = TicketForm(request.POST, instance=ticket) if ticket_form.is_valid(): ticket_form.instance.date_edited = timezone.now() ticket_form.save() messages.success(request, f"Ticket successfully updated!") return redirect(tickets_view_one, ticket.pk) else: ticket_form = TicketForm(instance=ticket) context = { "ticket": ticket, "ticket_form": ticket_form, } return render(request, "tickets_edit.html", context)
def tickets_new_feature(request): """ Create a NEW Ticket (Feature) """ if request.method == "POST": ticket_form = TicketForm(request.POST) donation_form = DonationForm(request.POST) if ticket_form.is_valid() and donation_form.is_valid(): # amount to pay / donate donation_amount = 0 donation_amount += int(request.POST.get("donation_amount")) try: # build Stripe payment token = request.POST["stripeToken"] customer = stripe.Charge.create( amount=int(donation_amount * 100), currency="EUR", description=(request.user.email + " (" + request.user.get_full_name() + ")"), source=token, ) except stripe.error.CardError: # Stripe payment error messages.error(request, f"Your card was declined!") # authorization is valid - payment successful if customer.paid: ticket_form.instance.author = request.user ticket_form.instance.ticket_type_id = 2 ticket_form.instance.total_donations = donation_amount # update user Profile with additional donation amount get_user_donations = Profile.objects.values_list( "total_donated", flat=True).get(user_id=request.user.id) new_user_donations = get_user_donations + donation_amount Profile.objects.filter(user_id=request.user.id).update( total_donated=new_user_donations) # update ticket status to In Progress if €100 goal is achieved if donation_amount >= int(100): ticket_form.instance.ticket_status_id = 2 else: ticket_form.instance.ticket_status_id = 1 new_ticket = ticket_form.save() new_ticket_id = new_ticket.pk messages.success( request, f"Thank you for your Feature Request!\ €{donation_amount} was charged to your card.") return redirect(tickets_view_one, new_ticket_id) else: messages.error(request, f"Unable to take payment!") else: messages.error(request, f"There was an error. Please try again.") else: ticket_form = TicketForm() donation_form = DonationForm() context = { "donation_form": donation_form, "ticket_form": ticket_form, "publishable": settings.STRIPE_PUBLISHABLE } return render(request, "tickets_new_feature.html", context)
def post(self, request): ticketForm = TicketForm(request.POST, request=request) commentForm = CommentForm(request.POST) if ticketForm.is_valid() and commentForm.is_valid(): ticket = ticketForm.save(request) comment = commentForm.save(request, ticket) return redirect('ticket details', ticket_id=ticket.id) context = self.get_context_data() context['ticketForm'] = ticketForm context['commentForm'] = commentForm return render(request, 'tickets/add-ticket.html', context)
def edit(request, pk): ticket = get_object_or_404(Ticket, pk=pk) form = TicketForm(instance=ticket) if request.POST: data = request.POST.copy() form = TicketForm(data, instance=ticket) if form.is_valid(): t = form.save() return redirect("/tickets/%s" % t.pk) return render_to_response('tickets/form.html', {'ticket': ticket, 'form': form}, context_instance=RequestContext(request))
def post(self, request, slug): try: board = Board.objects.get(slug=slug) except Board.DoesNotExist: text = 'Oops! The board you are looking for ' \ 'no longer exists..' messages.error(request, text) return HttpResponseRedirect(reverse('boards')) form = TicketForm(request.POST) form.save() ticket_update_once_form = TicketUpdateOnceForm() tickets = TicketTable( Ticket.objects.filter(board__slug=slug, is_active=True).order_by('id')) zendesk_ticket_url = settings.ZENDESK_URL + '/agent/tickets/' firebase_messaging_sender_id = settings.FIREBASE_MESSAGING_SENDER_ID return render( request, self.template_name, { 'board_name': board.name, 'board_slug': board.slug, 'form': form, 'ticket_update_once_form': ticket_update_once_form, 'tickets': tickets, 'zendesk_ticket_url': zendesk_ticket_url, 'firebase_api_key': settings.FIREBASE_API_KEY, 'firebase_auth_domain': settings.FIREBASE_AUTH_DOMAIN, 'firebase_database_url': settings.FIREBASE_DATABASE_URL, 'firebase_project_id': settings.FIREBASE_PROJECT_ID, 'firebase_storage_bucket': settings.FIREBASE_STORAGE_BUCKET, 'firebase_messaging_sender_id': firebase_messaging_sender_id })
def post(self, request, slug): try: board = Board.objects.get(slug=slug) except Board.DoesNotExist: text = 'Oops! The board you are looking for ' \ 'no longer exists..' messages.error(request, text) return HttpResponseRedirect(reverse('boards')) form = TicketForm(request.POST) form.save() ticket_update_once_form = TicketUpdateOnceForm() cycle = request.GET.get('cycle') tickets = self.get_tickets(slug, cycle) context = self.get_context_to_render( board_name=board.name, board_slug=board.slug, form=form, ticket_update_once_form=ticket_update_once_form, tickets=tickets) return render(request, self.template_name, context)
def add(request): if request.method == 'POST': form = TicketForm(request.POST) if form.is_valid(): ticket = form.save(commit=False) if request.user.is_authenticated(): ticket.usuario = request.user.get_profile() ticket.save() messages.add_message(request, messages.INFO, 'Su pregunta ha sido enviada correctamente.') else: form = TicketForm() return render_to_response('tickets/new.html', locals() , context_instance=RequestContext(request))
def tickets_new_bug(request): """ Create a NEW Ticket (Bug) """ if request.method == "POST": ticket_form = TicketForm(request.POST) if ticket_form.is_valid(): ticket_form.instance.author = request.user ticket_form.instance.ticket_type_id = 1 ticket_form.instance.ticket_status_id = 1 new_ticket = ticket_form.save() new_ticket_id = new_ticket.pk messages.success(request, f"Thank you for your Bug Report!") return redirect(tickets_view_one, new_ticket_id) else: ticket_form = TicketForm() context = { "ticket_form": ticket_form, } return render(request, "tickets_new_bug.html", context)
def add(request): if request.method == 'POST': form = TicketForm(request.POST) if form.is_valid(): ticket = form.save(commit=False) if request.user.is_authenticated(): ticket.usuario = request.user.get_profile() ticket.save() messages.add_message(request, messages.INFO, 'Su pregunta ha sido enviada correctamente.') else: form = TicketForm() return render_to_response('tickets/new.html', locals(), context_instance=RequestContext(request))
def new_ticket(request, projectslug): project = get_object_or_404(Project, slug=projectslug) TicketDetailForm = get_ticket_form(project) if request.method == "POST": form = TicketForm(request.POST) detail_form = TicketDetailForm(request.POST) if form.is_valid() and detail_form.is_valid(): ticket = form.save(commit=False) ticket.project = project ticket.creator = request.user ticket.created_at = datetime.now() ticket.save() detail_form.save(ticket) return redirect(ticket) else: form = TicketForm() detail_form = TicketDetailForm() return render_to_response([ 'tickets/%s/new_ticket.html' % project.name, 'tickets/new_ticket.html', ], {'project': project, 'form': form, 'detail_form': detail_form}, context_instance=RequestContext(request))
def new_ticket(request, slug): repo = get_object_or_404(CodeRepository, slug=slug) TicketDetailForm = get_ticket_form(repo) if request.method == "POST": form = TicketForm(request.POST) detail_form = TicketDetailForm(request.POST) if form.is_valid() and detail_form.is_valid(): ticket = form.save(commit=False) ticket.repo = repo ticket.creator = request.user ticket.created_at = datetime.now() ticket.save() detail_form.save(ticket) return redirect(ticket) else: form = TicketForm() detail_form = TicketDetailForm() return render_to_response([ 'tickets/%s/new_ticket.html' % repo.name, 'tickets/new_ticket.html', ], {'repo': repo, 'form': form, 'detail_form': detail_form}, context_instance=RequestContext(request))