Пример #1
0
def add_or_update_ticket(request, project_id, ticket_id=None):
    project = get_object_or_404(Project, pk=project_id)
    has_permissions_or_403(request.user, "change", project)
    adding = ticket_id is None
    if adding:
        ticket = Ticket(author=request.user, project=project)
    else:
        ticket = get_object_or_404(Ticket, pk=ticket_id)
    if request.method == 'POST':
        form = TicketForm(request.POST, instance=ticket, parent_project=project)
        if form.is_valid():
            ticket = form.save()
            if adding:
                ok_msg = _('Ticket creation successful')
                ticket.send_mails('create')
            else:
                ok_msg = _('Ticket update successfull')
                ticket.send_mails('update')

            messages.success(request, ok_msg)
            return HttpResponseRedirect(reverse('ticket_detail_url',
                                                kwargs={'project_id' : project.pk,
                                                        'object_id'  : ticket.pk}))
        else: # adding/updating failed
            if adding:
                fail_msg = _('Ticket creation failed. Correct errors and try again')
            else:
                fail_msg = _('Ticket update failed. Correct errors and try again')

            messages.error(request, fail_msg)
    else: # GET
        form = TicketForm(instance = ticket, parent_project=project)
    return render(request, 'core/add_ticket.html', {'tform' : form, 'project' : project})
Пример #2
0
def ticket_form(request):
    try:
        email = Setup.objects.all()[0].email
    except:
        email = '*****@*****.**'
    print email
    if request.method == "POST":
        form = TicketForm(data=request.POST)
        if form.is_valid():
            ticket = form.save(commit=False)
            ticket.status = 1
            ticket.save()
            message = u'Имя: %s\nТелефон:%s\nE-mail: %s\n' % (ticket.name, ticket.phone, ticket.email)
            print settings.EMAIL_HOST_USER
            send_mail(
                u'lumen-ltd.com - Заявка с сайта',
                message,
                settings.EMAIL_HOST_USER,
                [email, ]
            )
            return {
                'success': True
            }
        else:
            return {
                'success': False
            }
    return {
        'success': False
    }
Пример #3
0
def confirm_arrival(request):
    form  = TicketForm(request.GET)

    if form.is_valid():
        ticket = form.cleaned_data['ticket']
        ticket.confirm_arrival()
        ticket.save()
        return JsonResponse({'success': True})
    else:
        return JsonResponse(form.errors)
Пример #4
0
def view_ticket(request, ticket_id=None):
    # Common data
    common_data = common_ticket_data()
    if ticket_id:
        # Check if existis or raise 404
        ticket_rights = rights.get_rights_for_ticket(user=request.user,
                                                     queue=None,
                                                     ticket_id=ticket_id)
        if ticket_rights.can_view:
            actual_ticket = get_object_or_404(Ticket, pk=ticket_id)
            actual_files = Attachment.objects.filter(ticket_rel=ticket_id)
            actual_comments = Comments.objects.filter(
                ticket_rel=ticket_id).order_by('-id')
            actual_logs = Logs.objects.filter(
                log_ticket=ticket_id).order_by('-id')
            actual_microtasks = Microtasks.objects.filter(
                ticket_rel=ticket_id).order_by('-id')
            if ticket_rights.can_edit or request.user.is_superuser:
                can_edit = True
            else:
                can_edit = False
        else:
            raise Http404(
                "You dont have enough permissions to see this ticket")
    else:
        # If not, assign a new ticket instance to be use as instance of form
        raise Http404("No ticket selected")
    # POST mode

    form_ticket = TicketForm(instance=actual_ticket,
                             request=request,
                             prefix="ticket")
    form_attach = AttachmentForm(instance=actual_ticket, prefix="attach")
    return render(request, 'core/tickets/view.html', locals())
Пример #5
0
def index(request):
    form = TicketForm()
    certificate_list = Certificate.objects.all()
    return render(request, 'index.html', {
        'form': form,
        'certificate_list': certificate_list,
    })
