Example #1
0
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})
Example #2
0
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', {})
Example #3
0
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,
        }))
Example #4
0
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))
Example #5
0
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)
Example #6
0
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)
Example #7
0
    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)
Example #8
0
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))
Example #9
0
    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
            })
Example #10
0
    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)
Example #11
0
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))
Example #12
0
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)
Example #13
0
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))
Example #14
0
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))
Example #15
0
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))