Exemple #1
0
def view_ticket(request):
    ticket_req = request.GET.get('ticket', '')
    ticket = False
    email = request.GET.get('email', '')
    error_message = ''

    if ticket_req and email:
        parts = ticket_req.split('-')
        queue = '-'.join(parts[0:-1])
        ticket_id = parts[-1]

        try:
            ticket = Ticket.objects.get(id=ticket_id, queue__slug__iexact=queue, submitter_email__iexact=email)
        except:
            ticket = False
            error_message = _('Invalid ticket ID or e-mail address. Please try again.')

        if ticket:

            if request.user.is_staff:
                redirect_url = reverse('helpdesk_view', args=[ticket_id])
                if request.GET.has_key('close'):
                    redirect_url += '?close'
                return HttpResponseRedirect(redirect_url)

            if request.GET.has_key('close') and ticket.status == Ticket.RESOLVED_STATUS:
                from helpdesk.views.staff import update_ticket
                # Trick the update_ticket() view into thinking it's being called with
                # a valid POST.
                request.POST = {
                    'new_status': Ticket.CLOSED_STATUS,
                    'public': 1,
                    'title': ticket.title,
                    'comment': _('Submitter accepted resolution and closed ticket'),
                    }
                if ticket.assigned_to:
                    request.POST['owner'] = ticket.assigned_to.id
                request.GET = {}

                return update_ticket(request, ticket_id, public=True)

            # redirect user back to this ticket if possible.
            redirect_url = ''
            if helpdesk_settings.HELPDESK_NAVIGATION_ENABLED:
                redirect_url = reverse('helpdesk_view', args=[ticket_id])

            return render_to_response('helpdesk/public_view_ticket.html',
                RequestContext(request, {
                    'ticket': ticket,
                    'helpdesk_settings': helpdesk_settings,
                    'next': redirect_url,
                }))

    return render_to_response('helpdesk/public_view_form.html',
        RequestContext(request, {
            'ticket': ticket,
            'email': email,
            'error_message': error_message,
            'helpdesk_settings': helpdesk_settings,
        }))
Exemple #2
0
def view_ticket(request, ticket_id):
    """ Show a ticket comments, accepts new comments from user """
    ticket = get_object_or_404(Ticket, pk=ticket_id)
    if request.method == 'POST':
        if 'comment' in request.POST:
            from helpdesk.views.staff import update_ticket
            _resp = update_ticket(request, ticket.id, public=True)
            del _resp
            request.notifications.add(u"Комментарий успешно сохранен", 'success')

    return {'ticket':ticket, 'current_view_name':'helpdesk_account_tickets_view'}
Exemple #3
0
def view_ticket(request):
    ticket_req = request.GET.get('ticket', '')
    email = request.GET.get('email', '')

    if ticket_req and email:
        queue, ticket_id = Ticket.queue_and_id_from_query(ticket_req)
        try:
            ticket = Ticket.objects.get(id=ticket_id, submitter_email__iexact=email)
        except ObjectDoesNotExist:
            error_message = _('Invalid ticket ID or e-mail address. Please try again.')

            return render(request, 'helpdesk/public_view_form.html', {
                'ticket': False,
                'email': email,
                'error_message': error_message,
                'helpdesk_settings': helpdesk_settings,
            })
        else:
            if request.user.is_staff:
                redirect_url = reverse('helpdesk:view', args=[ticket_id])
                if 'close' in request.GET:
                    redirect_url += '?close'
                return HttpResponseRedirect(redirect_url)

            if 'close' in request.GET and ticket.status == Ticket.RESOLVED_STATUS:
                from helpdesk.views.staff import update_ticket
                # Trick the update_ticket() view into thinking it's being called with
                # a valid POST.
                request.POST = {
                    'new_status': Ticket.CLOSED_STATUS,
                    'public': 1,
                    'title': ticket.title,
                    'comment': _('Submitter accepted resolution and closed ticket'),
                }
                if ticket.assigned_to:
                    request.POST['owner'] = ticket.assigned_to.id
                request.GET = {}

                return update_ticket(request, ticket_id, public=True)

            # redirect user back to this ticket if possible.
            redirect_url = ''
            if helpdesk_settings.HELPDESK_NAVIGATION_ENABLED:
                redirect_url = reverse('helpdesk:view', args=[ticket_id])

            return render(request, 'helpdesk/public_view_ticket.html', {
                'ticket': ticket,
                'helpdesk_settings': helpdesk_settings,
                'next': redirect_url,
            })