Пример #6
0
def manage_ticket(request, ticket_id=None):
    # site_vars = utils.site_vars()
    # Common data
    common_data = common_ticket_data()
    if ticket_id:
        # Check if existis or raise 404
        ticket_rights = rights.get_rights_for_ticket(user=request.user,
                                                     queue=None,
                                                     ticket_id=ticket_id)
        if ticket_rights.can_edit or request.user.is_superuser:
            actual_ticket = get_object_or_404(Ticket, pk=ticket_id)
            actual_files = Attachment.objects.filter(ticket_rel=ticket_id)
            actual_comments = Comments.objects.filter(
                ticket_rel=ticket_id).order_by('-id')
            actual_logs = Logs.objects.filter(
                log_ticket=ticket_id).order_by('-id')
            actual_microtasks = Microtasks.objects.filter(
                ticket_rel=ticket_id).order_by('-id')
        else:
            raise Http404(
                "You dont have enough permissions to edit this ticket")
    else:
        # If not, assign a new ticket instance to be use as instance of form
        actual_ticket = Ticket()
    # POST mode
    if request.method == 'POST':
        form_ticket = TicketForm(request.POST,
                                 instance=actual_ticket,
                                 request=request,
                                 prefix="ticket")
        form_attach = AttachmentForm(request.POST,
                                     request.FILES,
                                     prefix="attach")
        if form_ticket.is_valid() and form_attach.is_valid():
            # The ticket part
            new_ticket_form = form_ticket.save(commit=False)
            new_ticket_form.create_user = request.user
            saved_ticket = new_ticket_form.save()
            # Seconf, save the attach part
            # instance = Attachment(
            # ticket_rel=new_ticket_form,file_name=request.FILES['attach-file_name'])
            # instance.save()
            if form_attach.has_changed():
                new_form_attach = form_attach.save(commit=False)
                new_form_attach.ticket_rel = new_ticket_form
                new_form_attach.save()
                if 'update-signal' in request.POST:
                    return redirect('tickets-edit ticket_id')
                elif 'save-signal' in request.POST:
                    return redirect('tickets-list')
            else:
                if 'save-signal' in request.POST:
                    return redirect('tickets-list')
    else:
        # Non-POST mode, show only
        form_ticket = TicketForm(instance=actual_ticket,
                                 request=request,
                                 prefix="ticket")
        form_attach = AttachmentForm(instance=actual_ticket, prefix="attach")
    return render(request, 'core/tickets/create_edit_ticket.html', locals())
Пример #7
0
def ticket_form(request):
    try:
        email = Setup.objects.all()[0].email
    except:
        email = '*****@*****.**'
    print email
    if request.method == "POST":
        form = TicketForm(data=request.POST)
        if form.is_valid():
            ticket = form.save(commit=False)
            ticket.status = 1
            ticket.save()
            message = u'Имя: %s\nТелефон:%s\nE-mail: %s\n' % (
                ticket.name, ticket.phone, ticket.email)
            print settings.EMAIL_HOST_USER
            send_mail(u'lumen-ltd.com - Заявка с сайта', message,
                      settings.EMAIL_HOST_USER, [
                          email,
                      ])
            return {'success': True}
        else:
            return {'success': False}
    return {'success': False}
Пример #8
0
def update_ticket(request,object_id,project_id):
    ticket = get_object_or_404(Ticket, pk=object_id)
    project = ticket.project
    has_permissions_or_403(request.user, "change", project)
    if request.method == "POST":
        tform = TicketForm(request.POST, instance=ticket)
        if tform.is_valid():
            ticket = tform.save(commit=False)
            ticket.save()
            tform.save_m2m()
            messages.success(request,_('Ticket update successful.'))
            return HttpResponseRedirect(reverse('ticket_detail_url', kwargs={'project_id' : ticket.project.pk, 'object_id' : ticket.pk}))
        else:
            tform.fields['version'].queryset = project.version_set
            print tform.errors
            messages.error(request,_('Ticket update failed. Corrert errors below and try again.'))
    else:
        tform = TicketForm(instance=ticket)
        tform.fields['version'].queryset = project.version_set
    return render(request, 'core/add_ticket.html',{'tform' : tform, 'project' : ticket.project, 'ticket_id' : ticket.pk})