def create_instance(self, request, *args, **kwargs): ticket = Ticket(creator=request.user.get_profile()) if not request.agent: if request.queue: ticket.queue = request.queue if request.queue.default_ticket_status: ticket.status = request.queue.default_ticket_status else: try: conf = ModuleSetting.get_for_module('maker.services', 'default_ticket_status')[0] ticket.status = TicketStatus.objects.get(pk=long(conf.value)) except: if 'statuses' in request.context: try: ticket.status = request.context['statuses'][0] except: pass ticket.priority = request.queue.default_ticket_priority ticket.service = request.queue.default_service else: try: conf = ModuleSetting.get_for_module('maker.services', 'default_ticket_status')[0] ticket.status = TicketStatus.objects.get(pk=long(conf.value)) except: if 'statuses' in request.context: try: ticket.status = request.context['statuses'][0] except: pass try: conf = ModuleSetting.get_for_module('maker.services', 'default_ticket_queue')[0] ticket.queue = TicketQueue.objects.get(pk=long(conf.value)) except: if 'queues' in request.context: try: ticket.queue = request.context['queues'][0] except: pass try: ticket.caller = request.user.get_profile().get_contact() except: pass return ticket
def ticket_add(request, queue_id=None, response_format='html'): "Ticket add" context = _get_default_context(request) agent = context['agent'] profile = request.user.get_profile() queue = None if queue_id: queue = get_object_or_404(TicketQueue, pk=queue_id) if not profile.has_permission(queue, mode='x'): queue = None if request.POST: if not 'cancel' in request.POST: ticket = Ticket(creator=profile) if not agent: if queue: ticket.queue = queue if queue.default_ticket_status: ticket.status = queue.default_ticket_status else: try: conf = ModuleSetting.get_for_module('maker.services', 'default_ticket_status')[0] ticket.status = TicketStatus.objects.get(pk=long(conf.value)) except: if 'statuses' in context: try: ticket.status = context['statuses'][0] except: pass ticket.priority = queue.default_ticket_priority ticket.service = queue.default_service else: try: conf = ModuleSetting.get_for_module('maker.services', 'default_ticket_status')[0] ticket.status = TicketStatus.objects.get(pk=long(conf.value)) except: if 'statuses' in context: try: ticket.status = context['statuses'][0] except: pass try: conf = ModuleSetting.get_for_module('maker.services', 'default_ticket_queue')[0] ticket.queue = TicketQueue.objects.get(pk=long(conf.value)) except: if 'queues' in context: try: ticket.queue = context['queues'][0] except: pass try: ticket.caller = profile.get_contact() except: pass form = TicketForm(profile, queue, agent, request.POST, instance=ticket) if form.is_valid(): ticket = form.save() ticket.set_user_from_request(request) return HttpResponseRedirect(reverse('services_ticket_view', args=[ticket.id])) else: return HttpResponseRedirect(reverse('services')) else: form = TicketForm(request.user.get_profile(), queue, agent) context.update({'form': form, 'queue': queue}) return render_to_response('services/ticket_add', context, context_instance=RequestContext(request), response_format=response_format)