Exemple #4
0
def view_ticket(request):
    ticket_req = request.GET.get('ticket', '')
    ticket = False
    email = request.GET.get('email', '')
    error_message = ''

    if ticket_req:
        parts = ticket_req.split('-')
        queue = '-'.join(parts[0:-1])
        ticket_id = parts[-1]

        try:
            ticket = Ticket.objects.get(id=ticket_id, owner=request.user)
            if ticket.notify_owner:
                ticket.notify_owner=False
                ticket.save()
                
                ticket.notify_owner=True
        except:
            ticket = False
            error_message = _('Invalid ticket ID or e-mail address. Please try again.')
        #print ticket
        if ticket:
            
            if request.GET.has_key('close') and ticket.status == Ticket.RESOLVED_STATUS:
                from helpdesk.views.staff import update_ticket
                # Trick the update_ticket() view into thinking it's being called with
                # a valid POST.
                request.POST = {
                    'new_status': Ticket.CLOSED_STATUS,
                    'public': 1,
                    'owner': ticket.owner.id,
                    'title': ticket.title,
                    'comment': _('Submitter accepted resolution and closed ticket'),
                    }
                request.GET = {}

                return update_ticket(request, ticket_id, public=True)
            
            return render_to_response('helpdesk/public_view_ticket.html',
                RequestContext(request, {
                    'ticket': ticket,
                }))

    return render_to_response('helpdesk/public_view_form.html',
        RequestContext(request, {
            'ticket': ticket,
            'email': email,
            'error_message': error_message,
        }))
Exemple #5
0
def view_ticket(request):
    ticket_req = request.GET.get("ticket", "")
    ticket = False
    email = request.GET.get("email", "")
    error_message = ""

    if ticket_req and email:
        parts = ticket_req.split("-")
        queue = "-".join(parts[0:-1])
        ticket_id = parts[-1]

        try:
            ticket = Ticket.objects.get(id=ticket_id, queue__slug__iexact=queue, submitter_email__iexact=email)
        except:
            ticket = False
            error_message = _("Invalid ticket ID or e-mail address. Please try again.")

        if ticket:

            if request.GET.has_key("close") and ticket.status == Ticket.RESOLVED_STATUS:
                from helpdesk.views.staff import update_ticket

                # Trick the update_ticket() view into thinking it's being called with
                # a valid POST.
                request.POST = {
                    "new_status": Ticket.CLOSED_STATUS,
                    "public": 1,
                    "owner": ticket.assigned_to.id,
                    "title": ticket.title,
                    "comment": _("Submitter accepted resolution and closed ticket"),
                }
                request.GET = {}

                return update_ticket(request, ticket_id, public=True)

            return render_to_response("helpdesk/public_view_ticket.html", RequestContext(request, {"ticket": ticket}))

    return render_to_response(
        "helpdesk/public_view_form.html",
        RequestContext(request, {"ticket": ticket, "email": email, "error_message": error_message}),
    )
Exemple #6
0
def view_ticket(request):
    ticket_req = request.GET.get('ticket', None)
    email = request.GET.get('email', None)

    if ticket_req and email:
        queue, ticket_id = Ticket.queue_and_id_from_query(ticket_req)
        try:
            ticket = Ticket.objects.get(id=ticket_id,
                                        submitter_email__iexact=email)
        except ObjectDoesNotExist:
            error_message = _(
                'Invalid ticket ID or e-mail address. Please try again.')
        else:
            if request.user.is_staff:
                redirect_url = reverse('helpdesk:view', args=[ticket_id])
                if 'close' in request.GET:
                    redirect_url += '?close'
                return HttpResponseRedirect(redirect_url)

            if 'close' in request.GET and ticket.status == Ticket.RESOLVED_STATUS:
                from helpdesk.views.staff import update_ticket
                # Trick the update_ticket() view into thinking it's being called with
                # a valid POST.
                request.POST = {
                    'new_status':
                    Ticket.CLOSED_STATUS,
                    'public':
                    1,
                    'title':
                    ticket.title,
                    'comment':
                    _('Submitter accepted resolution and closed ticket'),
                }
                if ticket.assigned_to:
                    request.POST['owner'] = ticket.assigned_to.id
                request.GET = {}

                return update_ticket(request, ticket_id, public=True)

            # redirect user back to this ticket if possible.
            redirect_url = ''
            if helpdesk_settings.HELPDESK_NAVIGATION_ENABLED:
                redirect_url = reverse('helpdesk:view', args=[ticket_id])

            return render(
                request, 'helpdesk/public_view_ticket.html', {
                    'ticket': ticket,
                    'helpdesk_settings': helpdesk_settings,
                    'next': redirect_url,
                })
    elif ticket_req is None and email is None:
        error_message = None
    else:
        error_message = _(
            'Missing ticket ID or e-mail address. Please try again.')

    return render(
        request, 'helpdesk/public_view_form.html', {
            'ticket': False,
            'email': email,
            'error_message': error_message,
            'helpdesk_settings': helpdesk_settings,
        })
