Skip to content

Commit

Permalink
Merge branch 'atmaniak-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
rossp committed Apr 27, 2015
2 parents ffb6243 + 70c57f9 commit 525ffce
Show file tree
Hide file tree
Showing 10 changed files with 198 additions and 171 deletions.
6 changes: 4 additions & 2 deletions helpdesk/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
forms.py - Definitions of newforms-based forms for creating and maintaining
tickets.
"""

from StringIO import StringIO
try:
from StringIO import StringIO
except ImportError:
from io import StringIO

from django import forms
from django.forms import extras
Expand Down
247 changes: 125 additions & 122 deletions helpdesk/migrations/0001_initial.py

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions helpdesk/migrations/0003_populate_usersettings.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@

def picke_settings(data):
"""Pickling as defined at migration's creation time"""
import cPickle
try:
import pickle
except ImportError:
import cPickle as pickle
from helpdesk.lib import b64encode
return b64encode(cPickle.dumps(data))
return b64encode(pickle.dumps(data))


# https://docs.djangoproject.com/en/1.7/topics/migrations/#data-migrations
Expand Down
18 changes: 12 additions & 6 deletions helpdesk/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,7 @@ def attachment_path(instance, filename):
att_path = os.path.join(settings.MEDIA_ROOT, path)
if settings.DEFAULT_FILE_STORAGE == "django.core.files.storage.FileSystemStorage":
if not os.path.exists(att_path):
os.makedirs(att_path, 0777)
os.makedirs(att_path, 0o777)
return os.path.join(path, filename)


Expand Down Expand Up @@ -1003,17 +1003,23 @@ class UserSettings(models.Model):

def _set_settings(self, data):
# data should always be a Python dictionary.
import cPickle
try:
import pickle
except ImportError:
import cPickle as pickle
from helpdesk.lib import b64encode
self.settings_pickled = b64encode(cPickle.dumps(data))
self.settings_pickled = b64encode(pickle.dumps(data))

def _get_settings(self):
# return a python dictionary representing the pickled data.
import cPickle
try:
import pickle
except ImportError:
import cPickle as pickle
from helpdesk.lib import b64decode
try:
return cPickle.loads(b64decode(str(self.settings_pickled)))
except cPickle.UnpicklingError:
return pickle.loads(b64decode(str(self.settings_pickled)))
except pickle.UnpicklingError:
return {}

settings = property(_get_settings, _set_settings)
Expand Down
1 change: 1 addition & 0 deletions helpdesk/templates/helpdesk/public_base.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{% load i18n %}
{% load url from future %}
{% load load_helpdesk_settings %}
{% with request|load_helpdesk_settings as helpdesk_settings %}
<html>
Expand Down
4 changes: 3 additions & 1 deletion helpdesk/templates/helpdesk/public_homepage.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
{% extends "helpdesk/public_base.html" %}{% load i18n bootstrap %}
{% extends "helpdesk/public_base.html" %}
{% load i18n bootstrap %}
{% load url from future %}

{% block helpdesk_body %}

Expand Down
12 changes: 6 additions & 6 deletions helpdesk/templatetags/load_helpdesk_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
from helpdesk import settings as helpdesk_settings_config

def load_helpdesk_settings(request):
try:
# try:
return helpdesk_settings_config
except Exception, e:
import sys
print >> sys.stderr, "'load_helpdesk_settings' template tag (django-helpdesk) crashed with following error:"
print >> sys.stderr, e
return ''
# except Exception, e:
# import sys
# print >> sys.stderr, "'load_helpdesk_settings' template tag (django-helpdesk) crashed with following error:"
# print >> sys.stderr, e
# return ''

register = Library()
register.filter('load_helpdesk_settings', load_helpdesk_settings)
12 changes: 6 additions & 6 deletions helpdesk/templatetags/saved_queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@


def saved_queries(user):
try:
# try:
user_saved_queries = SavedSearch.objects.filter(Q(user=user) | Q(shared__exact=True))
return user_saved_queries
except Exception, e:
import sys
print >> sys.stderr, "'saved_queries' template tag (django-helpdesk) crashed with following error:"
print >> sys.stderr, e
return ''
# except Exception, e:
# import sys
# print >> sys.stderr, "'saved_queries' template tag (django-helpdesk) crashed with following error:"
# print >> sys.stderr, e
# return ''

register = Library()
register.filter('saved_queries', saved_queries)
6 changes: 3 additions & 3 deletions helpdesk/views/public.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,11 @@ def view_ticket(request):

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

if request.GET.has_key('close') and ticket.status == Ticket.RESOLVED_STATUS:
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.
Expand Down Expand Up @@ -134,7 +134,7 @@ def view_ticket(request):

def change_language(request):
return_to = ''
if request.GET.has_key('return_to'):
if 'return_to' in request.GET:
return_to = request.GET['return_to']

