summaryrefslogtreecommitdiff
path: root/postgresqleu/util
diff options
context:
space:
mode:
Diffstat (limited to 'postgresqleu/util')
-rw-r--r--postgresqleu/util/admin.py2
-rw-r--r--postgresqleu/util/backendforms.py9
-rw-r--r--postgresqleu/util/backendlookups.py4
-rw-r--r--postgresqleu/util/backendviews.py10
-rw-r--r--postgresqleu/util/db.py6
-rw-r--r--postgresqleu/util/diffablemodel.py6
-rw-r--r--postgresqleu/util/forms.py12
-rw-r--r--postgresqleu/util/magic.py2
-rwxr-xr-xpostgresqleu/util/misc/baseinvoice.py2
-rw-r--r--postgresqleu/util/payment/adyen.py4
-rw-r--r--postgresqleu/util/validators.py2
-rw-r--r--postgresqleu/util/widgets.py2
12 files changed, 31 insertions, 30 deletions
diff --git a/postgresqleu/util/admin.py b/postgresqleu/util/admin.py
index f40db7c4..bd2edb8f 100644
--- a/postgresqleu/util/admin.py
+++ b/postgresqleu/util/admin.py
@@ -1,7 +1,7 @@
class SelectableWidgetAdminFormMixin(object):
def __init__(self, *args, **kwargs):
super(SelectableWidgetAdminFormMixin, self).__init__(*args, **kwargs)
- for fn in self.Meta.widgets.keys():
+ for fn in list(self.Meta.widgets.keys()):
self.fields[fn].widget.can_add_related = False
self.fields[fn].widget.can_change_related = False
self.fields[fn].widget.can_delete_related = False
diff --git a/postgresqleu/util/backendforms.py b/postgresqleu/util/backendforms.py
index 4a1c8587..982f6b30 100644
--- a/postgresqleu/util/backendforms.py
+++ b/postgresqleu/util/backendforms.py
@@ -6,6 +6,7 @@ from postgresqleu.util.forms import ConcurrentProtectedModelForm
from postgresqleu.util.widgets import HtmlDateInput
import datetime
+from functools import reduce
class _NewFormDataField(django.forms.Field):
@@ -74,7 +75,7 @@ class BackendForm(ConcurrentProtectedModelForm):
if missing:
raise Exception("ERROR: fields %s are not in a fieldset" % ", ".join(missing))
- for k, v in self.fields.items():
+ for k, v in list(self.fields.items()):
# Adjust widgets
if isinstance(v, django.forms.fields.DateField):
v.widget = HtmlDateInput()
@@ -93,7 +94,7 @@ class BackendForm(ConcurrentProtectedModelForm):
MaxValueValidator(self.conference.enddate),
])
- for field, vattype in self.vat_fields.items():
+ for field, vattype in list(self.vat_fields.items()):
self.fields[field].widget.attrs['class'] = 'backend-vat-field backend-vat-{0}-field'.format(vattype)
for field in self.readonly_fields:
@@ -103,7 +104,7 @@ class BackendForm(ConcurrentProtectedModelForm):
if not self.selectize_multiple_fields:
return
- for field, lookup in self.selectize_multiple_fields.items():
+ for field, lookup in list(self.selectize_multiple_fields.items()):
# If this is a postback of a selectize field, it may contain ids that are not currently
# stored in the field. They must still be among the *allowed* values of course, which
# are handled by the existing queryset on the field.
@@ -114,7 +115,7 @@ class BackendForm(ConcurrentProtectedModelForm):
vals = [o.pk for o in getattr(self.instance, field).all()]
else:
vals = []
- if 'data' in kwargs and unicode(field) in kwargs['data']:
+ if 'data' in kwargs and str(field) in kwargs['data']:
vals.extend([int(x) for x in kwargs['data'].getlist(field)])
self.fields[field].widget.attrs['data-selecturl'] = lookup.url
self.fields[field].queryset = self.fields[field].queryset.filter(pk__in=set(vals))
diff --git a/postgresqleu/util/backendlookups.py b/postgresqleu/util/backendlookups.py
index bf877e1a..44b1b2fb 100644
--- a/postgresqleu/util/backendlookups.py
+++ b/postgresqleu/util/backendlookups.py
@@ -44,14 +44,14 @@ class GeneralAccountLookup(LookupBase):
@property
def label_from_instance(self):
- return lambda x: u'{0} {1} ({2})'.format(x.first_name, x.last_name, x.username)
+ return lambda x: '{0} {1} ({2})'.format(x.first_name, x.last_name, x.username)
@classmethod
def get_values(self, query):
return [
{
'id': u.id,
- 'value': u'{0} {1} ({2})'.format(u.first_name, u.last_name, u.username),
+ 'value': '{0} {1} ({2})'.format(u.first_name, u.last_name, u.username),
'email': u.email,
}
for u in User.objects.filter(
diff --git a/postgresqleu/util/backendviews.py b/postgresqleu/util/backendviews.py
index 13bc187b..c6696571 100644
--- a/postgresqleu/util/backendviews.py
+++ b/postgresqleu/util/backendviews.py
@@ -80,7 +80,7 @@ def backend_process_form(request, urlname, formclass, id, cancel_url='../', save
instance = instancemaker()
# Set initial values on newly created instance, if any are set
- for k, v in formclass.get_initial().items():
+ for k, v in list(formclass.get_initial().items()):
setattr(instance, k, v)
else:
if bypass_conference_filter:
@@ -100,8 +100,8 @@ def backend_process_form(request, urlname, formclass, id, cancel_url='../', save
if to_delete:
to_delete = [d for d in flatten_list(to_delete[0]) if d._meta.model_name not in formclass.auto_cascade_delete_to]
if to_delete:
- pieces = [unicode(to_delete[n]) for n in range(0, min(5, len(to_delete))) if not isinstance(to_delete[n], list)]
- extra_error = u"This {0} cannot be deleted. It would have resulted in the following other objects also being deleted: {1}".format(formclass.Meta.model._meta.verbose_name, u', '.join(pieces))
+ pieces = [str(to_delete[n]) for n in range(0, min(5, len(to_delete))) if not isinstance(to_delete[n], list)]
+ extra_error = "This {0} cannot be deleted. It would have resulted in the following other objects also being deleted: {1}".format(formclass.Meta.model._meta.verbose_name, ', '.join(pieces))
else:
messages.info(request, "{0} {1} deleted.".format(formclass.Meta.model._meta.verbose_name.capitalize(), instance))
instance.delete()
@@ -176,7 +176,7 @@ def backend_process_form(request, urlname, formclass, id, cancel_url='../', save
'helplink': form.helplink,
'allow_delete': allow_delete and instance.pk,
'adminurl': adminurl,
- 'linked': [(url, handler, handler.get_list(form.instance)) for url, handler in form.linked_objects.items() if form.instance],
+ 'linked': [(url, handler, handler.get_list(form.instance)) for url, handler in list(form.linked_objects.items()) if form.instance],
})
@@ -350,7 +350,7 @@ def backend_handle_copy_previous(request, formclass, restpieces, conference):
sourceconf = get_authenticated_conference(request, confid=sourceconfid)
if request.method == "POST":
- idlist = sorted([int(k[2:]) for k, v in request.POST.items() if k.startswith('c_') and v == '1'])
+ idlist = sorted([int(k[2:]) for k, v in list(request.POST.items()) if k.startswith('c_') and v == '1'])
if formclass.copy_transform_form:
# First validate the transform form
transform_form = formclass.copy_transform_form(conference, sourceconf, data=request.POST)
diff --git a/postgresqleu/util/db.py b/postgresqleu/util/db.py
index 2af6661b..34630db8 100644
--- a/postgresqleu/util/db.py
+++ b/postgresqleu/util/db.py
@@ -17,7 +17,7 @@ def exec_to_dict(query, params=None):
curs = connection.cursor()
curs.execute(query, params)
columns = [col[0] for col in curs.description]
- return [dict(zip(columns, row))for row in curs.fetchall()]
+ return [dict(list(zip(columns, row)))for row in curs.fetchall()]
def exec_to_scalar(query, params=None):
@@ -41,7 +41,7 @@ def exec_to_keyed_dict(query, params=None):
curs = connection.cursor()
curs.execute(query, params)
columns = [col[0] for col in curs.description]
- return {r[columns[0]]: r for r in (dict(zip(columns, row))for row in curs.fetchall())}
+ return {r[columns[0]]: r for r in (dict(list(zip(columns, row)))for row in curs.fetchall())}
def exec_to_grouped_dict(query, params=None):
@@ -57,7 +57,7 @@ def exec_to_grouped_dict(query, params=None):
full[last] = curr
curr = []
last = row[0]
- curr.append(dict(zip(columns, row[1:])))
+ curr.append(dict(list(zip(columns, row[1:]))))
if last:
full[last] = curr
return full
diff --git a/postgresqleu/util/diffablemodel.py b/postgresqleu/util/diffablemodel.py
index 94ad3e5f..5e31f6d7 100644
--- a/postgresqleu/util/diffablemodel.py
+++ b/postgresqleu/util/diffablemodel.py
@@ -16,16 +16,16 @@ class DiffableModel(object):
manytomanyfieldnames = [f.name for f in self._meta.many_to_many]
d1 = self.__initial
d2 = self._dict
- diffs = dict([(k, (v, d2[k])) for k, v in d1.items() if v != d2[k]])
+ diffs = dict([(k, (v, d2[k])) for k, v in list(d1.items()) if v != d2[k]])
# Foreign key lookups
- for k, v in diffs.items():
+ for k, v in list(diffs.items()):
if type(self._meta.get_field(k)) is django.db.models.fields.related.ForeignKey:
# If it's a foreign key, look up the name again on ourselves.
# Since we only care about the *new* value, it's easy enough.
diffs[k] = (v[0], getattr(self, k))
# Many to many lookups
if hasattr(self, 'map_manytomany_for_diff'):
- for k, v in diffs.items():
+ for k, v in list(diffs.items()):
if k in manytomanyfieldnames and k in self.map_manytomany_for_diff:
# Try to show the display name instead here
newvalue = getattr(self, self.map_manytomany_for_diff[k])
diff --git a/postgresqleu/util/forms.py b/postgresqleu/util/forms.py
index c89db491..7218f864 100644
--- a/postgresqleu/util/forms.py
+++ b/postgresqleu/util/forms.py
@@ -3,7 +3,7 @@ from django.forms import ValidationError
from django.core.signing import Signer, BadSignature
from django.contrib.postgres.fields import ArrayField
-import cPickle
+import pickle
import base64
from itertools import groupby
@@ -19,10 +19,10 @@ class ConcurrentProtectedModelForm(forms.ModelForm):
def _filter_initial(self):
# self.initial will include things given in the URL after ?, so filter it to
# only include items that are actually form fields.
- return {k: v for k, v in self.initial.items() if k in self.fields.keys()}
+ return {k: v for k, v in list(self.initial.items()) if k in list(self.fields.keys())}
def update_protected_fields(self):
- self.fields['_validator'].initial = Signer().sign(base64.urlsafe_b64encode(cPickle.dumps(self._filter_initial(), -1)))
+ self.fields['_validator'].initial = Signer().sign(base64.urlsafe_b64encode(pickle.dumps(self._filter_initial(), -1)))
def __init__(self, *args, **kwargs):
r = super(ConcurrentProtectedModelForm, self).__init__(*args, **kwargs)
@@ -43,15 +43,15 @@ class ConcurrentProtectedModelForm(forms.ModelForm):
try:
s = Signer().unsign(self.cleaned_data['_validator'])
b = base64.urlsafe_b64decode(s.encode('utf8'))
- d = cPickle.loads(b)
- for k, v in d.items():
+ d = pickle.loads(b)
+ for k, v in list(d.items()):
if i[k] != v:
raise ValidationError("Concurrent modification of field {0}. Please reload the form and try again.".format(k))
except BadSignature:
raise ValidationError("Form has been tampered with!")
except TypeError:
raise ValidationError("Bad serialized form state")
- except cPickle.UnpicklingError:
+ except pickle.UnpicklingError:
raise ValidationError("Bad serialized python form state")
return data
diff --git a/postgresqleu/util/magic.py b/postgresqleu/util/magic.py
index d971720c..a264b9cb 100644
--- a/postgresqleu/util/magic.py
+++ b/postgresqleu/util/magic.py
@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+
import magic
# Globally load and cache the magicdb
diff --git a/postgresqleu/util/misc/baseinvoice.py b/postgresqleu/util/misc/baseinvoice.py
index 406559eb..f66deb55 100755
--- a/postgresqleu/util/misc/baseinvoice.py
+++ b/postgresqleu/util/misc/baseinvoice.py
@@ -91,7 +91,7 @@ class PDFBase(object):
self._draw_multiline_aligned(self.sendertext,
cm(2), cm(23.5), cm(9), cm(4))
- self._draw_multiline_aligned(u"To:\n%s" % self.recipient,
+ self._draw_multiline_aligned("To:\n%s" % self.recipient,
cm(11), cm(23.5), cm(9), cm(4))
p = self.canvas.beginPath()
diff --git a/postgresqleu/util/payment/adyen.py b/postgresqleu/util/payment/adyen.py
index 8813f762..797da46e 100644
--- a/postgresqleu/util/payment/adyen.py
+++ b/postgresqleu/util/payment/adyen.py
@@ -24,10 +24,10 @@ def _escapeVal(val):
def calculate_signature(param):
- param = OrderedDict(sorted(param.items(), key=lambda t: t[0]))
+ param = OrderedDict(sorted(list(param.items()), key=lambda t: t[0]))
if 'merchantSig' in param:
del param['merchantSig']
- str = ':'.join(map(_escapeVal, param.keys() + param.values()))
+ str = ':'.join(map(_escapeVal, list(param.keys()) + list(param.values())))
hm = hmac.new(binascii.a2b_hex(settings.ADYEN_SIGNKEY),
str,
hashlib.sha256)
diff --git a/postgresqleu/util/validators.py b/postgresqleu/util/validators.py
index adda510c..1b6bfeb3 100644
--- a/postgresqleu/util/validators.py
+++ b/postgresqleu/util/validators.py
@@ -67,7 +67,7 @@ def validate_json_structure(config, structure):
raise ValidationError("Keys {0} are not allowed".format(", ".join(["->".join(path + [m]) for m in extra])))
# Keys are correct, validate datatypes
- for k, v in config.items():
+ for k, v in list(config.items()):
fullkey = "->".join(path + [k])
# Dicts don't have __name__
if type(structure[k]) == dict:
diff --git a/postgresqleu/util/widgets.py b/postgresqleu/util/widgets.py
index 071d09aa..bb12e74e 100644
--- a/postgresqleu/util/widgets.py
+++ b/postgresqleu/util/widgets.py
@@ -33,7 +33,7 @@ class RequiredFileUploadWidget(forms.FileInput):
output.append('</a><br/>')
output.append("Upload new file: ")
output.append(super(RequiredFileUploadWidget, self).render(name, value, attrs))
- return mark_safe(u''.join(output))
+ return mark_safe(''.join(output))
class PrettyPrintJsonWidget(forms.Textarea):