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
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())
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())
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
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')
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")
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
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
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