return render_to_response('helpdesk/public_change_language.html',
Expand Down
56 changes: 33 additions & 23 deletions helpdesk/views/staff.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
views/staff.py - The bulk of the application - provides most business logic and
renders all staff-facing views.
"""

from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible
from datetime import datetime, timedelta
import sys

Expand Down Expand Up @@ -196,7 +197,7 @@ def followup_delete(request, ticket_id, followup_id):
def view_ticket(request, ticket_id):
ticket = get_object_or_404(Ticket, id=ticket_id)

if request.GET.has_key('take'):
if 'take' in request.GET:
# Allow the user to assign the ticket to themselves whilst viewing it.

# Trick the update_ticket() view into thinking it's being called with
Expand All @@ -209,14 +210,14 @@ def view_ticket(request, ticket_id):
}
return update_ticket(request, ticket_id)

if request.GET.has_key('subscribe'):
if 'subscribe' in request.GET:
# Allow the user to subscribe him/herself to the ticket whilst viewing it.
ticketcc_string, SHOW_SUBSCRIBE = return_ticketccstring_and_show_subscribe(request.user, ticket)
if SHOW_SUBSCRIBE:
subscribe_staff_member_to_ticket(ticket, request.user)
return HttpResponseRedirect(reverse('helpdesk_view', args=[ticket.id]))

if request.GET.has_key('close') and ticket.status == Ticket.RESOLVED_STATUS:
if 'close' in request.GET and ticket.status == Ticket.RESOLVED_STATUS:
if not ticket.assigned_to:
owner = 0
else:
Expand Down Expand Up @@ -702,15 +703,18 @@ def ticket_list(request):
if not (saved_query.shared or saved_query.user == request.user):
return HttpResponseRedirect(reverse('helpdesk_list'))

import cPickle
try:
import pickle
except ImportError:
import cPickle as pickle
from helpdesk.lib import b64decode
query_params = cPickle.loads(b64decode(str(saved_query.query)))
elif not ( request.GET.has_key('queue')
or request.GET.has_key('assigned_to')
or request.GET.has_key('status')
or request.GET.has_key('q')
or request.GET.has_key('sort')
or request.GET.has_key('sortreverse')
query_params = pickle.loads(b64decode(str(saved_query.query)))
elif not ( 'queue' in request.GET
or 'assigned_to' in request.GET
or 'status' in request.GET
or 'q' in request.GET
or 'sort' in request.GET
or 'sortreverse' in request.GET
):

# Fall-back if no querying is being done, force the list to only
Expand Down Expand Up @@ -799,13 +803,16 @@ def ticket_list(request):
tickets = ticket_paginator.page(ticket_paginator.num_pages)

search_message = ''
if context.has_key('query') and settings.DATABASES['default']['ENGINE'].endswith('sqlite'):
if 'query' in context and settings.DATABASES['default']['ENGINE'].endswith('sqlite'):
search_message = _('<p><strong>Note:</strong> Your keyword search is case sensitive because of your database. This means the search will <strong>not</strong> be accurate. By switching to a different database system you will gain better searching! For more information, read the <a href="http://docs.djangoproject.com/en/dev/ref/databases/#sqlite-string-matching">Django Documentation on string matching in SQLite</a>.')


import cPickle
try:
import pickle
except ImportError:
import cPickle as pickle
from helpdesk.lib import b64encode
urlsafe_query = b64encode(cPickle.dumps(query_params))
urlsafe_query = b64encode(pickle.dumps(query_params))

user_saved_queries = SavedSearch.objects.filter(Q(user=request.user) | Q(shared__exact=True))

Expand Down Expand Up @@ -864,7 +871,7 @@ def create_ticket(request):
initial_data = {}
if request.user.usersettings.settings.get('use_email_as_submitter', False) and request.user.email:
initial_data['submitter_email'] = request.user.email
if request.GET.has_key('queue'):
if 'queue' in request.GET:
initial_data['queue'] = request.GET['queue']

form = TicketForm(initial=initial_data)
Expand Down Expand Up @@ -966,9 +973,12 @@ def run_report(request, report):
if not (saved_query.shared or saved_query.user == request.user):
return HttpResponseRedirect(reverse('helpdesk_report_index'))

import cPickle
try:
import pickle
except ImportError:
import cPickle as pickle
from helpdesk.lib import b64decode
query_params = cPickle.loads(b64decode(str(saved_query.query)))
query_params = pickle.loads(b64decode(str(saved_query.query)))
report_queryset = apply_query(report_queryset, query_params)

from collections import defaultdict
Expand Down Expand Up @@ -1003,7 +1013,7 @@ def run_report(request, report):
if report == 'userpriority':
title = _('User by Priority')
col1heading = _('User')
possible_options = [t[1].__unicode__() for t in Ticket.PRIORITY_CHOICES]
possible_options = [t[1].__str__() for t in Ticket.PRIORITY_CHOICES]
charttype = 'bar'

elif report == 'userqueue':
Expand All @@ -1015,7 +1025,7 @@ def run_report(request, report):
elif report == 'userstatus':
title = _('User by Status')
col1heading = _('User')
possible_options = [s[1].__unicode__() for s in Ticket.STATUS_CHOICES]
possible_options = [s[1].__str__() for s in Ticket.STATUS_CHOICES]
charttype = 'bar'

elif report == 'usermonth':
Expand All @@ -1027,13 +1037,13 @@ def run_report(request, report):
elif report == 'queuepriority':
title = _('Queue by Priority')
col1heading = _('Queue')
possible_options = [t[1].__unicode__() for t in Ticket.PRIORITY_CHOICES]
possible_options = [t[1].__str__() for t in Ticket.PRIORITY_CHOICES]
charttype = 'bar'

elif report == 'queuestatus':
title = _('Queue by Status')
col1heading = _('Queue')
possible_options = [s[1].__unicode__() for s in Ticket.STATUS_CHOICES]
possible_options = [s[1].__str__() for s in Ticket.STATUS_CHOICES]
charttype = 'bar'

elif report == 'queuemonth':
Expand Down Expand Up @@ -1249,7 +1259,7 @@ def ticket_dependency_add(request, ticket_id):
if form.is_valid():
ticketdependency = form.save(commit=False)
ticketdependency.ticket = ticket
if ticketdependency.ticket <> ticketdependency.depends_on:
if ticketdependency.ticket != ticketdependency.depends_on:
ticketdependency.save()
return HttpResponseRedirect(reverse('helpdesk_view', args=[ticket.id]))
else:
Expand Down

0 comments on commit 525ffce

Please sign in to comment.