コード例 #1
0
def del_comment_jx(request):
    if request.is_ajax() and request.POST:
        status = 0
        if request.POST.get('message_id') and request.POST.get('ticket_id'):
            ticket_id = int(request.POST.get('ticket_id'))
            """Check if we can add comment trought get_rights_for_ticket"""
            user_object_rights = rights.get_rights_for_ticket(
                user=request.user, queue=None, ticket_id=ticket_id)
            if user_object_rights.can_comment or request.user.is_superuser:
                message_data = request.POST.get('message_id')
                status = del_comment(request=request, message_id=message_data)
                data = {'message': "%s delete" % status}
                return HttpResponse(json.dumps(data),
                                    content_type='application/json')
            else:
                data = {'message': 'You don\'t have rights to delete comment'}
                response = HttpResponse(json.dumps(data),
                                        content_type='application/json')
                response.status_code = 400
                return response

        data = {'message': "%s added" % status}
        return HttpResponse(json.dumps(data), content_type='application/json')
    else:
        raise Http404
コード例 #2
0
def manage_ticket_dev(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_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')
        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
        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-dev/" + ticket_id + "")
                elif 'save-signal' in request.POST:
                    return redirect("/tickets")
            else:
                if 'save-signal' in request.POST:
                    return redirect("/tickets")
    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, 'tickets/create_edit_ticket.html', locals())
コード例 #3
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())
コード例 #4
0
 def clean(self):
     # Some essential vars
     user_obj = self.request.user
     cleaned_data = self.cleaned_data
     queue_obj = cleaned_data.get('assigned_queue')
     '''Check creation'''
     if not self.instance.pk:
         user_object_rights = rights.get_rights_for_ticket(user=user_obj,
                                                           queue=queue_obj,
                                                           ticket_id=None)
         if not user_object_rights.can_create:
             raise forms.ValidationError(self.clean_error_cantcreate())
     '''Check edition'''
     if self.instance.pk:
         user_object_rights = rights.get_rights_for_ticket(
             user=user_obj, queue=queue_obj, ticket_id=self.instance.id)
         if not user_object_rights.can_edit:
             raise forms.ValidationError(self.clean_error_cantedit())
     '''Force to assign company'''
     cleaned_data['assigned_company'] = queue_obj.company_rel
コード例 #5
0
 def clean_assigned_queue(self):
     if self.instance.pk is not None:  # new instance only
         user_object_rights = rights.get_rights_for_ticket(
             user=self.request.user,
             queue=self.cleaned_data.get('assigned_queue'),
             ticket_id=None)
         if not user_object_rights.can_create:
             raise forms.ValidationError(self.clean_error_cantcreate())
         else:
             self.field_checker(
                 str(self.instance.assigned_queue),
                 str(self.cleaned_data.get('assigned_queue')))
     return self.cleaned_data.get('assigned_queue')
コード例 #6
0
def delete_ticket(request, ticket_id=None):
    user_obj = request.user
    '''Check if we can add comment trought get_rights_for_ticket'''
    user_object_rights = rights.get_rights_for_ticket(user=user_obj,
                                                      queue=None,
                                                      ticket_id=ticket_id)
    if user_object_rights.can_delete:
        obj_to_delete = get_object_or_404(Ticket, pk=ticket_id)
        try:
            attach_to_delete = Attachment.objects.filter(ticket_rel=ticket_id)
        except Attachment.DoesNotExist:
            pass
        else:
            attach_to_delete.delete()
        obj_to_delete.delete()
        return redirect("/tickets")
    else:
        raise Http404("You dont have enough permissions to delete this ticket")
コード例 #7
0
def del_microtask_jx(request, ticket_id=None):
    if request.is_ajax() and request.POST:
        if request.POST.get('mk_id'):
            user_obj = request.user
            '''Check if we can add comment trought get_rights_for_ticket'''
            user_object_rights = rights.get_rights_for_ticket(
                user=user_obj, queue=None, ticket_id=ticket_id)
            if user_object_rights.can_comment or request.user.is_superuser:
                mk_data = request.POST.get('mk_id')
                status = del_microtask(request=request, mk_id=mk_data)
                data = {'message': "%s delete" % status}
                return HttpResponse(json.dumps(data),
                                    content_type='application/json')
            else:
                data = {'message': 'You don\'t have rights to delete comment'}
                response = HttpResponse(json.dumps(data),
                                        content_type='application/json')
                response.status_code = 400
                return response
        data = {'message': "%s deleted" % status}
        return HttpResponse(json.dumps(data), content_type='application/json')
    else:
        raise Http404
