summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2018-12-14 14:04:33 +0000
committerMagnus Hagander2018-12-14 14:04:33 +0000
commitae28c2fec8398c753d6d82c3ca65bca067734802 (patch)
treeb516bd8757a55c5d4af3483613e6189deb4bd2f3
parent52f065bb9bbe9a9e6f648dc31c25ba3af147ac85 (diff)
Fix spaces before/after comma and colon
Mostly not important, but getting rid of the PIP warnings will help catch errors in the future.
-rw-r--r--postgresqleu/accounting/forms.py4
-rw-r--r--postgresqleu/accounting/models.py4
-rw-r--r--postgresqleu/accounting/views.py6
-rw-r--r--postgresqleu/adyen/management/commands/process_adyen_reports.py2
-rwxr-xr-xpostgresqleu/adyen/management/commands/send_adyen_logreport.py2
-rw-r--r--postgresqleu/adyen/util.py2
-rwxr-xr-xpostgresqleu/braintreepayment/management/commands/send_braintree_logreport.py2
-rwxr-xr-xpostgresqleu/braintreepayment/management/commands/update_braintree_transactions.py2
-rw-r--r--postgresqleu/confreg/admin.py22
-rw-r--r--postgresqleu/confreg/backendforms.py22
-rw-r--r--postgresqleu/confreg/backendviews.py10
-rw-r--r--postgresqleu/confreg/feedback.py4
-rw-r--r--postgresqleu/confreg/forms.py22
-rwxr-xr-xpostgresqleu/confreg/jinjabadge.py6
-rw-r--r--postgresqleu/confreg/jinjafunc.py6
-rw-r--r--postgresqleu/confreg/management/commands/confreg_expire_additionaloptions.py2
-rw-r--r--postgresqleu/confreg/mobileviews.py2
-rw-r--r--postgresqleu/confreg/models.py46
-rw-r--r--postgresqleu/confreg/pdfschedule.py32
-rw-r--r--postgresqleu/confreg/regtypes.py4
-rw-r--r--postgresqleu/confreg/reporting.py12
-rw-r--r--postgresqleu/confreg/reportingforms.py2
-rw-r--r--postgresqleu/confreg/reports.py14
-rw-r--r--postgresqleu/confreg/views.py42
-rw-r--r--postgresqleu/confsponsor/backendforms.py2
-rw-r--r--postgresqleu/confsponsor/benefitclasses/attendeelist.py2
-rw-r--r--postgresqleu/confsponsor/benefitclasses/requireclaiming.py2
-rw-r--r--postgresqleu/confsponsor/benefits.py2
-rw-r--r--postgresqleu/confsponsor/models.py2
-rw-r--r--postgresqleu/confwiki/admin.py6
-rw-r--r--postgresqleu/confwiki/forms.py8
-rw-r--r--postgresqleu/confwiki/models.py6
-rw-r--r--postgresqleu/confwiki/views.py6
-rw-r--r--postgresqleu/elections/forms.py8
-rw-r--r--postgresqleu/invoices/forms.py6
-rw-r--r--postgresqleu/invoices/management/commands/setup_payment_providers.py12
-rw-r--r--postgresqleu/invoices/models.py4
-rw-r--r--postgresqleu/invoices/templatetags/util.py4
-rw-r--r--postgresqleu/invoices/util.py6
-rw-r--r--postgresqleu/invoices/views.py14
-rw-r--r--postgresqleu/mailqueue/util.py4
-rw-r--r--postgresqleu/membership/views.py2
-rw-r--r--postgresqleu/newsevents/models.py2
-rwxr-xr-xpostgresqleu/paypal/management/commands/paypal_match.py22
-rw-r--r--postgresqleu/paypal/models.py2
-rw-r--r--postgresqleu/paypal/util.py2
-rw-r--r--postgresqleu/paypal/views.py22
-rw-r--r--postgresqleu/trustlypayment/api.py2
-rwxr-xr-xpostgresqleu/trustlypayment/management/commands/send_trustly_logreport.py2
-rw-r--r--postgresqleu/util/context_processors.py2
-rw-r--r--postgresqleu/util/db.py2
-rw-r--r--postgresqleu/util/diffablemodel.py4
-rw-r--r--postgresqleu/util/forms.py4
-rw-r--r--postgresqleu/util/jsonutil.py2
-rw-r--r--postgresqleu/util/management/commands/sessioninfo.py4
-rw-r--r--postgresqleu/util/messaging/twitter.py2
-rw-r--r--postgresqleu/util/middleware.py6
-rwxr-xr-xpostgresqleu/util/misc/pgeuinvoice.py54
-rw-r--r--postgresqleu/util/payment/adyen.py4
-rw-r--r--postgresqleu/util/payment/paypal.py14
-rw-r--r--postgresqleu/util/validators.py4
-rwxr-xr-xtools/accounting/oneoff/backfill_accounting.py6
-rwxr-xr-xtools/deploystatic/deploystatic.py4
63 files changed, 267 insertions, 267 deletions
diff --git a/postgresqleu/accounting/forms.py b/postgresqleu/accounting/forms.py
index 248f7815..1c39098a 100644
--- a/postgresqleu/accounting/forms.py
+++ b/postgresqleu/accounting/forms.py
@@ -21,8 +21,8 @@ def PositiveValidator(v):
raise ValidationError("Value must be a positive integer")
class JournalItemForm(forms.ModelForm):
- debit = forms.DecimalField(max_digits=10, decimal_places=2, validators=[PositiveValidator,], required=False)
- credit = forms.DecimalField(max_digits=10, decimal_places=2, validators=[PositiveValidator,], required=False)
+ debit = forms.DecimalField(max_digits=10, decimal_places=2, validators=[PositiveValidator, ], required=False)
+ credit = forms.DecimalField(max_digits=10, decimal_places=2, validators=[PositiveValidator, ], required=False)
def __init__(self, *args, **kwargs):
super(JournalItemForm, self).__init__(*args, **kwargs)
diff --git a/postgresqleu/accounting/models.py b/postgresqleu/accounting/models.py
index 8cee3bbb..fee3d9fc 100644
--- a/postgresqleu/accounting/models.py
+++ b/postgresqleu/accounting/models.py
@@ -62,7 +62,7 @@ class Year(models.Model):
class IncomingBalance(models.Model):
year = models.ForeignKey(Year, null=False, blank=False, on_delete=models.CASCADE)
account = models.ForeignKey(Account, to_field='num', null=False, blank=False, on_delete=models.CASCADE)
- amount = models.DecimalField(max_digits=10, decimal_places=2, null=False, blank=False, validators=[nonzero_validator,])
+ amount = models.DecimalField(max_digits=10, decimal_places=2, null=False, blank=False, validators=[nonzero_validator, ])
def __unicode__(self):
return "%s / %s" % (self.year_id, self.account)
@@ -98,7 +98,7 @@ class JournalEntry(models.Model):
class JournalItem(models.Model):
journal = models.ForeignKey(JournalEntry, null=False, blank=False, on_delete=models.CASCADE)
account = models.ForeignKey(Account, to_field='num', null=False, blank=False, on_delete=models.CASCADE)
- amount = models.DecimalField(max_digits=10, decimal_places=2, null=False, blank=False, validators=[nonzero_validator,])
+ amount = models.DecimalField(max_digits=10, decimal_places=2, null=False, blank=False, validators=[nonzero_validator, ])
object = models.ForeignKey(Object, null=True, blank=True, on_delete=models.CASCADE)
description = models.CharField(max_length=200, null=False, blank=False)
diff --git a/postgresqleu/accounting/views.py b/postgresqleu/accounting/views.py
index 01b1c5e3..700308f7 100644
--- a/postgresqleu/accounting/views.py
+++ b/postgresqleu/accounting/views.py
@@ -96,7 +96,7 @@ def new(request, year):
lastentry = JournalEntry.objects.filter(year=year).order_by('-date')[0]
d = lastentry.date
except IndexError:
- d = date(year,1,1)
+ d = date(year, 1, 1)
year = get_object_or_404(Year, year=year)
highseq = JournalEntry.objects.filter(year=year).aggregate(Max('seq'))['seq__max']
@@ -327,7 +327,7 @@ SELECT ac.name AS acname, ag.name AS agname, anum, a.name,
else:
# Ok, let's do this :)
# Create a new year if we have to
- (nextyear, created) = Year.objects.get_or_create(year=year.year + 1, defaults={'isopen':True})
+ (nextyear, created) = Year.objects.get_or_create(year=year.year + 1, defaults={'isopen': True})
# Start by transferring this years result
IncomingBalance(year=nextyear,
@@ -406,7 +406,7 @@ def report(request, year, reporttype):
enddate = date(year.year, 12, 31)
else:
# Yes, this is ugly indeed :)
- enddate = date(9999,12,31)
+ enddate = date(9999, 12, 31)
if request.GET.has_key('io') and request.GET['io'] == '1':
includeopen = True
diff --git a/postgresqleu/adyen/management/commands/process_adyen_reports.py b/postgresqleu/adyen/management/commands/process_adyen_reports.py
index 173510a4..30320bf1 100644
--- a/postgresqleu/adyen/management/commands/process_adyen_reports.py
+++ b/postgresqleu/adyen/management/commands/process_adyen_reports.py
@@ -156,7 +156,7 @@ class Command(BaseCommand):
return 'AAA'
return a[0]
- msg = "\n".join(["%-20s: %s" % (k,v) for k,v in sorted(types.iteritems(), key=sort_types)])
+ msg = "\n".join(["%-20s: %s" % (k, v) for k, v in sorted(types.iteritems(), key=sort_types)])
acct = report.notification.merchantAccountCode
# Generate an accounting record, iff we know what every row on the
diff --git a/postgresqleu/adyen/management/commands/send_adyen_logreport.py b/postgresqleu/adyen/management/commands/send_adyen_logreport.py
index 6ecdbaa7..88447a50 100755
--- a/postgresqleu/adyen/management/commands/send_adyen_logreport.py
+++ b/postgresqleu/adyen/management/commands/send_adyen_logreport.py
@@ -24,7 +24,7 @@ class Command(BaseCommand):
@transaction.atomic
def report_loglines(self):
- lines = list(AdyenLog.objects.filter(error=True,sent=False).order_by('timestamp'))
+ lines = list(AdyenLog.objects.filter(error=True, sent=False).order_by('timestamp'))
if len(lines):
sio = StringIO()
sio.write("The following error events have been logged by the Adyen integration:\n\n")
diff --git a/postgresqleu/adyen/util.py b/postgresqleu/adyen/util.py
index fd54293b..af72c0c0 100644
--- a/postgresqleu/adyen/util.py
+++ b/postgresqleu/adyen/util.py
@@ -41,7 +41,7 @@ def process_authorization(notification):
# Generate urls pointing back to this entry in the Adyen online
# system, for inclusion in accounting records.
- urls = ["https://ca-live.adyen.com/ca/ca/accounts/showTx.shtml?pspReference=%s&txType=Payment&accountKey=MerchantAccount.%s" % (notification.pspReference, notification.merchantAccountCode),]
+ urls = ["https://ca-live.adyen.com/ca/ca/accounts/showTx.shtml?pspReference=%s&txType=Payment&accountKey=MerchantAccount.%s" % (notification.pspReference, notification.merchantAccountCode), ]
# We can receive authorizations on non-primary Adyen merchant
# accounts. This happens for example with payments from POS
diff --git a/postgresqleu/braintreepayment/management/commands/send_braintree_logreport.py b/postgresqleu/braintreepayment/management/commands/send_braintree_logreport.py
index 733c7880..98cfb89b 100755
--- a/postgresqleu/braintreepayment/management/commands/send_braintree_logreport.py
+++ b/postgresqleu/braintreepayment/management/commands/send_braintree_logreport.py
@@ -17,7 +17,7 @@ class Command(BaseCommand):
def handle(self, *args, **options):
with transaction.atomic():
- lines = list(BraintreeLog.objects.filter(error=True,sent=False).order_by('timestamp'))
+ lines = list(BraintreeLog.objects.filter(error=True, sent=False).order_by('timestamp'))
if len(lines):
sio = StringIO()
diff --git a/postgresqleu/braintreepayment/management/commands/update_braintree_transactions.py b/postgresqleu/braintreepayment/management/commands/update_braintree_transactions.py
index 9470f313..09f54141 100755
--- a/postgresqleu/braintreepayment/management/commands/update_braintree_transactions.py
+++ b/postgresqleu/braintreepayment/management/commands/update_braintree_transactions.py
@@ -86,7 +86,7 @@ class Command(BaseCommand):
continue
BraintreeLog(transid=t.transid,
- message='Transaction has been disbursed, amount {0}, settled amount {1}'.format(btrans.amount,btrans.disbursement_details.settlement_amount)).save()
+ message='Transaction has been disbursed, amount {0}, settled amount {1}'.format(btrans.amount, btrans.disbursement_details.settlement_amount)).save()
t.disbursedat = btrans.disbursement_details.disbursement_date
t.disbursedamount = btrans.disbursement_details.settlement_amount
diff --git a/postgresqleu/confreg/admin.py b/postgresqleu/confreg/admin.py
index 1bc09297..94e0fa95 100644
--- a/postgresqleu/confreg/admin.py
+++ b/postgresqleu/confreg/admin.py
@@ -105,7 +105,7 @@ class ConferenceAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedMod
def __init__(self, *args, **kwargs):
super(ConferenceAdminForm, self).__init__(*args, **kwargs)
self.fields['volunteers'].widget.widget.update_query_parameters({'conference': self.instance.id})
- self.fields['accounting_object'].choices = [('', '----'),] + [(o.name, o.name) for o in Object.objects.filter(active=True)]
+ self.fields['accounting_object'].choices = [('', '----'), ] + [(o.name, o.name) for o in Object.objects.filter(active=True)]
def clean(self):
data = super(ConferenceAdminForm, self).clean()
@@ -142,8 +142,8 @@ class ConferenceRegistrationAdmin(admin.ModelAdmin):
ordering = ['-payconfirmedat', '-created', 'lastname', 'firstname', ]
actions = ['approve_conferenceregistration', 'email_recipients']
filter_horizontal = ('additionaloptions',)
- exclude = ('invoice','bulkpayment',)
- readonly_fields = ('invoice_link','bulkpayment_link', 'lastmodified', )
+ exclude = ('invoice', 'bulkpayment', )
+ readonly_fields = ('invoice_link', 'bulkpayment_link', 'lastmodified', )
def get_queryset(self, request):
qs = super(ConferenceRegistrationAdmin, self).get_queryset(request)
@@ -283,8 +283,8 @@ class ConferenceSessionScheduleSlotAdmin(admin.ModelAdmin):
class RegistrationClassAdmin(admin.ModelAdmin):
list_display = ['regclass', 'conference', ]
- list_filter = ['conference',]
- ordering = ['conference','regclass']
+ list_filter = ['conference', ]
+ ordering = ['conference', 'regclass', ]
class RegistrationDayAdmin(admin.ModelAdmin):
list_display = ['day', 'conference', ]
@@ -311,9 +311,9 @@ class RegistrationTypeAdminForm(ConcurrentProtectedModelForm):
class RegistrationTypeAdmin(admin.ModelAdmin):
list_display = ['conference', 'regtype', 'cost', 'sortkey', 'active', 'activeuntil', ]
- list_filter = ['conference',]
- ordering = ['conference','regtype']
- filter_horizontal = ('requires_option',)
+ list_filter = ['conference', ]
+ ordering = ['conference', 'regtype', ]
+ filter_horizontal = ('requires_option', )
form = RegistrationTypeAdminForm
class ShirtsizeAdmin(admin.ModelAdmin):
@@ -396,7 +396,7 @@ class SpeakerPhotoAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
if db_field.name == 'photo':
kwargs['widget'] = InlinePhotoWidget
- return super(SpeakerPhotoAdmin,self).formfield_for_dbfield(db_field,**kwargs)
+ return super(SpeakerPhotoAdmin, self).formfield_for_dbfield(db_field, **kwargs)
class TrackAdmin(admin.ModelAdmin):
list_filter = ['conference', ]
@@ -412,7 +412,7 @@ class RoomAdmin(admin.ModelAdmin):
model = Room
class ConferenceFeedbackQuestionAdmin(admin.ModelAdmin):
- list_display = ['conference', 'sortkey', 'newfieldset', 'question',]
+ list_display = ['conference', 'sortkey', 'newfieldset', 'question', ]
list_filter = ['conference', ]
class PrepaidVoucherInline(admin.TabularInline):
@@ -555,7 +555,7 @@ class BulkPaymentAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedMo
class BulkPaymentAdmin(admin.ModelAdmin):
form = BulkPaymentAdminForm
- list_display = ['adminstring', 'conference', 'user', 'numregs', 'paidat', 'ispaid',]
+ list_display = ['adminstring', 'conference', 'user', 'numregs', 'paidat', 'ispaid', ]
list_filter = ['conference', ]
class AttendeeMailAdminForm(ConcurrentProtectedModelForm):
diff --git a/postgresqleu/confreg/backendforms.py b/postgresqleu/confreg/backendforms.py
index 854256fa..5bc6741f 100644
--- a/postgresqleu/confreg/backendforms.py
+++ b/postgresqleu/confreg/backendforms.py
@@ -78,12 +78,12 @@ class BackendForm(ConcurrentProtectedModelForm):
# but meh, this isn't used that often so...
if self.fieldsets:
all_fields = set([f for f in self.fields if not f == '_validator'])
- all_fieldsetted_fields = set(reduce(lambda x,y: x + y, [v['fields'] for v in self.fieldsets]))
+ all_fieldsetted_fields = set(reduce(lambda x, y: x + y, [v['fields'] for v in self.fieldsets]))
missing = all_fields.difference(all_fieldsetted_fields)
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 self.fields.items():
# Adjust widgets
if isinstance(v, django.forms.fields.DateField):
v.widget = HtmlDateInput()
@@ -92,8 +92,8 @@ class BackendForm(ConcurrentProtectedModelForm):
# the conference dates.
if isinstance(v, django.forms.fields.DateTimeField) and not k in self.exclude_date_validators:
v.validators.extend([
- MinValueValidator(datetime.datetime.combine(self.conference.startdate, datetime.time(0,0,0))),
- MaxValueValidator(datetime.datetime.combine(self.conference.enddate + datetime.timedelta(days=1), datetime.time(0,0,0))),
+ MinValueValidator(datetime.datetime.combine(self.conference.startdate, datetime.time(0, 0, 0))),
+ MaxValueValidator(datetime.datetime.combine(self.conference.enddate + datetime.timedelta(days=1), datetime.time(0, 0, 0))),
])
elif isinstance(v, django.forms.fields.DateField) and not k in self.exclude_date_validators:
v.validators.extend([
@@ -214,7 +214,7 @@ class BackendSuperConferenceForm(BackendForm):
exclude_date_validators = ['startdate', 'enddate']
def fix_fields(self):
- self.fields['accounting_object'].choices = [('', '----'),] + [(o.name, o.name) for o in postgresqleu.accounting.models.Object.objects.filter(active=True)]
+ self.fields['accounting_object'].choices = [('', '----'), ] + [(o.name, o.name) for o in postgresqleu.accounting.models.Object.objects.filter(active=True)]
if not self.instance.id:
self.remove_field('accounting_object')
@@ -374,7 +374,7 @@ class BackendAdditionalOptionForm(BackendForm):
list_fields = ['name', 'cost', 'maxcount', 'invoice_autocancel_hours']
vat_fields = {'cost': 'reg'}
auto_cascade_delete_to = ['registrationtype_requires_option', 'conferenceadditionaloption_requires_regtype',
- 'conferenceadditionaloption_mutually_exclusive',]
+ 'conferenceadditionaloption_mutually_exclusive', ]
class Meta:
model = ConferenceAdditionalOption
fields = ['name', 'cost', 'maxcount', 'public', 'upsellable', 'invoice_autocancel_hours',
@@ -499,7 +499,7 @@ class BackendConferenceSessionForm(BackendForm):
raise ValidationError("Sessions with speaker cannot change from {0} to {1}. Only one of {2} is allowed.".format(
get_status_string(self.instance.status),
get_status_string(newstatus),
- ", ".join(["{0} ({1})".format(get_status_string(s), v) for s,v in valid_status_transitions[self.instance.status].items()]),
+ ", ".join(["{0} ({1})".format(get_status_string(s), v) for s, v in valid_status_transitions[self.instance.status].items()]),
))
return newstatus
@@ -627,7 +627,7 @@ class BackendVolunteerSlotForm(BackendForm):
class BackendFeedbackQuestionForm(BackendForm):
helplink = 'feedback#conference'
- list_fields = ['newfieldset', 'question', 'sortkey',]
+ list_fields = ['newfieldset', 'question', 'sortkey', ]
allow_copy_previous = True
class Meta:
@@ -741,10 +741,10 @@ class BackendAccessTokenForm(BackendForm):
fields = ['token', 'description', 'permissions', ]
def _transformed_accesstoken_permissions(self):
- for k,v in AccessTokenPermissions:
+ for k, v in AccessTokenPermissions:
baseurl = '/events/admin/{0}/tokendata/{1}/{2}'.format(self.conference.urlname, self.instance.token, k)
- formats = ['csv', 'tsv', 'json']
- yield k, mark_safe('{0} ({1})'.format(v,", ".join(['<a href="{0}.{1}">{1}</a>'.format(baseurl, f) for f in formats])))
+ formats = ['csv', 'tsv', 'json', ]
+ yield k, mark_safe('{0} ({1})'.format(v, ", ".join(['<a href="{0}.{1}">{1}</a>'.format(baseurl, f) for f in formats])))
def fix_fields(self):
self.fields['permissions'].widget = django.forms.CheckboxSelectMultiple(
diff --git a/postgresqleu/confreg/backendviews.py b/postgresqleu/confreg/backendviews.py
index 40574e32..2f478a05 100644
--- a/postgresqleu/confreg/backendviews.py
+++ b/postgresqleu/confreg/backendviews.py
@@ -117,7 +117,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 formclass.get_initial().items():
setattr(instance, k, v)
else:
if bypass_conference_filter:
@@ -131,14 +131,14 @@ def backend_process_form(request, urlname, formclass, id, cancel_url='../', save
if instance.pk:
# Are there any associated objects here, by any chance?
collector = NestedObjects(using='default')
- collector.collect([instance,])
+ collector.collect([instance, ])
to_delete = collector.nested()
to_delete.remove(instance)
if to_delete:
to_delete = [d for d in flatten_list(to_delete[0]) if not d._meta.model_name 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))
+ 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))
else:
messages.info(request, "{0} {1} deleted.".format(formclass.Meta.model._meta.verbose_name.capitalize(), instance))
instance.delete()
@@ -225,7 +225,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 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)
@@ -739,7 +739,7 @@ class JsonWriter(object):
def tokendata(request, urlname, token, datatype, dataformat):
conference = get_object_or_404(Conference, urlname=urlname)
- if not AccessToken.objects.filter(conference=conference, token=token, permissions__contains=[datatype,]).exists():
+ if not AccessToken.objects.filter(conference=conference, token=token, permissions__contains=[datatype, ]).exists():
raise Http404()
if dataformat.lower() == 'csv':
diff --git a/postgresqleu/confreg/feedback.py b/postgresqleu/confreg/feedback.py
index 032d2398..11da5a57 100644
--- a/postgresqleu/confreg/feedback.py
+++ b/postgresqleu/confreg/feedback.py
@@ -25,7 +25,7 @@ def build_feedback_response(question):
r['textanswers'] = [a.textanswer for a in ConferenceFeedbackAnswer.objects.only('textanswer').filter(conference_id=confid, question_id=questionid).exclude(textanswer='')]
else:
# Numeric choices from 1-5
- r['graphdata'] = build_graphdata(question, 'rateanswer', range(0,6))
+ r['graphdata'] = build_graphdata(question, 'rateanswer', range(0, 6))
return r
def feedback_report(request, confname):
@@ -57,7 +57,7 @@ def feedback_report(request, confname):
def build_toplists(what, query):
cursor = connection.cursor()
for k in ('topic_importance', 'content_quality', 'speaker_knowledge', 'speaker_quality'):
- tl = {'title': '%s by %s' % (what, k.replace('_',' ').title())}
+ tl = {'title': '%s by %s' % (what, k.replace('_', ' ').title())}
cursor.execute(query.replace('{{key}}', k))
tl['list'] = cursor.fetchall()
yield tl
diff --git a/postgresqleu/confreg/forms.py b/postgresqleu/confreg/forms.py
index ef3dc6fe..11e44829 100644
--- a/postgresqleu/confreg/forms.py
+++ b/postgresqleu/confreg/forms.py
@@ -250,7 +250,7 @@ class ConferenceRegistrationForm(forms.ModelForm):
class Meta:
model = ConferenceRegistration
- exclude = ('conference','attendee','registrator','payconfirmedat','payconfirmedby','created', 'regtoken', )
+ exclude = ('conference', 'attendee', 'registrator', 'payconfirmedat', 'payconfirmedby', 'created', 'regtoken', )
widgets = {
'photoconsent': forms.Select(choices=((None, ''), (True, 'I consent to having my photo taken'), (False, "I don't want my photo taken"))),
}
@@ -290,13 +290,13 @@ class ConferenceRegistrationForm(forms.ModelForm):
yield {'id': 'additional_options',
'legend': 'Additional options',
'intro': conf.additionalintro,
- 'fields': [self['additionaloptions'],],
+ 'fields': [self['additionaloptions'], ],
}
yield {'id': 'voucher_codes',
'legend': 'Voucher codes',
'intro': 'If you have a voucher or discount code, enter it in this field. If you do not have one, just leave the field empty.',
- 'fields': [self['vouchercode'],],
+ 'fields': [self['vouchercode'], ],
}
class RegistrationChangeForm(forms.ModelForm):
@@ -342,14 +342,14 @@ class MultiRegInvoiceForm(forms.Form):
address = forms.CharField(widget=forms.widgets.Textarea, required=True)
class ConferenceSessionFeedbackForm(forms.ModelForm):
- topic_importance = forms.ChoiceField(widget=RadioSelect,choices=rating_choices, label='Importance of the topic')
- content_quality = forms.ChoiceField(widget=RadioSelect,choices=rating_choices, label='Quality of the content')
- speaker_knowledge = forms.ChoiceField(widget=RadioSelect,choices=rating_choices, label='Speakers knowledge of the subject')
- speaker_quality = forms.ChoiceField(widget=RadioSelect,choices=rating_choices, label='Speakers presentation skills')
+ topic_importance = forms.ChoiceField(widget=RadioSelect, choices=rating_choices, label='Importance of the topic')
+ content_quality = forms.ChoiceField(widget=RadioSelect, choices=rating_choices, label='Quality of the content')
+ speaker_knowledge = forms.ChoiceField(widget=RadioSelect, choices=rating_choices, label='Speakers knowledge of the subject')
+ speaker_quality = forms.ChoiceField(widget=RadioSelect, choices=rating_choices, label='Speakers presentation skills')
class Meta:
model = ConferenceSessionFeedback
- exclude = ('conference','attendee','session')
+ exclude = ('conference', 'attendee', 'session', )
class ConferenceFeedbackForm(forms.Form):
@@ -365,7 +365,7 @@ class ConferenceFeedbackForm(forms.Form):
if q.isfreetext:
if q.textchoices:
self.fields['question_%s' % q.id] = forms.ChoiceField(widget=RadioSelect,
- choices=[(x,x) for x in q.textchoices.split(";")],
+ choices=[(x, x) for x in q.textchoices.split(";")],
label=q.question,
initial=self.get_answer_text(responses, q.id))
else:
@@ -596,7 +596,7 @@ class EmailSessionForm(forms.Form):
class BulkRegistrationForm(forms.Form):
- recipient_name = forms.CharField(required=True, max_length=100,label='Invoice recipient name')
+ recipient_name = forms.CharField(required=True, max_length=100, label='Invoice recipient name')
recipient_address = forms.CharField(required=True, max_length=100, label='Invoice recipient address', widget=forms.Textarea)
email_list = forms.CharField(required=True, label='Emails to pay for', widget=forms.Textarea)
@@ -651,7 +651,7 @@ class WaitlistOfferForm(forms.Form):
def _get_id_list_from_data(self):
if not self.data: return []
l = []
- for k,v in self.data.items():
+ for k, v in self.data.items():
if v == '1' and k.startswith('reg_'):
l.append(int(k[4:]))
return l
diff --git a/postgresqleu/confreg/jinjabadge.py b/postgresqleu/confreg/jinjabadge.py
index 8ae60cc8..63860d2c 100755
--- a/postgresqleu/confreg/jinjabadge.py
+++ b/postgresqleu/confreg/jinjabadge.py
@@ -46,7 +46,7 @@ class JinjaBadge(Flowable):
def draw(self):
if self.js.get('border', False):
- self.canv.rect(0,0,self.width,self.height)
+ self.canv.rect(0, 0, self.width, self.height)
for e in self.js['elements']:
if e == {}:
@@ -146,7 +146,7 @@ def escapejson_filter(v):
# those, but only one if there is more than one.
return re.sub(r'^"|"$', '', json.dumps(v))
-def test_inlist(v,l):
+def test_inlist(v, l):
return v in l
class JinjaRenderer(object):
@@ -166,7 +166,7 @@ class JinjaRenderer(object):
env = jinja2.sandbox.SandboxedEnvironment()
env.filters.update({
'escapejson': escapejson_filter,
- 'yesno': lambda b,v: v.split(',')[not b],
+ 'yesno': lambda b, v: v.split(',')[not b],
})
env.tests.update({
'inlist': test_inlist,
diff --git a/postgresqleu/confreg/jinjafunc.py b/postgresqleu/confreg/jinjafunc.py
index 32616230..0e486e2d 100644
--- a/postgresqleu/confreg/jinjafunc.py
+++ b/postgresqleu/confreg/jinjafunc.py
@@ -187,7 +187,7 @@ def filter_float_str(f, n):
# Format a datetime. If it'sa datetime, call strftime. If it's a
# string, assume it's iso format and convert it to a date first.
def filter_datetimeformat(value, fmt):
- if isinstance(value, date) or isinstance(value, datetime) or isinstance(value,time):
+ if isinstance(value, date) or isinstance(value, datetime) or isinstance(value, time):
return value.strftime(fmt)
else:
return dateutil.parser.parse(value).strftime(fmt)
@@ -210,10 +210,10 @@ def render_jinja_conference_response(request, conference, pagemagic, templatenam
'datetimeformat': filter_datetimeformat,
'groupby_sort': filter_groupby_sort,
'leadingnbsp': leadingnbsp,
- 'markdown': lambda t: jinja2.Markup(markdown.markdown(t, extensions=['tables',])),
+ 'markdown': lambda t: jinja2.Markup(markdown.markdown(t, extensions=['tables', ])),
'shuffle': filter_shuffle,
'slugify': slugify,
- 'yesno': lambda b,v: v.split(',')[not b],
+ 'yesno': lambda b, v: v.split(',')[not b],
})
# If ?test=1 is specified, try to load a template with .test in the
diff --git a/postgresqleu/confreg/management/commands/confreg_expire_additionaloptions.py b/postgresqleu/confreg/management/commands/confreg_expire_additionaloptions.py
index dc212242..0b8b0a06 100644
--- a/postgresqleu/confreg/management/commands/confreg_expire_additionaloptions.py
+++ b/postgresqleu/confreg/management/commands/confreg_expire_additionaloptions.py
@@ -39,7 +39,7 @@ class Command(BaseCommand):
bulkpayment__isnull=True,
additionaloptions__invoice_autocancel_hours__isnull=False,
).extra(
- where=["lastmodified < CURRENT_TIMESTAMP - confreg_conferenceadditionaloption.invoice_autocancel_hours * '1 hour'::interval",]
+ where=["lastmodified < CURRENT_TIMESTAMP - confreg_conferenceadditionaloption.invoice_autocancel_hours * '1 hour'::interval", ]
)
expired = defaultdict(list)
diff --git a/postgresqleu/confreg/mobileviews.py b/postgresqleu/confreg/mobileviews.py
index fc358e12..1f33d892 100644
--- a/postgresqleu/confreg/mobileviews.py
+++ b/postgresqleu/confreg/mobileviews.py
@@ -86,7 +86,7 @@ def conferencedata(request, confname, since):
curs.execute("SELECT itemid, type FROM confreg_deleteditems WHERE deltime>%(lastmod)s ORDER BY type", {
'lastmod': datefilter,
})
- deldata = dict([(k, [i for i,t in v]) for k,v in itertools.groupby(curs.fetchall(), lambda t: t[1])])
+ deldata = dict([(k, [i for i, t in v]) for k, v in itertools.groupby(curs.fetchall(), lambda t: t[1])])
else:
deldata = {}
diff --git a/postgresqleu/confreg/models.py b/postgresqleu/confreg/models.py
index 303a941d..eb14972e 100644
--- a/postgresqleu/confreg/models.py
+++ b/postgresqleu/confreg/models.py
@@ -51,9 +51,9 @@ STATUS_CHOICES_LONG = (
(4, "Reserve-listed in case of cancels/changes"), # Reserve list
)
def get_status_string(val):
- return (t for v,t in STATUS_CHOICES if v == val).next()
+ return (t for v, t in STATUS_CHOICES if v == val).next()
def get_status_string_long(val):
- return (t for v,t in STATUS_CHOICES_LONG if v == val).next()
+ return (t for v, t in STATUS_CHOICES_LONG if v == val).next()
valid_status_transitions = {
0: {3: 'Talk approved', 2: 'Talk is rejected', 4: 'Talk added to reserve list'},
@@ -68,7 +68,7 @@ def color_validator(value):
raise ValidationError('Color values must start with #')
if len(value) != 7:
raise ValidationError('Color values must be # + 7 characters')
- for n in range(0,3):
+ for n in range(0, 3):
try:
int(value[n * 2 + 1:n * 2 + 2 + 1], 16)
except ValueError:
@@ -104,7 +104,7 @@ class GlobalOptOut(models.Model):
class Conference(models.Model):
- urlname = models.CharField(max_length=32, blank=False, null=False, unique=True, validators=[validate_lowercase,], verbose_name="URL name")
+ urlname = models.CharField(max_length=32, blank=False, null=False, unique=True, validators=[validate_lowercase, ], verbose_name="URL name")
conferencename = models.CharField(max_length=64, blank=False, null=False, verbose_name="Conference name")
startdate = models.DateField(blank=False, null=False, verbose_name="Start date")
enddate = models.DateField(blank=False, null=False, verbose_name="End date")
@@ -113,19 +113,19 @@ class Conference(models.Model):
promopicurl = models.URLField(blank=True, null=False, verbose_name="URL to promo picture", validators=[PictureUrlValidator(aspect=2.3)])
promotext = models.TextField(null=False, blank=True, max_length=1000, verbose_name="Promotion text")
timediff = models.IntegerField(null=False, blank=False, default=0)
- contactaddr = models.EmailField(blank=False,null=False, verbose_name="Contact address")
- sponsoraddr = models.EmailField(blank=False,null=False, verbose_name="Sponsor address")
- active = models.BooleanField(blank=False,null=False,default=False, verbose_name="Registration open")
- callforpapersopen = models.BooleanField(blank=False,null=False,default=False, verbose_name="Call for papers open")
- callforsponsorsopen = models.BooleanField(blank=False,null=False,default=False, verbose_name="Call for sponsors open")
- feedbackopen = models.BooleanField(blank=False,null=False,default=False, verbose_name="Session feedback open")
- conferencefeedbackopen = models.BooleanField(blank=False,null=False,default=False, verbose_name="Conference feedback open")
- allowedit = models.BooleanField(blank=False,null=False,default=True, verbose_name="Allow editing registrations")
- scheduleactive = models.BooleanField(blank=False,null=False,default=False,verbose_name="Schedule publishing active")
- sessionsactive = models.BooleanField(blank=False,null=False,default=False,verbose_name="Session list publishing active")
+ contactaddr = models.EmailField(blank=False, null=False, verbose_name="Contact address")
+ sponsoraddr = models.EmailField(blank=False, null=False, verbose_name="Sponsor address")
+ active = models.BooleanField(blank=False, null=False, default=False, verbose_name="Registration open")
+ callforpapersopen = models.BooleanField(blank=False, null=False, default=False, verbose_name="Call for papers open")
+ callforsponsorsopen = models.BooleanField(blank=False, null=False, default=False, verbose_name="Call for sponsors open")
+ feedbackopen = models.BooleanField(blank=False, null=False, default=False, verbose_name="Session feedback open")
+ conferencefeedbackopen = models.BooleanField(blank=False, null=False, default=False, verbose_name="Conference feedback open")
+ allowedit = models.BooleanField(blank=False, null=False, default=True, verbose_name="Allow editing registrations")
+ scheduleactive = models.BooleanField(blank=False, null=False, default=False, verbose_name="Schedule publishing active")
+ sessionsactive = models.BooleanField(blank=False, null=False, default=False, verbose_name="Session list publishing active")
schedulewidth = models.IntegerField(blank=False, default=600, null=False, verbose_name="Width of HTML schedule")
pixelsperminute = models.FloatField(blank=False, default=1.5, null=False, verbose_name="Vertical pixels per minute")
- confurl = models.CharField(max_length=128, blank=False, null=False, validators=[validate_lowercase,], verbose_name="Conference URL")
+ confurl = models.CharField(max_length=128, blank=False, null=False, validators=[validate_lowercase, ], verbose_name="Conference URL")
twittersync_active = models.BooleanField(null=False, default=False, verbose_name='Twitter posting active')
twitterreminders_active = models.BooleanField(null=False, default=False, verbose_name='Twitter reminder DMs active')
twitter_user = models.CharField(max_length=32, blank=True, null=False)
@@ -158,8 +158,8 @@ class Conference(models.Model):
accounting_object = models.CharField(max_length=30, blank=True, null=True, verbose_name="Accounting object name")
vat_registrations = models.ForeignKey(VatRate, null=True, blank=True, verbose_name='VAT rate for registrations', related_name='vat_registrations', on_delete=models.CASCADE)
vat_sponsorship = models.ForeignKey(VatRate, null=True, blank=True, verbose_name='VAT rate for sponsorships', related_name='vat_sponsorship', on_delete=models.CASCADE)
- invoice_autocancel_hours = models.IntegerField(blank=True, null=True, validators=[MinValueValidator(1),], verbose_name="Autocancel invoices", help_text="Automatically cancel invoices after this many hours")
- attendees_before_waitlist = models.IntegerField(blank=False, null=False, default=0, validators=[MinValueValidator(0),], verbose_name="Attendees before waitlist", help_text="Maximum number of attendees before enabling waitlist management. 0 for no waitlist management")
+ invoice_autocancel_hours = models.IntegerField(blank=True, null=True, validators=[MinValueValidator(1), ], verbose_name="Autocancel invoices", help_text="Automatically cancel invoices after this many hours")
+ attendees_before_waitlist = models.IntegerField(blank=False, null=False, default=0, validators=[MinValueValidator(0), ], verbose_name="Attendees before waitlist", help_text="Maximum number of attendees before enabling waitlist management. 0 for no waitlist management")
series = models.ForeignKey(ConferenceSeries, null=False, blank=False, on_delete=models.CASCADE)
personal_data_purged = models.DateTimeField(null=True, blank=True, help_text="Personal data for registrations for this conference have been purged")
@@ -244,7 +244,7 @@ class RegistrationClass(models.Model):
return self.regclass
def colortuple(self):
- return tuple([int(self.badgecolor[n * 2 + 1:n * 2 + 2 + 1], 16) for n in range(0,3)])
+ return tuple([int(self.badgecolor[n * 2 + 1:n * 2 + 2 + 1], 16) for n in range(0, 3)])
@property
def bgcolortuplestr(self):
@@ -255,7 +255,7 @@ class RegistrationClass(models.Model):
def foregroundcolortuple(self):
if len(self.badgeforegroundcolor):
- return tuple([int(self.badgeforegroundcolor[n * 2 + 1:n * 2 + 2 + 1], 16) for n in range(0,3)])
+ return tuple([int(self.badgeforegroundcolor[n * 2 + 1:n * 2 + 2 + 1], 16) for n in range(0, 3)])
else:
return None
@@ -305,7 +305,7 @@ class RegistrationType(models.Model):
days = models.ManyToManyField(RegistrationDay, blank=True)
alertmessage = models.TextField(null=False, blank=True, verbose_name="Alert message", help_text="Message shown in popup to user when completing the registration")
upsell_target = models.BooleanField(null=False, blank=False, default=False, help_text='Is target registration type for upselling in order to add additional options')
- invoice_autocancel_hours = models.IntegerField(blank=True, null=True, validators=[MinValueValidator(1),], verbose_name="Autocancel invoices", help_text="Automatically cancel invoices after this many hours")
+ invoice_autocancel_hours = models.IntegerField(blank=True, null=True, validators=[MinValueValidator(1), ], verbose_name="Autocancel invoices", help_text="Automatically cancel invoices after this many hours")
requires_option = models.ManyToManyField('ConferenceAdditionalOption', blank=True, help_text='Requires at least one of the selected additional options to be picked')
class Meta:
@@ -357,7 +357,7 @@ class ConferenceAdditionalOption(models.Model):
maxcount = models.IntegerField(null=False, verbose_name="Maximum number of uses")
public = models.BooleanField(null=False, blank=False, default=True, help_text='Visible on public forms (opposite of admin only)')
upsellable = models.BooleanField(null=False, blank=False, default=True, help_text='Can this option be purchased after the registration is completed')
- invoice_autocancel_hours = models.IntegerField(blank=True, null=True, validators=[MinValueValidator(1),], verbose_name="Autocancel invoices", help_text="Automatically cancel invoices after this many hours")
+ invoice_autocancel_hours = models.IntegerField(blank=True, null=True, validators=[MinValueValidator(1), ], verbose_name="Autocancel invoices", help_text="Automatically cancel invoices after this many hours")
requires_regtype = models.ManyToManyField(RegistrationType, blank=True, verbose_name="Requires registration type", help_text='Can only be picked with selected registration types')
mutually_exclusive = models.ManyToManyField('self', blank=True, help_text='Mutually exlusive with these additional options', symmetrical=True)
@@ -540,7 +540,7 @@ class ConferenceRegistration(models.Model):
# For exporting "safe attributes" to external systems
def safe_export(self):
- attribs = ['firstname', 'lastname', 'email', 'company', 'address', 'country', 'phone', 'shirtsize', 'dietary', 'twittername', 'nick', 'shareemail',]
+ attribs = ['firstname', 'lastname', 'email', 'company', 'address', 'country', 'phone', 'shirtsize', 'dietary', 'twittername', 'nick', 'shareemail', ]
d = dict((a, getattr(self, a) and unicode(getattr(self, a))) for a in attribs)
if self.regtype:
d['regtype'] = self.regtype.safe_export()
@@ -701,7 +701,7 @@ class ConferenceSession(models.Model):
@property
def skill_level_string(self):
- return (t for v,t in SKILL_CHOICES if v == self.skill_level).next()
+ return (t for v, t in SKILL_CHOICES if v == self.skill_level).next()
@property
def status_string(self):
diff --git a/postgresqleu/confreg/pdfschedule.py b/postgresqleu/confreg/pdfschedule.py
index 4d0f9a0d..6b32b750 100644
--- a/postgresqleu/confreg/pdfschedule.py
+++ b/postgresqleu/confreg/pdfschedule.py
@@ -72,10 +72,10 @@ def build_linear_pdf_schedule(conference, room, tracks, day, colored, pagesize,
table_horiz_margin = 2*cm
default_tbl_style = [
- ('VALIGN', (0,0), (-1, -1), 'TOP'),
- ('BOX', (0,0), (-1, -1), 0.5, colors.black),
- ('INNERGRID', (0,0), (-1, -1), 0.5, colors.black),
- ('BOTTOMPADDING', (0,0), (-1, -1), 15),
+ ('VALIGN', (0, 0), (-1, -1), 'TOP'),
+ ('BOX', (0, 0), (-1, -1), 0.5, colors.black),
+ ('INNERGRID', (0, 0), (-1, -1), 0.5, colors.black),
+ ('BOTTOMPADDING', (0, 0), (-1, -1), 15),
]
# Loop over days, creating one page for each day
@@ -89,7 +89,7 @@ def build_linear_pdf_schedule(conference, room, tracks, day, colored, pagesize,
t = Table(tbldata, colWidths=[3*cm, width - 3*cm - 2 * table_horiz_margin])
t.setStyle(TableStyle(tblstyle))
- w,h = t.wrapOn(canvas, width, height)
+ w, h = t.wrapOn(canvas, width, height)
t.drawOn(canvas, table_horiz_margin, height - 4*cm - h)
canvas.showPage()
@@ -108,7 +108,7 @@ def build_linear_pdf_schedule(conference, room, tracks, day, colored, pagesize,
else:
tbldata.extend([(tstr, (Paragraph(s.title, st_title), Paragraph("<i>%s</i>" % s.speaker_list, st_speakers)))])
if colored and s.track and s.track.color:
- tblstyle.append(('BACKGROUND', (1,len(tbldata) - 1), (1,len(tbldata) - 1), s.track.color),)
+ tblstyle.append(('BACKGROUND', (1, len(tbldata) - 1), (1, len(tbldata) - 1), s.track.color), )
_finalize_page()
canvas.save()
@@ -146,7 +146,7 @@ def build_complete_pdf_schedule(conference, tracks, day, colored, pagesize, orie
lastday = d
groupedbyday[d]['last'] = s.endtime
groupedbyday[d]['sessions'].append(s)
- for k,v in groupedbyday.items():
+ for k, v in groupedbyday.items():
v['length'] = v['last']-v['first']
v['rooms'] = set([s.room for s in v['sessions'] if s.room])
@@ -173,7 +173,7 @@ def build_complete_pdf_schedule(conference, tracks, day, colored, pagesize, orie
breakpoints = []
# For each breakpoint, find the closest one
- for p in range(1,pagesperday):
+ for p in range(1, pagesperday):
breaktime = dd['first'] + timedelta(seconds=p * secondsperpage)
breaksession = cross_sessions[min(range(len(cross_sessions)), key=lambda i: abs(cross_sessions[i].starttime-breaktime))]
if not breaksession in breakpoints:
@@ -184,7 +184,7 @@ def build_complete_pdf_schedule(conference, tracks, day, colored, pagesize, orie
if s in breakpoints:
pagesessions.append(currentpagesessions)
# Make sure the breaking sessions itself is on both pages
- currentpagesessions = [s,]
+ currentpagesessions = [s, ]
pagesessions.append(currentpagesessions)
else:
# For a single page schedule, just add all sessions to the first page.
@@ -210,7 +210,7 @@ def build_complete_pdf_schedule(conference, tracks, day, colored, pagesize, orie
# fit within the boxes.
roomtitlefontsize = 20
for r in dd['rooms']:
- for fs in 16,14,12,10,8:
+ for fs in 16, 14, 12, 10, 8:
fwidth = canvas.stringWidth(r.roomname, "DejaVu Serif", fs)
if fwidth < roomwidth-4*mm:
# Width at this size is small enough to work, so use it
@@ -231,7 +231,7 @@ def build_complete_pdf_schedule(conference, tracks, day, colored, pagesize, orie
pagelength = (ps[-1].endtime-ps[0].starttime).seconds
first = ps[0].starttime
- canvas.rect(2*cm, height-pagelength*unitspersecond-4*cm, roomcount*roomwidth, pagelength*unitspersecond,stroke=1)
+ canvas.rect(2*cm, height-pagelength*unitspersecond-4*cm, roomcount*roomwidth, pagelength*unitspersecond, stroke=1)
for s in ps:
if s.cross_schedule:
# Cross schedule rooms are very special...
@@ -247,7 +247,7 @@ def build_complete_pdf_schedule(conference, tracks, day, colored, pagesize, orie
canvas.setFillColor(s.track.color)
else:
canvas.setFillColor(colors.white)
- canvas.rect(s_left,s_top,thisroomwidth,s_height,stroke=1,fill=colored)
+ canvas.rect(s_left, s_top, thisroomwidth, s_height, stroke=1, fill=colored)
timestampstr = "%s-%s" % (s.starttime.strftime("%H:%M"), s.endtime.strftime("%H:%M"))
ts = Paragraph(timestampstr, timestampstyle)
@@ -279,7 +279,7 @@ def build_complete_pdf_schedule(conference, tracks, day, colored, pagesize, orie
for includespeaker in (True, False):
title = s.title
while title:
- for fs in (12,10,9,8):
+ for fs in (12, 10, 9, 8):
sessionstyle = ParagraphStyle('sessionstyle')
sessionstyle.fontName = "DejaVu Serif"
sessionstyle.fontSize = fs
@@ -314,9 +314,9 @@ class PdfScheduleForm(forms.Form):
day = forms.ModelChoiceField(label='Days to include', queryset=None, empty_label='(all days)', required=False)
tracks = forms.ModelMultipleChoiceField(label='Tracks to include', queryset=None, required=True, help_text="Filter for some tracks. By default, all tracks are included.")
colored = forms.BooleanField(label='Colored tracks', required=False)
- pagesize = forms.ChoiceField(label='Page size', choices=(('a4', 'A4'),('a3','A3')))
- orientation = forms.ChoiceField(label='Orientation', choices=(('p', 'Portrait'),('l', 'Landscape')))
- pagesperday = forms.ChoiceField(label='Pages per day', choices=((1,1),(2,2),(3,3)), help_text="Not used for per-room schedules. Page breaks happen only at cross-schedule sessions.")
+ pagesize = forms.ChoiceField(label='Page size', choices=(('a4', 'A4'), ('a3', 'A3')))
+ orientation = forms.ChoiceField(label='Orientation', choices=(('p', 'Portrait'), ('l', 'Landscape')))
+ pagesperday = forms.ChoiceField(label='Pages per day', choices=((1, 1), (2, 2), (3, 3)), help_text="Not used for per-room schedules. Page breaks happen only at cross-schedule sessions.")
titledatefmt = forms.CharField(label='Title date format', help_text="strftime format specification used to print the date in the title of the first page for each day")
def __init__(self, conference, *args, **kwargs):
diff --git a/postgresqleu/confreg/regtypes.py b/postgresqleu/confreg/regtypes.py
index c861c832..6b324026 100644
--- a/postgresqleu/confreg/regtypes.py
+++ b/postgresqleu/confreg/regtypes.py
@@ -28,7 +28,7 @@ def validate_speaker_or_reserve_registration(reg):
raise ValidationError('Speaker registrations have to be done by the speaker directly')
if not ConferenceSession.objects.filter(conference=reg.conference,
speaker__user=reg.attendee,
- status__in=(1,4), # approved/reserve
+ status__in=(1, 4), # approved/reserve
).exists():
raise ValidationError('This registration type is only available if you are a confirmed speaker at this conference')
@@ -62,7 +62,7 @@ _specialregtypes['man'] = {
'confirmfunc': confirm_manual_registration,
}
-special_reg_types = [(k,v['name']) for k,v in _specialregtypes.items()]
+special_reg_types = [(k, v['name']) for k, v in _specialregtypes.items()]
def validate_special_reg_type(regtypename, reg):
if not _specialregtypes.has_key(regtypename):
diff --git a/postgresqleu/confreg/reporting.py b/postgresqleu/confreg/reporting.py
index e28b58c8..2f69ca61 100644
--- a/postgresqleu/confreg/reporting.py
+++ b/postgresqleu/confreg/reporting.py
@@ -75,7 +75,7 @@ class MultiConferenceReport(object):
self.curs = connection.cursor()
def run(self):
- (maxday,minday) = self.maxmin()
+ (maxday, minday) = self.maxmin()
if not maxday:
raise ReportException("There are no %s at this conference." % self.title.lower())
allvals = [range(maxday, minday - 1, -1), ]
@@ -111,10 +111,10 @@ class SingleConferenceReport(object):
self.curs.execute("SELECT max(startdate-payconfirmedat::date), min(startdate-payconfirmedat::date),max(startdate) FROM confreg_conferenceregistration r INNER JOIN confreg_conference c ON r.conference_id=c.id WHERE r.conference_id=%(id)s AND r.payconfirmedat IS NOT NULL", {
'id': self.conference.id
})
- (maxday,minday,startdate) = self.curs.fetchone()
+ (maxday, minday, startdate) = self.curs.fetchone()
if not maxday:
raise ReportException("There are no %s at this conference." % self.title.lower())
- allvals = [range(maxday,minday - 1, -1), ]
+ allvals = [range(maxday, minday - 1, -1), ]
self.headers = ['Days']
for header, rows in self.fetch_all_data(minday, maxday, startdate):
allvals.append([r[0] for r in rows])
@@ -128,7 +128,7 @@ class SingleConferenceReport(object):
###########################################################3
class ConfirmedRegistrationsReport(MultiConferenceReport):
def __init__(self, title, conferences):
- super(ConfirmedRegistrationsReport, self).__init__(title,'Number of registrations',conferences)
+ super(ConfirmedRegistrationsReport, self).__init__(title, 'Number of registrations', conferences)
def maxmin(self):
self.curs.execute("SELECT max(startdate-payconfirmedat::date), min(startdate-payconfirmedat::date) FROM confreg_conference c INNER JOIN confreg_conferenceregistration r ON c.id=r.conference_id WHERE c.id=ANY(%(idlist)s) AND r.payconfirmedat IS NOT NULL", {'idlist': [c.id for c in self.conferences]})
@@ -145,7 +145,7 @@ reporttypes.append(('Confirmed registrations', ConfirmedRegistrationsReport))
class SubmittedSessionsReport(MultiConferenceReport):
def __init__(self, title, conferences):
- super(SubmittedSessionsReport, self).__init__(title,'Number of sessions',conferences)
+ super(SubmittedSessionsReport, self).__init__(title, 'Number of sessions', conferences)
def maxmin(self):
self.curs.execute("SELECT max(extract(days from startdate-initialsubmit)::integer), min(extract(days from startdate-initialsubmit)::integer) FROM confreg_conference c INNER JOIN confreg_conferencesession s ON c.id=s.conference_id WHERE c.id=ANY(%(idlist)s) AND s.initialsubmit IS NOT NULL AND NOT s.cross_schedule", {'idlist': [c.id for c in self.conferences]})
@@ -162,7 +162,7 @@ reporttypes.append(('Submitted sessions', SubmittedSessionsReport))
class SubmittingSpeakersReport(MultiConferenceReport):
def __init__(self, title, conferences):
- super(SubmittingSpeakersReport, self).__init__(title,'Number of speakers',conferences)
+ super(SubmittingSpeakersReport, self).__init__(title, 'Number of speakers', conferences)
def maxmin(self):
self.curs.execute("SELECT max(extract(days from startdate-initialsubmit)::integer), min(extract(days from startdate-initialsubmit)::integer) FROM confreg_conference c INNER JOIN confreg_conferencesession s ON c.id=s.conference_id WHERE c.id=ANY(%(idlist)s) AND s.initialsubmit IS NOT NULL AND NOT s.cross_schedule", {'idlist': [c.id for c in self.conferences]})
diff --git a/postgresqleu/confreg/reportingforms.py b/postgresqleu/confreg/reportingforms.py
index 6db7e8f7..e0878109 100644
--- a/postgresqleu/confreg/reportingforms.py
+++ b/postgresqleu/confreg/reportingforms.py
@@ -13,7 +13,7 @@ _trendlines = (
)
class TimeReportForm(forms.Form):
- reporttype = forms.ChoiceField(required=True, choices=enumerate([r[0] for r in reporttypes],1), label="Report type")
+ reporttype = forms.ChoiceField(required=True, choices=enumerate([r[0] for r in reporttypes], 1), label="Report type")
conferences = GroupedModelMultipleChoiceField('series', required=True, queryset=Conference.objects.all().order_by('-startdate'))
trendline = forms.ChoiceField(required=False, choices=_trendlines)
diff --git a/postgresqleu/confreg/reports.py b/postgresqleu/confreg/reports.py
index e894c0a9..319fa2c6 100644
--- a/postgresqleu/confreg/reports.py
+++ b/postgresqleu/confreg/reports.py
@@ -39,7 +39,7 @@ attendee_report_fields = [
('payconfirmedat', 'Payment confirmed', False, None),
]
-_attendee_report_field_map = dict([(a,(b,c,d)) for a,b,c,d in attendee_report_fields])
+_attendee_report_field_map = dict([(a, (b, c, d)) for a, b, c, d in attendee_report_fields])
class ReportFilter(object):
def __init__(self, id, name, queryset=None, querysetcol=None, emptyasnull=True):
@@ -74,9 +74,9 @@ class ReportFilter(object):
else:
# Just make sure it exists
if self.emptyasnull:
- return Q(**{"%s__isnull" % self.id:False, "%s__gt" % self.id: ''})
+ return Q(**{"%s__isnull" % self.id: False, "%s__gt" % self.id: ''})
else:
- return Q(**{"%s__isnull" % self.id:False})
+ return Q(**{"%s__isnull" % self.id: False})
@property
def html(self):
@@ -143,7 +143,7 @@ def attendee_report_filters(conference):
yield ReportFilter('nick', 'Nickname')
yield ReportFilter('dietary', 'Dietary needs')
yield ReportFilter('shareemail', 'Share email with sponsors')
- yield ReportFilter('photoconsent', 'Photo consent', ((1, 'Yes'),(0, 'No')))
+ yield ReportFilter('photoconsent', 'Photo consent', ((1, 'Yes'), (0, 'No')))
yield ReportFilter('payconfirmedat', 'Payment confirmed', emptyasnull=False)
yield ReportFilter('additionaloptions', 'Additional options', ConferenceAdditionalOption.objects.filter(conference=conference), 'name')
yield ReportFilter('shirtsize', 'T-Shirt size', ShirtSize.objects.all())
@@ -206,8 +206,8 @@ class ReportWriterPdf(ReportWriterBase):
]
if self.borders:
style.extend([
- ('GRID', (0,0), (-1, -1), 1, colors.black),
- ('BACKGROUND', (0,0), (-1,0), colors.lightgrey),
+ ('GRID', (0, 0), (-1, -1), 1, colors.black),
+ ('BACKGROUND', (0, 0), (-1, 0), colors.lightgrey),
])
t.setStyle(TableStyle(style))
story.append(t)
@@ -233,7 +233,7 @@ def build_attendee_report(conference, POST):
q = q & f.build_Q(POST)
# Figure out our order by
- orderby = map(lambda x: _attendee_report_field_map[x][2] and _attendee_report_field_map[x][2] or x, [POST['orderby1'],POST['orderby2']])
+ orderby = map(lambda x: _attendee_report_field_map[x][2] and _attendee_report_field_map[x][2] or x, [POST['orderby1'], POST['orderby2']])
# Run the query!
result = ConferenceRegistration.objects.select_related('shirtsize', 'regtype', 'country', 'conference').filter(q).distinct().order_by(*orderby)
diff --git a/postgresqleu/confreg/views.py b/postgresqleu/confreg/views.py
index 8510b8f4..f159e180 100644
--- a/postgresqleu/confreg/views.py
+++ b/postgresqleu/confreg/views.py
@@ -119,7 +119,7 @@ def _registration_dashboard(request, conference, reg, has_other_multiregs, redir
# Any invoices that should be linked need to be added
invoices = []
if reg.invoice:
- invoices.append(('Registration invoice and receipt', InvoicePresentationWrapper(reg.invoice,'.')))
+ invoices.append(('Registration invoice and receipt', InvoicePresentationWrapper(reg.invoice, '.')))
for pao in PendingAdditionalOrder.objects.filter(reg=reg, invoice__isnull=False):
invoices.append(('Additional options invoice and receipt', InvoicePresentationWrapper(pao.invoice, '.')))
@@ -659,7 +659,7 @@ def reg_add_options(request, confname):
return HttpResponseRedirect('../')
options = []
- for k,v in request.POST.items():
+ for k, v in request.POST.items():
if k.startswith('ao_') and v == "1":
options.append(int(k[3:]))
@@ -906,7 +906,7 @@ def feedback_conference(request, confname):
if form.is_valid():
# We've got the data, now write it to the database.
for q in questions:
- a,created = ConferenceFeedbackAnswer.objects.get_or_create(conference=conference, question=q, attendee=request.user)
+ a, created = ConferenceFeedbackAnswer.objects.get_or_create(conference=conference, question=q, attendee=request.user)
if q.isfreetext:
a.textanswer = form.cleaned_data['question_%s' % q.id]
else:
@@ -1227,7 +1227,7 @@ def callforpapers_edit(request, confname, sessionid):
# on the same page. If feedback is still open, we show nothing
feedback_fields = ('topic_importance', 'content_quality', 'speaker_knowledge', 'speaker_quality')
if is_tester or not conference.feedbackopen:
- feedbackdata = [{'key': k, 'title': k.replace('_',' ').title(), 'num': [0] * 5} for k in feedback_fields]
+ feedbackdata = [{'key': k, 'title': k.replace('_', ' ').title(), 'num': [0] * 5} for k in feedback_fields]
feedbacktext = []
fb = list(ConferenceSessionFeedback.objects.filter(conference=conference, session=session))
feedbackcount = len(fb)
@@ -1252,7 +1252,7 @@ def callforpapers_edit(request, confname, sessionid):
})
feedbackcomparisons.append({
'key': measurement,
- 'title': measurement.replace('_',' ').title(),
+ 'title': measurement.replace('_', ' ').title(),
'vals': curs.fetchall(),
})
else:
@@ -1276,7 +1276,7 @@ def callforpapers_edit(request, confname, sessionid):
elif request.FILES:
if len(request.FILES) != 1:
raise Exception("Only one file at a time, sorry!")
- for k,v in request.FILES.items():
+ for k, v in request.FILES.items():
ConferenceSessionSlides(session=session,
name=v.name,
content=v.read()).save()
@@ -1294,7 +1294,7 @@ def callforpapers_edit(request, confname, sessionid):
'feedbackdata': feedbackdata,
'feedbacktext': feedbacktext,
'feedbackcomparisons': feedbackcomparisons,
- 'feedbackfields': [f.replace('_',' ').title() for f in feedback_fields],
+ 'feedbackfields': [f.replace('_', ' ').title() for f in feedback_fields],
'slidesurlform': slidesurlform,
'slidesfileform': slidesfileform,
'slides': ConferenceSessionSlides.objects.filter(session=session),
@@ -1800,7 +1800,7 @@ def optout(request, token=None):
else:
exec_no_result('DELETE FROM confreg_globaloptout WHERE user_id=%(u)s', {'u': userid})
- exec_no_result('DELETE FROM confreg_conferenceseriesoptout WHERE user_id=%(u)s AND NOT series_id=ANY(%(series)s)',{
+ exec_no_result('DELETE FROM confreg_conferenceseriesoptout WHERE user_id=%(u)s AND NOT series_id=ANY(%(series)s)', {
'u': userid,
'series': optout_ids,
})
@@ -1900,7 +1900,7 @@ def viewvouchers(request, confname, batchid):
batch = get_object_or_404(PrepaidBatch, conference=conference, pk=batchid)
vouchers = batch.prepaidvoucher_set.all()
- vouchermailtext = template_to_string('confreg/mail/prepaid_vouchers.txt',{
+ vouchermailtext = template_to_string('confreg/mail/prepaid_vouchers.txt', {
'batch': batch,
'vouchers': vouchers,
'conference': conference,
@@ -2037,7 +2037,7 @@ def bulkpay(request, confname):
errors = 1
else:
# All content is valid, so just append it
- state.append({'email': regs[0].email, 'found': 1, 'pay': 1, 'total': s, 'rows':[u'%s (%s%s)' % (r[0], settings.CURRENCY_SYMBOL.decode('utf8'), r[2]) for r in regrows]})
+ state.append({'email': regs[0].email, 'found': 1, 'pay': 1, 'total': s, 'rows': [u'%s (%s%s)' % (r[0], settings.CURRENCY_SYMBOL.decode('utf8'), r[2]) for r in regrows]})
totalcost += s
invoicerows.extend(regrows)
@@ -2111,7 +2111,7 @@ def talkvote(request, confname):
alltracks.insert(0, {'id': 0, 'trackname': 'No track'})
alltrackids = [t['id'] for t in alltracks]
selectedtracks = [int(id) for id in request.GET.getlist('tracks') if int(id) in alltrackids]
- allstatusids = [id for id,status in STATUS_CHOICES]
+ allstatusids = [id for id, status in STATUS_CHOICES]
selectedstatuses = [int(id) for id in request.GET.getlist('statuses') if int(id) in allstatusids]
if selectedtracks:
urltrackfilter = "{0}&".format("&".join(["tracks={0}".format(t) for t in selectedtracks]))
@@ -2238,7 +2238,7 @@ def talkvote_vote(request, confname):
session = get_object_or_404(ConferenceSession, conference=conference, id=request.POST['sessionid'])
v = int(request.POST['vote'])
if v > 0:
- vote,created = ConferenceSessionVote.objects.get_or_create(session=session, voter=request.user)
+ vote, created = ConferenceSessionVote.objects.get_or_create(session=session, voter=request.user)
vote.vote = v
vote.save()
else:
@@ -2260,7 +2260,7 @@ def talkvote_comment(request, confname):
return HttpResponse('Can only use POST')
session = get_object_or_404(ConferenceSession, conference=conference, id=request.POST['sessionid'])
- vote,created = ConferenceSessionVote.objects.get_or_create(session=session, voter=request.user)
+ vote, created = ConferenceSessionVote.objects.get_or_create(session=session, voter=request.user)
vote.comment = request.POST['comment']
vote.save()
@@ -2298,7 +2298,7 @@ def createschedule(request, confname):
re_slot = re.compile('^slot(\d+)$')
for sess in conference.conferencesession_set.all():
found = False
- for k,v in request.POST.items():
+ for k, v in request.POST.items():
if v == "sess%s" % sess.id:
sm = re_slot.match(k)
if not sm:
@@ -2343,7 +2343,7 @@ def createschedule(request, confname):
days = []
- for d,d_sessions in raw.items():
+ for d, d_sessions in raw.items():
sessionset = SessionSet(allrooms, allrooms, conference.schedulewidth, conference.pixelsperminute, d_sessions)
days.append({
'day': d,
@@ -2459,7 +2459,7 @@ def simple_report(request, confname):
d = curs.fetchall()
collist = [dd[0] for dd in curs.description]
# Get offsets of all columns that don't start with _
- colofs = [n for x,n in zip(collist, range(len(collist))) if not x.startswith('_')]
+ colofs = [n for x, n in zip(collist, range(len(collist))) if not x.startswith('_')]
if len(colofs) != len(collist):
# One or more columns filtered - so filter the data
d = map(itemgetter(*colofs), d)
@@ -2569,7 +2569,7 @@ RIGHT JOIN confreg_discountcode dc ON dc.code=r.vouchercode
LEFT JOIN confreg_bulkpayment bp ON bp.id=r.bulkpayment_id
WHERE dc.conference_id={1} AND (r.conference_id={1} OR r.conference_id IS NULL) GROUP BY dc.id ORDER BY code""".format(statusstr.format('maxuses'), conference.id))
tables.append({'title': 'Discount codes',
- 'columns': ['id', 'Code', 'Expires', 'Max uses', 'Confirmed', 'Invoiced', 'Unconfirmed','Total', 'Remaining'],
+ 'columns': ['id', 'Code', 'Expires', 'Max uses', 'Confirmed', 'Invoiced', 'Unconfirmed', 'Total', 'Remaining', ],
'fixedcols': 3,
'hidecols': 1,
'linker': lambda x: '../discountcodes/{0}/'.format(x[0]),
@@ -2610,7 +2610,7 @@ def admin_registration_list(request, urlname):
revsort = False
sortmap = {
- 'last':'lastname',
+ 'last': 'lastname',
'first': 'firstname',
'company': 'company',
'type': 'regtype__sortkey',
@@ -3099,7 +3099,7 @@ def transfer_reg(request, urlname):
transaction.set_rollback(True)
return HttpResponseRedirect('.')
transaction.savepoint_commit(savepoint)
- messages.info(request,"Registration transfer completed.")
+ messages.info(request, "Registration transfer completed.")
return HttpResponseRedirect('../')
else:
transaction.savepoint_rollback(savepoint)
@@ -3136,7 +3136,7 @@ def crossmail(request):
if not conf in conferenceids:
raise ValidationError("Invalid conference selected")
- (t,v) = filt.split(':')
+ (t, v) = filt.split(':')
if t == 'rt':
# Regtype
q = "SELECT attendee_id, email, firstname || ' ' || lastname, regtoken FROM confreg_conferenceregistration WHERE conference_id={0} AND payconfirmedat IS NOT NULL".format(conf)
@@ -3243,7 +3243,7 @@ def crossmailoptions(request):
])
r.extend([
{'id': 'sp:{0}'.format(k), 'title': u'Speaker: {0}'.format(v)}
- for k,v in STATUS_CHOICES
+ for k, v in STATUS_CHOICES
])
return HttpResponse(json.dumps(r), content_type="application/json")
diff --git a/postgresqleu/confsponsor/backendforms.py b/postgresqleu/confsponsor/backendforms.py
index eef2ca64..b5bdab2b 100644
--- a/postgresqleu/confsponsor/backendforms.py
+++ b/postgresqleu/confsponsor/backendforms.py
@@ -100,7 +100,7 @@ class BackendSponsorshipLevelBenefitForm(BackendForm):
return json.dumps([{
'source': 'id_benefit_class',
'target': 'id_class_parameters',
- 'map': {k:v['class'].default_params for k,v in all_benefits.items()}
+ 'map': {k: v['class'].default_params for k, v in all_benefits.items()}
}])
class BackendSponsorshipLevelBenefitManager(object):
diff --git a/postgresqleu/confsponsor/benefitclasses/attendeelist.py b/postgresqleu/confsponsor/benefitclasses/attendeelist.py
index 8da2fd38..b72e504a 100644
--- a/postgresqleu/confsponsor/benefitclasses/attendeelist.py
+++ b/postgresqleu/confsponsor/benefitclasses/attendeelist.py
@@ -14,7 +14,7 @@ class AttendeeListForm(BaseBenefitForm):
confirm = forms.ChoiceField(label="Claim benefit", choices=((0, '* Choose'), (1, 'Claim this benefit'), (2, 'Decline this benefit')))
def clean_confirm(self):
- if not int(self.cleaned_data['confirm']) in (1,2):
+ if not int(self.cleaned_data['confirm']) in (1, 2):
raise ValidationError('You must decide if you want to claim this benefit')
return self.cleaned_data['confirm']
diff --git a/postgresqleu/confsponsor/benefitclasses/requireclaiming.py b/postgresqleu/confsponsor/benefitclasses/requireclaiming.py
index f96ffc0c..a3c443a5 100644
--- a/postgresqleu/confsponsor/benefitclasses/requireclaiming.py
+++ b/postgresqleu/confsponsor/benefitclasses/requireclaiming.py
@@ -7,7 +7,7 @@ class RequireClaimingForm(BaseBenefitForm):
confirm = forms.ChoiceField(label="Claim benefit", choices=((0, '* Choose'), (1, 'Claim this benefit'), (2, 'Decline this benefit')))
def clean_confirm(self):
- if not int(self.cleaned_data['confirm']) in (1,2):
+ if not int(self.cleaned_data['confirm']) in (1, 2):
raise ValidationError('You must decide if you want to claim this benefit')
return self.cleaned_data['confirm']
diff --git a/postgresqleu/confsponsor/benefits.py b/postgresqleu/confsponsor/benefits.py
index 44fa22ce..f4bbcfaf 100644
--- a/postgresqleu/confsponsor/benefits.py
+++ b/postgresqleu/confsponsor/benefits.py
@@ -1,6 +1,6 @@
from benefitclasses import all_benefits
-benefit_choices = [(k, v['name']) for k,v in all_benefits.items()]
+benefit_choices = [(k, v['name']) for k, v in all_benefits.items()]
def get_benefit_class(benefitid):
return all_benefits[benefitid]['class']
diff --git a/postgresqleu/confsponsor/models.py b/postgresqleu/confsponsor/models.py
index 7cf823b3..28f2c846 100644
--- a/postgresqleu/confsponsor/models.py
+++ b/postgresqleu/confsponsor/models.py
@@ -44,7 +44,7 @@ pre_delete.connect(delete_inline_storage, sender=SponsorshipContract)
class SponsorshipLevel(models.Model):
conference = models.ForeignKey(Conference, null=False, blank=False, on_delete=models.CASCADE)
levelname = models.CharField(max_length=100, null=False, blank=False)
- urlname = models.CharField(max_length=100, null=False, blank=False, validators=[validate_lowercase,])
+ urlname = models.CharField(max_length=100, null=False, blank=False, validators=[validate_lowercase, ])
levelcost = models.IntegerField(null=False, blank=False, verbose_name="Cost")
available = models.BooleanField(null=False, blank=False, default=True, verbose_name="Available for signup")
maxnumber = models.IntegerField(null=False, blank=False, default=0, verbose_name="Maximum number of sponsors")
diff --git a/postgresqleu/confwiki/admin.py b/postgresqleu/confwiki/admin.py
index 76ee0c56..99257137 100644
--- a/postgresqleu/confwiki/admin.py
+++ b/postgresqleu/confwiki/admin.py
@@ -36,7 +36,7 @@ class WikipageAdminForm(SelectableWidgetAdminFormMixin, ConcurrentProtectedModel
class WikipageHistoryInline(admin.TabularInline):
model = WikipageHistory
readonly_fields = ['author', 'publishedat']
- exclude = ['contents',]
+ exclude = ['contents', ]
can_delete = False
max_num = 0
extra = 0
@@ -56,7 +56,7 @@ class AttendeeSignupAdminForm(ConcurrentProtectedModelForm):
class Meta:
model = AttendeeSignup
exclude = []
- readonly_fields = ['signup',]
+ readonly_fields = ['signup', ]
def __init__(self, *args, **kwargs):
super(AttendeeSignupAdminForm, self).__init__(*args, **kwargs)
@@ -67,7 +67,7 @@ class AttendeeSignupAdminForm(ConcurrentProtectedModelForm):
class AttendeeSignupAdmin(admin.ModelAdmin):
form = AttendeeSignupAdminForm
- list_display = ['signup', 'attendee',]
+ list_display = ['signup', 'attendee', ]
list_filter = ['signup__conference', ]
admin.site.register(Wikipage, WikipageAdmin)
diff --git a/postgresqleu/confwiki/forms.py b/postgresqleu/confwiki/forms.py
index 9e4aaba2..b8cfa7ae 100644
--- a/postgresqleu/confwiki/forms.py
+++ b/postgresqleu/confwiki/forms.py
@@ -39,11 +39,11 @@ class SignupSubmitForm(forms.Form):
if signup.options:
choices = signup.options.split(',')
- self.fields['choice'].choices = [(k,k) for k in choices]
+ self.fields['choice'].choices = [(k, k) for k in choices]
self.fields['choice'].choices.insert(0, ('', ''))
else:
# This one is boolean only
- self.fields['choice'].choices = (('', ''), ('yes','Yes'), ('', 'No'), )
+ self.fields['choice'].choices = (('', ''), ('yes', 'Yes'), ('', 'No'), )
if attendee_signup:
self.fields['choice'].initial = attendee_signup.choice
@@ -105,11 +105,11 @@ class SignupAdminEditSignupForm(ConcurrentProtectedModelForm):
if signup.options:
choices = signup.options.split(',')
- self.fields['choice'].choices = [(k,k) for k in choices]
+ self.fields['choice'].choices = [(k, k) for k in choices]
self.fields['choice'].choices.insert(0, ('', ''))
else:
# This one is boolean only
- self.fields['choice'].choices = (('', ''), ('yes','Yes'), ('', 'No'), )
+ self.fields['choice'].choices = (('', ''), ('yes', 'Yes'), ('', 'No'), )
self.fields['choice'].required = False
class SignupSendmailForm(forms.Form):
diff --git a/postgresqleu/confwiki/models.py b/postgresqleu/confwiki/models.py
index f793388f..a8591241 100644
--- a/postgresqleu/confwiki/models.py
+++ b/postgresqleu/confwiki/models.py
@@ -11,7 +11,7 @@ class Wikipage(models.Model, DiffableModel):
conference = models.ForeignKey(Conference, null=False, blank=False, on_delete=models.CASCADE)
url = models.CharField(max_length=100, null=False, blank=False, validators=[
RegexValidator(regex='^[a-zA-Z0-9_-]+$',
- message='Invalid character in urlname. Only alphanumerical, underscore and dash are allowed.'),])
+ message='Invalid character in urlname. Only alphanumerical, underscore and dash are allowed.'), ])
title = models.CharField(max_length=100, null=False, blank=False)
author = models.ForeignKey(ConferenceRegistration, null=False, blank=False, on_delete=models.CASCADE)
publishedat = models.DateTimeField(null=False, blank=False, auto_now=True)
@@ -119,8 +119,8 @@ class Signup(models.Model):
intro = models.TextField(null=False, blank=False)
deadline = models.DateTimeField(null=True, blank=True)
maxsignups = models.IntegerField(null=False, blank=False, default=-1)
- options = models.CharField(max_length=1000, null=False, blank=True, help_text="Comma separated list of options to choose.", validators=[validate_options,])
- optionvalues = models.CharField(max_length=1000, null=False, blank=True, help_text="Optional comma separated list of how much each choice counts towards the max value", validators=[validate_optionvalues,])
+ options = models.CharField(max_length=1000, null=False, blank=True, help_text="Comma separated list of options to choose.", validators=[validate_options, ])
+ optionvalues = models.CharField(max_length=1000, null=False, blank=True, help_text="Optional comma separated list of how much each choice counts towards the max value", validators=[validate_optionvalues, ])
public = models.BooleanField(null=False, blank=False, default=False, help_text="All attendees can sign up")
visible = models.BooleanField(null=False, blank=False, default=False, help_text="Show who have signed up to all invited attendees")
diff --git a/postgresqleu/confwiki/views.py b/postgresqleu/confwiki/views.py
index 7eeec305..dd867a91 100644
--- a/postgresqleu/confwiki/views.py
+++ b/postgresqleu/confwiki/views.py
@@ -241,7 +241,7 @@ def admin_edit_page(request, urlname, pageid):
f = form.save(commit=False)
form.save_m2m()
s = StringIO()
- for k,v in f.diff.items():
+ for k, v in f.diff.items():
if type(v[0]) == list:
fr = u", ".join([unicode(o) for o in v[0]])
else:
@@ -477,9 +477,9 @@ def signup_admin_sendmail(request, urlname, signupid):
form = SignupSendmailForm(additional_choices, data=request.POST, num=numtosend)
if form.is_valid():
- towhat = next(v for k,v in form.recipient_choices if k == rr)
+ towhat = next(v for k, v in form.recipient_choices if k == rr)
recipients = exec_to_list("SELECT firstname || ' ' || lastname, email {0}".format(qq), params)
- for n,e in recipients:
+ for n, e in recipients:
send_simple_mail(conference.contactaddr,
e,
form.cleaned_data['subject'],
diff --git a/postgresqleu/elections/forms.py b/postgresqleu/elections/forms.py
index 84282b28..072eea58 100644
--- a/postgresqleu/elections/forms.py
+++ b/postgresqleu/elections/forms.py
@@ -23,7 +23,7 @@ class VoteForm(forms.Form):
for vote in self.votes:
votemap[vote.candidate_id] = vote.score
- dropdown = [(x,self._votestring(x)) for x in range(1,len(self.candidates) + 1)]
+ dropdown = [(x, self._votestring(x)) for x in range(1, len(self.candidates) + 1)]
dropdown.insert(0, (-1, '** Please rate this candidate'))
# Dynamically add a dropdown field for each candidate
@@ -43,7 +43,7 @@ class VoteForm(forms.Form):
def clean(self):
# First, make sure all existing fields are actually filled out
- for (k,v) in self.cleaned_data.items():
+ for (k, v) in self.cleaned_data.items():
if k.startswith('cand'):
if v == "-1":
self._errors[k] = ErrorList(["You need to select a score for this candidate!"])
@@ -63,7 +63,7 @@ class VoteForm(forms.Form):
# Finally, verify that all options have been found, and none have been duplicated
options = range(1, len(self.candidates) + 1)
- for k,v in self.cleaned_data.items():
+ for k, v in self.cleaned_data.items():
if int(v) in options:
# First use is ok. Take it out of the list, so next attempt generates error
del options[options.index(int(v))]
@@ -83,7 +83,7 @@ class VoteForm(forms.Form):
# Let's see if the old votes are here
if len(self.votes) == 0:
# This is completely new, let's create votes for him
- for k,v in self.cleaned_data.items():
+ for k, v in self.cleaned_data.items():
id = int(k[4:])
Vote(election=self.election, voter=self.member, candidate_id=id, score=v).save()
self.votes = Vote.objects.filter(election=self.election, voter=self.member)
diff --git a/postgresqleu/invoices/forms.py b/postgresqleu/invoices/forms.py
index 92715b1d..9924b317 100644
--- a/postgresqleu/invoices/forms.py
+++ b/postgresqleu/invoices/forms.py
@@ -35,12 +35,12 @@ class InvoiceForm(forms.ModelForm):
self.fields['allowedmethods'].queryset = InvoicePaymentMethod.objects.filter(active=True)
self.fields['allowedmethods'].label_from_instance = lambda m: "{0} ({1})".format(m.name, m.internaldescription)
- self.fields['accounting_account'].choices = [(0, '----'),] + [(a.num, "%s: %s" % (a.num, a.name)) for a in Account.objects.filter(availableforinvoicing=True)]
- self.fields['accounting_object'].choices = [('', '----'),] + [(o.name, o.name) for o in Object.objects.filter(active=True)]
+ self.fields['accounting_account'].choices = [(0, '----'), ] + [(a.num, "%s: %s" % (a.num, a.name)) for a in Account.objects.filter(availableforinvoicing=True)]
+ self.fields['accounting_object'].choices = [('', '----'), ] + [(o.name, o.name) for o in Object.objects.filter(active=True)]
if self.instance.finalized:
# All fields should be read-only for finalized invoices
- for fn,f in self.fields.items():
+ for fn, f in self.fields.items():
if self.instance.ispaid or not fn in self.available_in_finalized:
if type(f.widget).__name__ in ('TextInput', 'Textarea', 'DateInput', 'DateTimeInput'):
f.widget.attrs['readonly'] = "readonly"
diff --git a/postgresqleu/invoices/management/commands/setup_payment_providers.py b/postgresqleu/invoices/management/commands/setup_payment_providers.py
index 78a20653..325d8f54 100644
--- a/postgresqleu/invoices/management/commands/setup_payment_providers.py
+++ b/postgresqleu/invoices/management/commands/setup_payment_providers.py
@@ -20,27 +20,27 @@ class Command(BaseCommand):
self.stdout.write("Updated classname for {0}.".format(self.style.WARNING(c)))
# Create the ones that don't exist if any
- (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.paypal.Paypal', defaults={'name':'Paypal or credit card', 'sortkey':100, 'auto': False, 'internaldescription': 'Paypal', 'active': False})
+ (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.paypal.Paypal', defaults={'name': 'Paypal or credit card', 'sortkey': 100, 'auto': False, 'internaldescription': 'Paypal', 'active': False})
if created:
self.stdout.write("Created payment method Paypal ({0})".format(self.style.WARNING("disabled")))
- (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.banktransfer.Banktransfer', defaults={'name':'Bank transfer', 'sortkey':200, 'auto':False, 'internaldescription': 'Manual bank transfer', 'active': False})
+ (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.banktransfer.Banktransfer', defaults={'name': 'Bank transfer', 'sortkey': 200, 'auto': False, 'internaldescription': 'Manual bank transfer', 'active': False})
if created:
self.stdout.write("Created payment method Manual bank transfer ({0})".format(self.style.WARNING("disabled")))
- (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.adyen.AdyenCreditcard', defaults={'name':'Credit card', 'sortkey':50, 'auto':False, 'internaldescription': 'Adyen creditcard', 'active': False})
+ (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.adyen.AdyenCreditcard', defaults={'name': 'Credit card', 'sortkey': 50, 'auto': False, 'internaldescription': 'Adyen creditcard', 'active': False})
if created:
self.stdout.write("Created payment method Adyen creditcard ({0})".format(self.style.WARNING("disabled")))
- (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.adyen.AdyenBanktransfer', defaults={'name':'Direct bank transfer', 'sortkey':75, 'auto':False, 'internaldescription': 'Adyen managed bank transfer', 'active': False})
+ (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.adyen.AdyenBanktransfer', defaults={'name': 'Direct bank transfer', 'sortkey': 75, 'auto': False, 'internaldescription': 'Adyen managed bank transfer', 'active': False})
if created:
self.stdout.write("Created payment method Adyen bank transfer ({0})".format(self.style.WARNING("disabled")))
- (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.dummy.DummyPayment', defaults={'name':'Dummy', 'sortkey':999, 'auto':False, 'active':False})
+ (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.dummy.DummyPayment', defaults={'name': 'Dummy', 'sortkey': 999, 'auto': False, 'active': False})
if created:
self.stdout.write("Created payment method Dummy ({0})".format(self.style.WARNING("disabled")))
- (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.braintree.BrainTree', defaults={'name':'Credit card', 'sortkey':51, 'auto':False, 'internaldescription': 'Braintree managed creditcard', 'active': False})
+ (p, created) = InvoicePaymentMethod.objects.get_or_create(classname='postgresqleu.util.payment.braintree.BrainTree', defaults={'name': 'Credit card', 'sortkey': 51, 'auto': False, 'internaldescription': 'Braintree managed creditcard', 'active': False})
if created:
self.stdout.write("Created payment method Braintree creditcard ({0})".format(self.style.WARNING("disabled")))
diff --git a/postgresqleu/invoices/models.py b/postgresqleu/invoices/models.py
index 2466ff7c..d61e3e8d 100644
--- a/postgresqleu/invoices/models.py
+++ b/postgresqleu/invoices/models.py
@@ -34,7 +34,7 @@ class InvoicePaymentMethod(models.Model):
return self.name
class Meta:
- ordering = ['sortkey',]
+ ordering = ['sortkey', ]
class InvoiceRefund(models.Model):
reason = models.CharField(max_length=500, null=False, blank=True, default='', help_text="Reason for refunding of invoice")
@@ -231,7 +231,7 @@ class InvoiceHistory(models.Model):
txt = models.CharField(max_length=100, null=False, blank=False)
class Meta:
- ordering = ['time',]
+ ordering = ['time', ]
def __unicode__(self):
return self.txt
diff --git a/postgresqleu/invoices/templatetags/util.py b/postgresqleu/invoices/templatetags/util.py
index 373b2304..89b97782 100644
--- a/postgresqleu/invoices/templatetags/util.py
+++ b/postgresqleu/invoices/templatetags/util.py
@@ -4,5 +4,5 @@ register = template.Library()
@register.filter
def stringreplace(value, pattern):
- (old,new) = pattern.split(',')
- return value.replace(old,new)
+ (old, new) = pattern.split(',')
+ return value.replace(old, new)
diff --git a/postgresqleu/invoices/util.py b/postgresqleu/invoices/util.py
index 3c56d792..a318ccfc 100644
--- a/postgresqleu/invoices/util.py
+++ b/postgresqleu/invoices/util.py
@@ -394,7 +394,7 @@ class InvoiceManager(object):
leaveopen = False
else:
leaveopen = True
- urls = ['%s/invoices/%s/' % (settings.SITEBASE, invoice.pk),]
+ urls = ['%s/invoices/%s/' % (settings.SITEBASE, invoice.pk), ]
if extraurls:
urls.extend(extraurls)
@@ -511,7 +511,7 @@ class InvoiceManager(object):
(invoice.refund.vatrate.vataccount.num, accountingtxt, vatamount, None),
)
- urls = ['%s/invoices/%s/' % (settings.SITEBASE, invoice.pk),]
+ urls = ['%s/invoices/%s/' % (settings.SITEBASE, invoice.pk), ]
create_accounting_entry(date.today(), accrows, True, urls)
InvoiceHistory(invoice=invoice,
@@ -563,7 +563,7 @@ class InvoiceManager(object):
leaveopen = False
else:
leaveopen = True
- urls = ['%s/invoices/%s/' % (settings.SITEBASE, invoice.pk),]
+ urls = ['%s/invoices/%s/' % (settings.SITEBASE, invoice.pk), ]
if extraurls:
urls.extend(extraurls)
diff --git a/postgresqleu/invoices/views.py b/postgresqleu/invoices/views.py
index 71a6d967..fa66e5f8 100644
--- a/postgresqleu/invoices/views.py
+++ b/postgresqleu/invoices/views.py
@@ -199,13 +199,13 @@ def flaginvoice(request, invoicenum):
str = StringIO.StringIO()
def payment_logger(msg):
str.write(msg)
- (r,i,p) = mgr.process_incoming_payment(invoice.invoicestr,
- invoice.total_amount,
- request.POST['reason'],
- 0, # We assume this was a bank payment without cost
- settings.ACCOUNTING_MANUAL_INCOME_ACCOUNT,
- 0, # costaccount
- logger=payment_logger)
+ (r, i, p) = mgr.process_incoming_payment(invoice.invoicestr,
+ invoice.total_amount,
+ request.POST['reason'],
+ 0, # We assume this was a bank payment without cost
+ settings.ACCOUNTING_MANUAL_INCOME_ACCOUNT,
+ 0, # costaccount
+ logger=payment_logger)
if r != InvoiceManager.RESULT_OK:
return HttpResponse("Failed to process payment flagging:\n%s" % str.getvalue(),
diff --git a/postgresqleu/mailqueue/util.py b/postgresqleu/mailqueue/util.py
index 646b2e3a..c075e458 100644
--- a/postgresqleu/mailqueue/util.py
+++ b/postgresqleu/mailqueue/util.py
@@ -42,8 +42,8 @@ def send_simple_mail(sender, receiver, subject, msgtxt, attachments=None, bcc=No
if attachments:
for filename, contenttype, content in attachments:
- main,sub = contenttype.split('/')
- part = MIMENonMultipart(main,sub)
+ main, sub = contenttype.split('/')
+ part = MIMENonMultipart(main, sub)
part.set_payload(content)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % filename)
encoders.encode_base64(part)
diff --git a/postgresqleu/membership/views.py b/postgresqleu/membership/views.py
index 9274bd25..23dade0b 100644
--- a/postgresqleu/membership/views.py
+++ b/postgresqleu/membership/views.py
@@ -67,7 +67,7 @@ def home(request):
raise Exception("This should not happen - generating invoice when one already exists!")
manager = InvoiceManager()
processor = InvoiceProcessor.objects.get(processorname="membership processor")
- invoicerows = [('%s - %s years membership - %s' % (settings.ORG_NAME, settings.MEMBERSHIP_LENGTH, request.user.email), 1, settings.MEMBERSHIP_COST, None),]
+ invoicerows = [('%s - %s years membership - %s' % (settings.ORG_NAME, settings.MEMBERSHIP_LENGTH, request.user.email), 1, settings.MEMBERSHIP_COST, None), ]
member.activeinvoice = manager.create_invoice(
request.user,
request.user.email,
diff --git a/postgresqleu/newsevents/models.py b/postgresqleu/newsevents/models.py
index 0c797aa4..f872ca25 100644
--- a/postgresqleu/newsevents/models.py
+++ b/postgresqleu/newsevents/models.py
@@ -29,5 +29,5 @@ class News(models.Model):
return self.datetime.strftime("%d %B %Y")
class Meta:
- ordering = ['-datetime','title']
+ ordering = ['-datetime', 'title', ]
verbose_name_plural = 'News'
diff --git a/postgresqleu/paypal/management/commands/paypal_match.py b/postgresqleu/paypal/management/commands/paypal_match.py
index 6be4fde1..192c6b4d 100755
--- a/postgresqleu/paypal/management/commands/paypal_match.py
+++ b/postgresqleu/paypal/management/commands/paypal_match.py
@@ -32,7 +32,7 @@ class Command(BaseCommand):
for trans in translist:
# URLs for linkback to paypal
- urls = ["https://www.paypal.com/cgi-bin/webscr?cmd=_view-a-trans&id=%s" % trans.paypaltransid,]
+ urls = ["https://www.paypal.com/cgi-bin/webscr?cmd=_view-a-trans&id=%s" % trans.paypaltransid, ]
# Manual handling of some record types
@@ -123,16 +123,16 @@ class Command(BaseCommand):
),
).save()
- (r,i,p) = invoicemanager.process_incoming_payment(trans.transtext,
- trans.amount,
- "Paypal id %s, from %s <%s>" % (trans.paypaltransid, trans.sendername, trans.sender),
- trans.fee,
- settings.ACCOUNTING_PAYPAL_INCOME_ACCOUNT,
- settings.ACCOUNTING_PAYPAL_FEE_ACCOUNT,
- urls,
- payment_logger,
- InvoicePaymentMethod.objects.get(classname='postgresqleu.util.payment.paypal.Paypal'),
- )
+ (r, i, p) = invoicemanager.process_incoming_payment(trans.transtext,
+ trans.amount,
+ "Paypal id %s, from %s <%s>" % (trans.paypaltransid, trans.sendername, trans.sender),
+ trans.fee,
+ settings.ACCOUNTING_PAYPAL_INCOME_ACCOUNT,
+ settings.ACCOUNTING_PAYPAL_FEE_ACCOUNT,
+ urls,
+ payment_logger,
+ InvoicePaymentMethod.objects.get(classname='postgresqleu.util.payment.paypal.Paypal'),
+ )
if r == invoicemanager.RESULT_OK:
trans.setmatched('Matched standard invoice')
diff --git a/postgresqleu/paypal/models.py b/postgresqleu/paypal/models.py
index 308a7c5e..9c356eac 100644
--- a/postgresqleu/paypal/models.py
+++ b/postgresqleu/paypal/models.py
@@ -4,7 +4,7 @@ from datetime import datetime
class SourceAccount(models.Model):
accountname = models.CharField(max_length=16, null=False, blank=False)
- lastsync = models.DateTimeField(null=False, blank=False, default=datetime(2009,1,1))
+ lastsync = models.DateTimeField(null=False, blank=False, default=datetime(2009, 1, 1))
def __unicode__(self):
return self.accountname
diff --git a/postgresqleu/paypal/util.py b/postgresqleu/paypal/util.py
index e3771086..324ad587 100644
--- a/postgresqleu/paypal/util.py
+++ b/postgresqleu/paypal/util.py
@@ -46,7 +46,7 @@ class PaypalAPI(object):
continue
break
- yield dict([(k,r.get('L_{0}{1}'.format(k, i),[''])[0])
+ yield dict([(k, r.get('L_{0}{1}'.format(k, i), [''])[0])
for k in
('TRANSACTIONID', 'TIMESTAMP', 'EMAIL', 'TYPE', 'AMT', 'FEEAMT', 'NAME')])
diff --git a/postgresqleu/paypal/views.py b/postgresqleu/paypal/views.py
index d932f8fe..eda121a3 100644
--- a/postgresqleu/paypal/views.py
+++ b/postgresqleu/paypal/views.py
@@ -129,7 +129,7 @@ def paypal_return_handler(request):
# from the accounting system. Note that this is an undocumented
# URL format for paypal, so it may stop working at some point in
# the future.
- urls = ["https://www.paypal.com/cgi-bin/webscr?cmd=_view-a-trans&id=%s" % ti.paypaltransid,]
+ urls = ["https://www.paypal.com/cgi-bin/webscr?cmd=_view-a-trans&id=%s" % ti.paypaltransid, ]
# Separate out donations made through our website
if ti.transtext == settings.PAYPAL_DONATION_TEXT:
@@ -151,16 +151,16 @@ def paypal_return_handler(request):
})
invoicemanager = InvoiceManager()
- (r,i,p) = invoicemanager.process_incoming_payment(ti.transtext,
- ti.amount,
- "Paypal id %s, from %s <%s>, auto" % (ti.paypaltransid, ti.sendername, ti.sender),
- ti.fee,
- settings.ACCOUNTING_PAYPAL_INCOME_ACCOUNT,
- settings.ACCOUNTING_PAYPAL_FEE_ACCOUNT,
- urls,
- payment_logger,
- InvoicePaymentMethod.objects.get(classname='postgresqleu.util.payment.paypal.Paypal'),
- )
+ (r, i, p) = invoicemanager.process_incoming_payment(ti.transtext,
+ ti.amount,
+ "Paypal id %s, from %s <%s>, auto" % (ti.paypaltransid, ti.sendername, ti.sender),
+ ti.fee,
+ settings.ACCOUNTING_PAYPAL_INCOME_ACCOUNT,
+ settings.ACCOUNTING_PAYPAL_FEE_ACCOUNT,
+ urls,
+ payment_logger,
+ InvoicePaymentMethod.objects.get(classname='postgresqleu.util.payment.paypal.Paypal'),
+ )
if r == invoicemanager.RESULT_OK:
# Matched it!
ti.matched = True
diff --git a/postgresqleu/trustlypayment/api.py b/postgresqleu/trustlypayment/api.py
index 77690ff9..3f248132 100644
--- a/postgresqleu/trustlypayment/api.py
+++ b/postgresqleu/trustlypayment/api.py
@@ -73,7 +73,7 @@ class TrustlyWrapper(object):
else:
# Different currency, so ensure it's zero
if Decimal(b['balance']) != 0:
- raise TrustlyException('Found non-zero balance {0} for non-standard currency {1}'.format(b['balance'],b['currency']))
+ raise TrustlyException('Found non-zero balance {0} for non-standard currency {1}'.format(b['balance'], b['currency']))
if balance is None:
raise TrustlyException('Found no balance for {0}'.format(self.currency))
return balance
diff --git a/postgresqleu/trustlypayment/management/commands/send_trustly_logreport.py b/postgresqleu/trustlypayment/management/commands/send_trustly_logreport.py
index c184349a..07db06a2 100755
--- a/postgresqleu/trustlypayment/management/commands/send_trustly_logreport.py
+++ b/postgresqleu/trustlypayment/management/commands/send_trustly_logreport.py
@@ -24,7 +24,7 @@ class Command(BaseCommand):
@transaction.atomic
def report_loglines(self):
- lines = list(TrustlyLog.objects.filter(error=True,sent=False).order_by('timestamp'))
+ lines = list(TrustlyLog.objects.filter(error=True, sent=False).order_by('timestamp'))
if len(lines):
sio = StringIO()
sio.write("The following error events have been logged by the Trustly integration:\n\n")
diff --git a/postgresqleu/util/context_processors.py b/postgresqleu/util/context_processors.py
index 83175122..74e4991a 100644
--- a/postgresqleu/util/context_processors.py
+++ b/postgresqleu/util/context_processors.py
@@ -27,7 +27,7 @@ def settings_context_unicode(request=None):
# Same as settings_context, except convert all strings to unicode assuming
# utf-8.
c = settings_context(request)
- for k,v in c.items():
+ for k, v in c.items():
if isinstance(v, str):
c[k] = v.decode('utf8')
return c
diff --git a/postgresqleu/util/db.py b/postgresqleu/util/db.py
index 7f10cf5a..d3e291cd 100644
--- a/postgresqleu/util/db.py
+++ b/postgresqleu/util/db.py
@@ -35,7 +35,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(zip(columns, row))for row in curs.fetchall())}
def exec_to_grouped_dict(query, params=None):
curs = connection.cursor()
diff --git a/postgresqleu/util/diffablemodel.py b/postgresqleu/util/diffablemodel.py
index 47d692d9..8c4f68ab 100644
--- a/postgresqleu/util/diffablemodel.py
+++ b/postgresqleu/util/diffablemodel.py
@@ -18,14 +18,14 @@ class DiffableModel(object):
d2 = self._dict
diffs = dict([(k, (v, d2[k])) for k, v in d1.items() if v != d2[k]])
# Foreign key lookups
- for k,v in diffs.items():
+ for k, v in 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 diffs.items():
if k in manytomanyfieldnames and self.map_manytomany_for_diff.has_key(k):
# 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 c700b813..406cfc3e 100644
--- a/postgresqleu/util/forms.py
+++ b/postgresqleu/util/forms.py
@@ -17,7 +17,7 @@ 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 self.initial.items() if k in self.fields.keys()}
def update_protected_fields(self):
self.fields['_validator'].initial = Signer().sign(base64.urlsafe_b64encode(cPickle.dumps(self._filter_initial(), -1)))
@@ -41,7 +41,7 @@ class ConcurrentProtectedModelForm(forms.ModelForm):
s = Signer().unsign(self.cleaned_data['_validator'])
b = base64.urlsafe_b64decode(s.encode('utf8'))
d = cPickle.loads(b)
- for k,v in d.items():
+ for k, v in d.items():
if i[k] != v:
raise ValidationError("Concurrent modification of field {0}. Please reload the form and try again.".format(k))
except BadSignature:
diff --git a/postgresqleu/util/jsonutil.py b/postgresqleu/util/jsonutil.py
index 7783d364..08eb53ac 100644
--- a/postgresqleu/util/jsonutil.py
+++ b/postgresqleu/util/jsonutil.py
@@ -6,5 +6,5 @@ class JsonSerializer(json.JSONEncoder):
if isinstance(obj, datetime) or isinstance(obj, date):
return obj.isoformat()
if hasattr(obj, 'json_included_attributes'):
- return dict([(k,getattr(obj, k)) for k in obj.json_included_attributes])
+ return dict([(k, getattr(obj, k)) for k in obj.json_included_attributes])
return json.JSONEncoder.default(self, obj)
diff --git a/postgresqleu/util/management/commands/sessioninfo.py b/postgresqleu/util/management/commands/sessioninfo.py
index ea4b80a8..06a88d9c 100644
--- a/postgresqleu/util/management/commands/sessioninfo.py
+++ b/postgresqleu/util/management/commands/sessioninfo.py
@@ -30,8 +30,8 @@ class Command(BaseCommand):
session.pop(k, None)
if session:
print " -- Other session values --"
- for k,v in session.items():
- print u"{0:20} {1}".format(k,v)
+ for k, v in session.items():
+ print u"{0:20} {1}".format(k, v)
except Session.DoesNotExist:
raise CommandError('Session not found')
diff --git a/postgresqleu/util/messaging/twitter.py b/postgresqleu/util/messaging/twitter.py
index 6655ead2..60edcc7d 100644
--- a/postgresqleu/util/messaging/twitter.py
+++ b/postgresqleu/util/messaging/twitter.py
@@ -29,7 +29,7 @@ class Twitter(object):
def send_message(self, tousername, msg):
# Nor the username
- tousername = tousername.lower().replace('@','')
+ tousername = tousername.lower().replace('@', '')
# DM API calls require us to look up the userid, so do that with a
# tiny cache first.
diff --git a/postgresqleu/util/middleware.py b/postgresqleu/util/middleware.py
index 62f10734..10c45d08 100644
--- a/postgresqleu/util/middleware.py
+++ b/postgresqleu/util/middleware.py
@@ -20,16 +20,16 @@ class FilterPersistMiddleware(object):
referrer = request.META['HTTP_REFERER'].split('?')[0]
referrer = referrer[referrer.find('/admin'):len(referrer)]
- key = 'key' + path.replace('/','_')
+ key = 'key' + path.replace('/', '_')
if path == referrer: #We are in same page as before
if query_string == '': #Filter is empty, delete it
- if session.get(key,False):
+ if session.get(key, False):
del session[key]
return None
request.session[key] = query_string
elif '_directlink=1' in query_string: # Direct link to a filter, by ourselves, so remove it
- redirect_to = path + '?' + query_string.replace('&_directlink=1','')
+ redirect_to = path + '?' + query_string.replace('&_directlink=1', '')
if session.has_key(key):
del session[key]
return http.HttpResponseRedirect(redirect_to)
diff --git a/postgresqleu/util/misc/pgeuinvoice.py b/postgresqleu/util/misc/pgeuinvoice.py
index 4f9ac2f7..a72edeec 100755
--- a/postgresqleu/util/misc/pgeuinvoice.py
+++ b/postgresqleu/util/misc/pgeuinvoice.py
@@ -63,7 +63,7 @@ class PDFBase(object):
t = self.canvas.beginText()
t.setTextOrigin(6*cm, 4*cm)
t.setFont("DejaVu Serif Italic", 70)
- t.setFillColorRGB(0.9,0.9,0.9)
+ t.setFillColorRGB(0.9, 0.9, 0.9)
t.textLine("PREVIEW PREVIEW")
self.canvas.rotate(45)
self.canvas.drawText(t)
@@ -75,7 +75,7 @@ class PDFBase(object):
t.setFillColor(colors.black)
t.setFont("DejaVu Serif", 9)
t.setTextOrigin(6*cm, 27.5*cm)
- self.textlines(t,"""PostgreSQL Europe
+ self.textlines(t, """PostgreSQL Europe
Carpeaux Diem
13, rue du Square Carpeaux
75018 PARIS
@@ -144,16 +144,16 @@ class PDFInvoice(PDFBase):
if self.invoicenum:
if self.receipt:
- self.canvas.drawCentredString(10.5*cm,18.5*cm, "Receipt for invoice number %s%s" % (self.invoicenum, suffix))
+ self.canvas.drawCentredString(10.5*cm, 18.5*cm, "Receipt for invoice number %s%s" % (self.invoicenum, suffix))
else:
- self.canvas.drawCentredString(10.5*cm,18.5*cm, "Invoice number %s - %s%s" % (self.invoicenum, self.invoicedate.strftime("%B %d, %Y"),suffix))
+ self.canvas.drawCentredString(10.5*cm, 18.5*cm, "Invoice number %s - %s%s" % (self.invoicenum, self.invoicedate.strftime("%B %d, %Y"), suffix))
self.canvas.setFont('DejaVu Serif Bold', 10)
if self.receipt:
self.canvas.drawCentredString(17*cm, 28*cm, "Receipt #%s" % self.invoicenum)
else:
self.canvas.drawCentredString(17*cm, 28*cm, "Invoice #%s" % self.invoicenum)
else:
- self.canvas.drawCentredString(10.5*cm,18.5*cm, "Receipt - %s%s" % (self.invoicedate.strftime("%B %d, %Y"), suffix))
+ self.canvas.drawCentredString(10.5*cm, 18.5*cm, "Receipt - %s%s" % (self.invoicedate.strftime("%B %d, %Y"), suffix))
if pagenum == 0:
firstcol = "Item"
@@ -167,18 +167,18 @@ class PDFInvoice(PDFBase):
"%.2f %s" % (cost, self.currency),
vatrate and vatrate.shortstr or "No VAT",
"%.2f %s" % ((cost * count) * (1+(vatpercent/Decimal(100))), self.currency))
- for title,cost, count, vatrate, vatpercent in self.rows[pagenum*self.ROWS_PER_PAGE:(pagenum+1)*self.ROWS_PER_PAGE]])
+ for title, cost, count, vatrate, vatpercent in self.rows[pagenum*self.ROWS_PER_PAGE:(pagenum+1)*self.ROWS_PER_PAGE]])
style = [
('FONTSIZE', (0, 0), (-1, -1), 8),
- ('BACKGROUND',(0,0),(tblcols-1,0),colors.lightgrey),
- ('ALIGN',(1,0),(tblcols-1,-1),'RIGHT'),
- ('LINEBELOW',(0,0),(-1,0), 2, colors.black),
- ('OUTLINE', (0,0), (-1, -1), 1, colors.black),
+ ('BACKGROUND', (0, 0), (tblcols-1, 0), colors.lightgrey),
+ ('ALIGN', (1, 0), (tblcols-1, -1), 'RIGHT'),
+ ('LINEBELOW', (0, 0), (-1, 0), 2, colors.black),
+ ('OUTLINE', (0, 0), (-1, -1), 1, colors.black),
]
if islastpage:
- totalexcl = sum([cost*count for title,cost,count,vatrate,vatpercent in self.rows])
- totalvat = sum([(cost*count*(vatpercent/Decimal(100))).quantize(Decimal('0.01')) for title,cost,count,vatrate,vatpercent in self.rows])
- totalincl = sum([(cost*count*(1+vatpercent/Decimal(100))).quantize(Decimal('0.01')) for title,cost,count,vatrate,vatpercent in self.rows])
+ totalexcl = sum([cost*count for title, cost, count, vatrate, vatpercent in self.rows])
+ totalvat = sum([(cost*count*(vatpercent/Decimal(100))).quantize(Decimal('0.01')) for title, cost, count, vatrate, vatpercent in self.rows])
+ totalincl = sum([(cost*count*(1+vatpercent/Decimal(100))).quantize(Decimal('0.01')) for title, cost, count, vatrate, vatpercent in self.rows])
if self.totalvat > 0 and totalvat != self.totalvat:
raise Exception("Specified total VAT {0} does not match calculated VAT {1}".format(self.totalvat, totalvat))
@@ -201,7 +201,7 @@ class PDFInvoice(PDFBase):
('SPAN', (0, -2), (3, -2)),
('SPAN', (0, -1), (3, -1)),
('ALIGN', (0, -3), (0, -1), 'RIGHT'),
- ('LINEABOVE', (-4,-3), (-1, -3), 2, colors.black),
+ ('LINEABOVE', (-4, -3), (-1, -3), 2, colors.black),
])
else:
tbldata.append([' Continued on page %s' % (pagenum + 2), '', '', ''])
@@ -210,13 +210,13 @@ class PDFInvoice(PDFBase):
t = Table(tbldata, [9.5*cm, 1.5*cm, 2.5*cm, 2*cm, 2.5*cm])
t.setStyle(TableStyle(style))
- w,h = t.wrapOn(self.canvas,10*cm,10*cm)
+ w, h = t.wrapOn(self.canvas, 10*cm, 10*cm)
t.drawOn(self.canvas, 2*cm, 18*cm-h)
if self.receipt:
- self.canvas.drawCentredString(10.5*cm,17.3*cm-h, "This invoice was paid %s" % self.duedate.strftime("%B %d, %Y"))
+ self.canvas.drawCentredString(10.5*cm, 17.3*cm-h, "This invoice was paid %s" % self.duedate.strftime("%B %d, %Y"))
else:
- self.canvas.drawCentredString(10.5*cm,17.3*cm-h, "This invoice is due: %s" % self.duedate.strftime("%B %d, %Y"))
+ self.canvas.drawCentredString(10.5*cm, 17.3*cm-h, "This invoice is due: %s" % self.duedate.strftime("%B %d, %Y"))
if islastpage:
@@ -294,7 +294,7 @@ class PDFRefund(PDFBase):
def save(self):
self._pageheader()
- self.canvas.drawCentredString(10.5*cm,19*cm, "REFUND NOTE FOR INVOICE NUMBER {0}".format(self.invoicenum))
+ self.canvas.drawCentredString(10.5*cm, 19*cm, "REFUND NOTE FOR INVOICE NUMBER {0}".format(self.invoicenum))
tblpaid = [
["Amount paid"],
@@ -317,26 +317,26 @@ class PDFRefund(PDFBase):
])
style = [
- ('SPAN', (0,0), (1,0)),
- ('BACKGROUND',(0,0),(-1,0),colors.lightgrey),
- ('ALIGN',(0,0),(0,0),'CENTER'),
- ('ALIGN',(1,1),(1,-1),'RIGHT'),
- ('LINEBELOW',(0,1),(-1,1), 1, colors.black),
- ('OUTLINE', (0,0), (-1, -1), 1, colors.black),
+ ('SPAN', (0, 0), (1, 0)),
+ ('BACKGROUND', (0, 0), (-1, 0), colors.lightgrey),
+ ('ALIGN', (0, 0), (0, 0), 'CENTER'),
+ ('ALIGN', (1, 1), (1, -1), 'RIGHT'),
+ ('LINEBELOW', (0, 1), (-1, 1), 1, colors.black),
+ ('OUTLINE', (0, 0), (-1, -1), 1, colors.black),
]
if self.invoicevat:
style.append(
- ('LINEABOVE', (-1,-1), (-1,-1), 2, colors.black),
+ ('LINEABOVE', (-1, -1), (-1, -1), 2, colors.black),
)
t = Table(tblpaid, [10.5*cm, 2.5*cm, 1.5*cm, 2.5*cm])
t.setStyle(TableStyle(style))
- w,h = t.wrapOn(self.canvas,10*cm,10*cm)
+ w, h = t.wrapOn(self.canvas, 10*cm, 10*cm)
t.drawOn(self.canvas, (self.canvas._pagesize[0]-w)/2, 18*cm-h)
t = Table(tblrefunded, [10.5*cm, 2.5*cm, 1.5*cm, 2.5*cm])
t.setStyle(TableStyle(style))
- w,h = t.wrapOn(self.canvas,10*cm,10*cm)
+ w, h = t.wrapOn(self.canvas, 10*cm, 10*cm)
t.drawOn(self.canvas, (self.canvas._pagesize[0]-w)/2, 18*cm-h*2-1*cm)
self.canvas.drawCentredString(10.5*cm, 17.3*cm-h*2 - 2*cm, "This refund was issued {0}".format(self.refunddate.strftime("%B %d, %Y")))
diff --git a/postgresqleu/util/payment/adyen.py b/postgresqleu/util/payment/adyen.py
index 71975035..f9affe9b 100644
--- a/postgresqleu/util/payment/adyen.py
+++ b/postgresqleu/util/payment/adyen.py
@@ -19,7 +19,7 @@ from postgresqleu.adyen.models import TransactionStatus
from postgresqleu.adyen.util import AdyenAPI
def _escapeVal(val):
- return val.replace('\\','\\\\').replace(':','\\:')
+ return val.replace('\\', '\\\\').replace(':', '\\:')
def calculate_signature(param):
param = OrderedDict(sorted(param.items(), key=lambda t: t[0]))
@@ -53,7 +53,7 @@ class _AdyenBase(object):
param.update({
'merchantReference': '%s%s' % (settings.ADYEN_MERCHANTREF_PREFIX, invoiceid),
'paymentAmount': '%s' % (int(invoiceamount * Decimal(100.0)),),
- 'orderData': base64.encodestring(_gzip_string(orderdata.encode('utf-8'))).strip().replace("\n",''),
+ 'orderData': base64.encodestring(_gzip_string(orderdata.encode('utf-8'))).strip().replace("\n", ''),
'merchantReturnData': '%s%s' % (settings.ADYEN_MERCHANTREF_PREFIX, invoiceid),
'sessionValidity': (datetime.utcnow() + timedelta(minutes=30)).strftime('%Y-%m-%dT%H:%M:%SZ'),
'allowedMethods': allowedMethods,
diff --git a/postgresqleu/util/payment/paypal.py b/postgresqleu/util/payment/paypal.py
index 587576b7..066ac5f6 100644
--- a/postgresqleu/util/payment/paypal.py
+++ b/postgresqleu/util/payment/paypal.py
@@ -18,14 +18,14 @@ lower fees.
"""
PAYPAL_COMMON = {
- 'business':settings.PAYPAL_EMAIL,
- 'lc':'GB',
+ 'business': settings.PAYPAL_EMAIL,
+ 'lc': 'GB',
'currency_code': settings.CURRENCY_ABBREV,
- 'button_subtype':'services',
- 'no_note':'1',
- 'no_shipping':'1',
- 'bn':'PP-BuyNowBF:btn_buynowCC_LG.gif-NonHosted',
- 'charset':'utf-8',
+ 'button_subtype': 'services',
+ 'no_note': '1',
+ 'no_shipping': '1',
+ 'bn': 'PP-BuyNowBF:btn_buynowCC_LG.gif-NonHosted',
+ 'charset': 'utf-8',
}
def build_payment_url(self, invoicestr, invoiceamount, invoiceid, returnurl=None):
diff --git a/postgresqleu/util/validators.py b/postgresqleu/util/validators.py
index 942e17d0..79c7d46f 100644
--- a/postgresqleu/util/validators.py
+++ b/postgresqleu/util/validators.py
@@ -59,7 +59,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 config.items():
fullkey = "->".join(path + [k])
# Dicts don't have __name__
if type(structure[k]) == dict:
@@ -95,7 +95,7 @@ class PictureUrlValidator(object):
raise ValidationError("Downloading promo picture returned status %s" % r.status_code)
try:
img = Image.open(StringIO(r.content))
- w,h = img.size
+ w, h = img.size
if self.aspect:
newaspect = round(float(w) / float(h), 2)
if newaspect != self.aspect:
diff --git a/tools/accounting/oneoff/backfill_accounting.py b/tools/accounting/oneoff/backfill_accounting.py
index 6de9a8fb..ab50107d 100755
--- a/tools/accounting/oneoff/backfill_accounting.py
+++ b/tools/accounting/oneoff/backfill_accounting.py
@@ -114,13 +114,13 @@ if __name__ == "__main__":
allentries.append(thisentry)
# Find all other paypal transactions
- for ptrans in PaypalTrans.objects.filter(timestamp__gt=datetime(2013,01,01,0,0,0)).exclude(id__in=paypal_handled):
+ for ptrans in PaypalTrans.objects.filter(timestamp__gt=datetime(2013, 01, 01, 0, 0, 0)).exclude(id__in=paypal_handled):
if not ptrans.fee:
print "Paypal %s has no paypal fee, that can't be right!" % ptrans.id
continue
allentries.append({
'date': ptrans.timestamp.date(),
- 'text': 'Paypal %s - %s - update manually' % (ptrans.paypaltransid,ptrans.transtext),
+ 'text': 'Paypal %s - %s - update manually' % (ptrans.paypaltransid, ptrans.transtext),
'rows': [
(settings.ACCOUNTING_PAYPAL_FEE_ACCOUNT, ptrans.fee, None),
(settings.ACCOUNTING_PAYPAL_INCOME_ACCOUNT, ptrans.amount - ptrans.fee, None),
@@ -129,7 +129,7 @@ if __name__ == "__main__":
})
# Find all other adyen transactoins
- for atrans in AdyenTrans.objects.filter(authorizedat__gt=datetime(2013,01,01,0,0,0), settledat__isnull=False).exclude(id__in=adyen_handled):
+ for atrans in AdyenTrans.objects.filter(authorizedat__gt=datetime(2013, 01, 01, 0, 0, 0), settledat__isnull=False).exclude(id__in=adyen_handled):
if atrans.amount == 0:
print "Adyen transaction %s rounded off to 0, deal with manually!" % atrans.pspReference
continue
diff --git a/tools/deploystatic/deploystatic.py b/tools/deploystatic/deploystatic.py
index 8cb4a959..bd131243 100755
--- a/tools/deploystatic/deploystatic.py
+++ b/tools/deploystatic/deploystatic.py
@@ -47,7 +47,7 @@ def filter_shuffle(l):
# Format a datetime. If it's a datetime, call strftime. If it's a
# string, assume it's iso format and convert it to a date first.
def filter_datetimeformat(value, fmt):
- if isinstance(value, date) or isinstance(value, datetime) or isinstance(value,time):
+ if isinstance(value, date) or isinstance(value, datetime) or isinstance(value, time):
return value.strftime(fmt)
else:
return dateutil.parser.parse(value).strftime(fmt)
@@ -308,7 +308,7 @@ if __name__ == "__main__":
if args.branch:
env = jinja2.sandbox.SandboxedEnvironment(loader=JinjaTarLoader(source))
else:
- env = jinja2.sandbox.SandboxedEnvironment(loader=jinja2.FileSystemLoader([os.path.join(args.sourcepath, 'templates/'),]))
+ env = jinja2.sandbox.SandboxedEnvironment(loader=jinja2.FileSystemLoader([os.path.join(args.sourcepath, 'templates/'), ]))
env.filters.update(global_filters)
# If there is a context json, load it as well