def view_ticket(request):
    ticket_req = request.GET.get('ticket', None)
    email = request.GET.get('email', None)
    key = request.GET.get('key', '')

    if not (ticket_req and email):
        if ticket_req is None and email is None:
            return search_for_ticket(request)
        else:
            return search_for_ticket(
                request,
                _('Missing ticket ID or e-mail address. Please try again.'))

    queue, ticket_id = Ticket.queue_and_id_from_query(ticket_req)
    try:
        if hasattr(settings, 'HELPDESK_VIEW_A_TICKET_PUBLIC'
                   ) and settings.HELPDESK_VIEW_A_TICKET_PUBLIC:
            ticket = Ticket.objects.get(id=ticket_id,
                                        submitter_email__iexact=email)
        else:
            ticket = Ticket.objects.get(id=ticket_id,
                                        submitter_email__iexact=email,
                                        secret_key__iexact=key)
    except (ObjectDoesNotExist, ValueError):
        return search_for_ticket(
            request,
            _('Invalid ticket ID or e-mail address. Please try again.'))

    if is_helpdesk_staff(request.user):
        redirect_url = reverse('helpdesk:view', args=[ticket_id])
        if 'close' in request.GET:
            redirect_url += '?close'
        return HttpResponseRedirect(redirect_url)

    if 'close' in request.GET and ticket.status == Ticket.RESOLVED_STATUS:
        from helpdesk.views.staff import update_ticket
        # Trick the update_ticket() view into thinking it's being called with
        # a valid POST.
        request.POST = {
            'new_status': Ticket.CLOSED_STATUS,
            'public': 1,
            'title': ticket.title,
            'comment': _('Submitter accepted resolution and closed ticket'),
        }
        if ticket.assigned_to:
            request.POST['owner'] = ticket.assigned_to.id
        request.GET = {}

        return update_ticket(request, ticket_id, public=True)

    # redirect user back to this ticket if possible.
    redirect_url = ''
    if helpdesk_settings.HELPDESK_NAVIGATION_ENABLED:
        redirect_url = reverse('helpdesk:view', args=[ticket_id])

    return render(
        request, 'helpdesk/public_view_ticket.html', {
            'key': key,
            'mail': email,
            'ticket': ticket,
            'helpdesk_settings': helpdesk_settings,
            'next': redirect_url,
        })
Exemple #8
0
def view_ticket(request):
    ticket_req = request.GET.get('ticket', '')
    ticket = False
    email = request.GET.get('email', '')
    error_message = ''

    if ticket_req and email:
        parts = ticket_req.split('-')
        queue = '-'.join(parts[0:-1])
        ticket_id = parts[-1]

        try:
            ticket = Ticket.objects.get(id=ticket_id,
                                        queue__slug__iexact=queue,
                                        submitter_email__iexact=email)
        except:
            ticket = False
            error_message = _(
                'Invalid ticket ID or e-mail address. Please try again.')

        if ticket:

            if request.user.is_staff:
                redirect_url = reverse('helpdesk_view', args=[ticket_id])
                if 'close' in request.GET:
                    redirect_url += '?close'
                return HttpResponseRedirect(redirect_url)

            if 'close' in request.GET and ticket.status == Ticket.RESOLVED_STATUS:
                from helpdesk.views.staff import update_ticket
                # Trick the update_ticket() view into thinking it's being called with
                # a valid POST.
                request.POST = {
                    'new_status':
                    Ticket.CLOSED_STATUS,
                    'public':
                    1,
                    'title':
                    ticket.title,
                    'comment':
                    _('Submitter accepted resolution and closed ticket'),
                }
                if ticket.assigned_to:
                    request.POST['owner'] = ticket.assigned_to.id
                request.GET = {}

                return update_ticket(request, ticket_id, public=True)

            # redirect user back to this ticket if possible.
            redirect_url = ''
            if helpdesk_settings.HELPDESK_NAVIGATION_ENABLED:
                redirect_url = reverse('helpdesk_view', args=[ticket_id])

            return render_to_response(
                'helpdesk/public_view_ticket.html',
                RequestContext(
                    request, {
                        'ticket': ticket,
                        'helpdesk_settings': helpdesk_settings,
                        'next': redirect_url,
                    }))

    return render_to_response(
        'helpdesk/public_view_form.html',
        RequestContext(
            request, {
                'ticket': ticket,
                'email': email,
                'error_message': error_message,
                'helpdesk_settings': helpdesk_settings,
            }))