forked from extern/django-helpdesk
77 lines
1.8 KiB
Python
77 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
import sys
|
|
from django.contrib.auth import get_user_model
|
|
|
|
from helpdesk.models import Ticket, Queue, UserSettings
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
def get_user(username='helpdesk.staff',
|
|
password='password',
|
|
is_staff=False,
|
|
is_superuser=False):
|
|
try:
|
|
user = User.objects.get(username=username)
|
|
except User.DoesNotExist:
|
|
user = User.objects.create_user(username=username,
|
|
password=password,
|
|
email='%s@example.com' % username)
|
|
user.is_staff = is_staff
|
|
user.is_superuser = is_superuser
|
|
user.save()
|
|
else:
|
|
user.set_password(password)
|
|
user.save()
|
|
return user
|
|
|
|
|
|
def get_staff_user():
|
|
return get_user(is_staff=True)
|
|
|
|
|
|
def reload_urlconf(urlconf=None):
|
|
|
|
from importlib import reload
|
|
|
|
if urlconf is None:
|
|
from django.conf import settings
|
|
|
|
urlconf = settings.ROOT_URLCONF
|
|
|
|
if HELPDESK_URLCONF in sys.modules:
|
|
reload(sys.modules[HELPDESK_URLCONF])
|
|
|
|
if urlconf in sys.modules:
|
|
reload(sys.modules[urlconf])
|
|
|
|
from django.urls import clear_url_caches
|
|
clear_url_caches()
|
|
|
|
|
|
def create_ticket(**kwargs):
|
|
q = kwargs.get('queue', None)
|
|
if q is None:
|
|
try:
|
|
q = Queue.objects.all()[0]
|
|
except IndexError:
|
|
q = Queue.objects.create(title='Test Q', slug='test', )
|
|
data = {
|
|
'title': "I wish to register a complaint",
|
|
'queue': q,
|
|
}
|
|
data.update(kwargs)
|
|
return Ticket.objects.create(**data)
|
|
|
|
|
|
HELPDESK_URLCONF = 'helpdesk.urls'
|
|
|
|
|
|
def print_response(response, stdout=False):
|
|
content = response.content.decode()
|
|
if stdout:
|
|
print(content)
|
|
else:
|
|
with open("response.html", "w") as f: # pragma: no cover
|
|
f.write(content) # pragma: no cover
|