コード例 #8
0
def add_comment_jx(request, ticket_id):
    if request.is_ajax() and request.POST:
        if request.POST.get('message_text'):
            """Check if we can add comment trought get_rights_for_ticket"""
            user_object_rights = rights.get_rights_for_ticket(
                user=request.user, queue=None, ticket_id=ticket_id)
            if user_object_rights.can_comment or request.user.is_superuser:
                message_data = request.POST.get('message_text')
                status = save_comment(request=request,
                                      comment_data=message_data,
                                      private_data=False,
                                      ticket_data=ticket_id)
                data = {'message': "%s added" % status}
                return HttpResponse(json.dumps(data),
                                    content_type='application/json')
            else:
                data = {'message': 'You don\'t have rights to comment'}
                response = HttpResponse(json.dumps(data),
                                        content_type='application/json')
                response.status_code = 400
                return response
    else:
        raise Http404
コード例 #9
0
def add_microtask_jx(request, ticket_id=None):
    if request.is_ajax() and request.POST:
        '''if mk_id exists'''
        if request.POST.get('id_mk'):
            if (request.POST.get('subject_text')
                    and request.POST.get('body_text')
                    and request.POST.get('state_id')):
                user_obj = request.user
                '''Check if we can add comment trought get_rights_for_ticket'''
                user_object_rights = rights.get_rights_for_ticket(
                    user=user_obj, queue=None, ticket_id=ticket_id)
                if user_object_rights.can_edit or request.user.is_superuser:
                    mk_clean = request.POST.get('id_mk')
                    subject_clean = request.POST.get('subject_text')
                    body_clean = request.POST.get('body_text')
                    state_clean = State.objects.get(
                        id=int(request.POST.get('state_id')))
                    percentage_clean = request.POST.get('percentage_num')
                    status = update_microtask(request=request,
                                              subject_data=subject_clean,
                                              body_data=body_clean,
                                              state_data=state_clean,
                                              percentage_data=percentage_clean,
                                              mk_data=mk_clean)
                    data = {'message': "%s added" % status}
                    return HttpResponse(json.dumps(data),
                                        content_type='application/json')
                else:
                    data = {'message': 'Some fields missing'}
                    response = HttpResponse(json.dumps(data),
                                            content_type='application/json')
                    response.status_code = 400
                    return response
            else:
                data = {'message': 'You don\'t have rights to comment'}
                response = HttpResponse(json.dumps(data),
                                        content_type='application/json')
                response.status_code = 400
                return response
        else:
            if (request.POST.get('subject_text')
                    and request.POST.get('body_text')
                    and request.POST.get('state_id')):
                user_obj = request.user
                '''Check if we can add comment trought get_rights_for_ticket'''
                user_object_rights = rights.get_rights_for_ticket(
                    user=user_obj, queue=None, ticket_id=ticket_id)
                if user_object_rights.can_edit or request.user.is_superuser:
                    subject_clean = request.POST.get('subject_text')
                    body_clean = request.POST.get('body_text')
                    state_clean = State.objects.get(
                        id=int(request.POST.get('state_id')))
                    percentage_clean = request.POST.get('percentage_num')
                    status = save_microtask(request=request,
                                            subject_data=subject_clean,
                                            body_data=body_clean,
                                            state_data=state_clean,
                                            percentage_data=percentage_clean,
                                            ticket_data=ticket_id)
                    data = {'message': "%s added" % status}
                    return HttpResponse(json.dumps(data),
                                        content_type='application/json')
                else:
                    data = {'message': 'Some fields missing'}
                    response = HttpResponse(json.dumps(data),
                                            content_type='application/json')
                    response.status_code = 400
                    return response
            else:
                data = {'message': 'You don\'t have rights to comment'}
                response = HttpResponse(json.dumps(data),
                                        content_type='application/json')
                response.status_code = 400
                return response
    else:
        raise Http404