Magnus Hagander [Wed, 18 Oct 2017 18:51:19 +0000 (20:51 +0200)]
Unicode fixes for confwiki
If the creator had non-ascii in their name, the system would crash on
sending admin notification.
Magnus Hagander [Mon, 16 Oct 2017 13:26:52 +0000 (15:26 +0200)]
Render pdf schedule form in admin framework
This should not be rendered under the conference template, because if it
does it will break on jinja based conferences.
Magnus Hagander [Mon, 16 Oct 2017 08:55:29 +0000 (10:55 +0200)]
Deploystatic needs to include static in template deploy mode
This is required because for example badge templates might reference
static data.
Magnus Hagander [Mon, 16 Oct 2017 08:40:46 +0000 (10:40 +0200)]
Inject equalto operator in jinja badge building
This is included in jinja 2.8, but not the 2.7 that production runs on.
Magnus Hagander [Mon, 9 Oct 2017 14:47:20 +0000 (16:47 +0200)]
Show waitlist positions
Magnus Hagander [Sun, 8 Oct 2017 17:59:43 +0000 (19:59 +0200)]
Don't show "penalty for late payment" on receipts
It needs to go on the invoice per the rules, but by definiton the
invoice has already paid when we issue a receipt, so no need to include
it there.
Magnus Hagander [Sun, 8 Oct 2017 17:55:34 +0000 (19:55 +0200)]
Make it easier to do partial refunds
In the most common case where the same VAT rate is used everywhere, make
it possible to just type in a percentage and have the system calculate
the actual amounts to be refunded.
Calculation is done client side and the user can/will have to change the
exact amounts for example if it comes out as a non-round number. This is
just a shortcut to avoid having to do manual calculation.
Magnus Hagander [Sat, 7 Oct 2017 15:54:56 +0000 (17:54 +0200)]
More clearly indicatae which sessions are confirmed and not in volsched
Previously all indicators were removed in the user view when everything
was done. Makes more sense to actually keep one that says "confirmed".
Magnus Hagander [Sat, 7 Oct 2017 15:52:06 +0000 (17:52 +0200)]
Make sign-up button same color and size as the other ones
Magnus Hagander [Sat, 7 Oct 2017 15:49:37 +0000 (17:49 +0200)]
Split up admin and volunteer view in volunteer schedule
The previous workflow didn't work very well if the same user was both
admin and volunteer.
Magnus Hagander [Fri, 6 Oct 2017 13:28:48 +0000 (15:28 +0200)]
Fix incorrect conversion from range type to end time
Dave Page [Fri, 6 Oct 2017 13:18:30 +0000 (14:18 +0100)]
Add missing comma to generated config file.
Magnus Hagander [Fri, 6 Oct 2017 12:57:48 +0000 (14:57 +0200)]
Change order of fields in volsched day headers
In order to sort properly, lead with the date.
Magnus Hagander [Fri, 6 Oct 2017 08:52:51 +0000 (10:52 +0200)]
Automatically process InvoiceDeduction accounting rows from Adyen
We now know enough that we do the same thing every time they show up, so
let's just automate that.
Magnus Hagander [Wed, 4 Oct 2017 15:11:48 +0000 (17:11 +0200)]
Include both id and names for additional options in json dump
Magnus Hagander [Wed, 4 Oct 2017 15:06:11 +0000 (17:06 +0200)]
Properly set debug parameter
Magnus Hagander [Wed, 4 Oct 2017 15:05:42 +0000 (17:05 +0200)]
Revert "Properly set debugging parameter in class"
Accidentally included part of unrelated development code :/
This reverts commit
93de76a0305fa582de2b9b9b7ab5ec8e6b8304a1.
Magnus Hagander [Wed, 4 Oct 2017 15:03:57 +0000 (17:03 +0200)]
Properly set debugging parameter in class
Magnus Hagander [Wed, 4 Oct 2017 15:03:26 +0000 (17:03 +0200)]
Add basic filters for jinjabadges and inlist tests
These are similar filters to what's already available for pages, but we
need to be able to filter strings in badges as well.
Magnus Hagander [Wed, 4 Oct 2017 15:03:06 +0000 (17:03 +0200)]
Support drawing of lines in jinjabadges
Magnus Hagander [Wed, 4 Oct 2017 15:02:34 +0000 (17:02 +0200)]
Allow empty entries in jinjabadge definition
This makes it a lot easier to set up conditionals in the templates as
it helps work around the issue with lack of trailing commas in JSON.
Magnus Hagander [Wed, 4 Oct 2017 15:01:40 +0000 (17:01 +0200)]
Fix json badge generation error reporting
Magnus Hagander [Wed, 4 Oct 2017 13:28:16 +0000 (15:28 +0200)]
Fix json export of conference days
Don't use the same variable name for more than one thing :) This worked
as long as we didn't attach days to a conference, which was normally
only done for pgconfeu.
Magnus Hagander [Wed, 4 Oct 2017 13:25:16 +0000 (15:25 +0200)]
Don't crash json export with NULL regclass
Magnus Hagander [Wed, 4 Oct 2017 09:06:26 +0000 (11:06 +0200)]
Add a default ordering for volunteer slots
Only used in the admin section, but important there...
Magnus Hagander [Wed, 4 Oct 2017 08:55:13 +0000 (10:55 +0200)]
Fix typos
Magnus Hagander [Tue, 3 Oct 2017 18:06:10 +0000 (20:06 +0200)]
Implement volunteer schedule management
This adds the concepts of VolunteerSlot and VolunteerAssignment.
Each VolunteerSlot has a minimum and a maximum number of volunteers.
Possible volunteers (listed in a new field on the conference itself) can
sign up for specific slots they are interested in, which must then be
confirmed by an admin (controlled by the admin field on the conference).
Admins can also add volunteers to specific slots, which must then be
confirmed by the volunteer.
There is also a per-volunteer ical feed using a secret URL (this adds a
regtoken field to all registrations, which is something we've already
needed for some other things as well, so it'll be good to have
regardless).
No notifications are sent in this system, that's all intended to be
manually handled by the volunteer manager, at least for now.
Magnus Hagander [Tue, 3 Oct 2017 11:25:23 +0000 (13:25 +0200)]
Make DateTimeRangeField's look better in admin
Daniel Gustafsson [Wed, 4 Oct 2017 07:46:21 +0000 (09:46 +0200)]
Add counters for total number on waitlist
When the waitlist grows large, it's hard to get an overview on just
how many attendees are in line. Add counters to the statistics table
for waiting and processed entries.
Magnus Hagander [Tue, 3 Oct 2017 09:38:53 +0000 (11:38 +0200)]
Fix typo
Clearly the shift key can sometimes be difficult to find.
Magnus Hagander [Wed, 27 Sep 2017 09:08:12 +0000 (11:08 +0200)]
Update VAT FAQ for new reality
Daniel Gustafsson [Tue, 26 Sep 2017 21:11:00 +0000 (23:11 +0200)]
Use correct tense in waitlist table heading
An active offer expires, a processed offer has expired (well, thats
not technically true since an attendee will have acted on it before
it expired so it will enter the table un-expired, but for the most
part the processed table will have expired entries).
Magnus Hagander [Mon, 25 Sep 2017 14:31:35 +0000 (16:31 +0200)]
Implement most basic check for transparent backgrounds
So far this only checks that the file actually has an alpha channel,
thus being *capable* of transparent background. It can still be such a
file and just have every pixel filled with a color and pass this test --
for now.
Daniel Gustafsson [Thu, 21 Sep 2017 07:30:05 +0000 (09:30 +0200)]
Fix typo on sponsorship page
I'm still not convinced this is the best wording, but at least it's
less wrong.
Magnus Hagander [Wed, 20 Sep 2017 13:29:44 +0000 (15:29 +0200)]
Python requests module now needed for VAT validation
Magnus Hagander [Wed, 20 Sep 2017 13:20:01 +0000 (15:20 +0200)]
Add support for EU reverse vat, and change sponsor invoice generation
Per the new instructions from the tax authorities, we should do 100%
opposite of their previous instructions, and instead actually issue
reverse VAT invoices for sponsorship.
To do this, we implement a new flag on each invoice that indicates if it
should have reverse VAT. If this is used, the actual VAT must be zero,
and instead it will trigger text about it on the invoice.
Sponsors inside the EU and with a valid VAT number, but *not* inside
France, will get reverse VAT. Any sponsor without a VAT number *or* a
sponsor in France with a VAT number will get regular VAT. No invoices
are issued without VAT.
Based on this we no longer keep track of VAT number separately from "in
vat area" as our previous instructions required, so drop this field from
the database.
Finally, uses screen scraping to validate VAT numbers on the EU websites
since their SOAP service is basically broken. This can easily be turned
off in the config file (and is turned off by default) in case the
service stops working.
Magnus Hagander [Fri, 15 Sep 2017 13:18:11 +0000 (15:18 +0200)]
Include payment link on PDF invoices
This helps with cases when just the PDF invoice is passed along.
Unfortunately it's still a very long link, so it's not convenient for
typing in if delivered on paper. For this case there is also a QR code
included with it. For online viewing the link directly in the PDF is
clickable and goes to the link that does not require a login.
Magnus Hagander [Fri, 15 Sep 2017 13:05:49 +0000 (15:05 +0200)]
Add catch-all argument to PDFInvoice class
This is an incompatible change to the API, but by doing it this way it
can be the last one. Any arguments added by a caller after this point
will be ignored if the implementation does not know about them, so new
arguments can be added without breaking things.
Magnus Hagander [Fri, 15 Sep 2017 10:55:15 +0000 (12:55 +0200)]
Fix misplaced parenthesis
Bug introduced in
bc8e3fd3 that introduced send_template_mail. With this
misplaced parnethesis the mail still rendered -- but got the
placeholders in the output and was returned as an array instead of a
string (which still delivers in the browser though).
Magnus Hagander [Thu, 14 Sep 2017 12:00:12 +0000 (14:00 +0200)]
Send reminders for new regtype "confirmed or reservelisted speaker"
Daniel Gustafsson [Wed, 13 Sep 2017 15:35:22 +0000 (17:35 +0200)]
Add note on macOS installation
Also fix a stray typo while in there.
Daniel Gustafsson [Wed, 13 Sep 2017 15:31:23 +0000 (17:31 +0200)]
Remove duplicate suffixed colons on labels
label_tag automatically adds label_suffix, which by default is set
to colon. Including a colon in the template leads to ::.
Daniel Gustafsson [Wed, 13 Sep 2017 15:29:39 +0000 (17:29 +0200)]
Indicate if no attendee emails have been sent
With the text saying "these emails have been sent", showing a blank
list is misleading and can be misinterpreted as a bug. Add a notice
for "no emails yet" in the case to be clear.
Daniel Gustafsson [Wed, 13 Sep 2017 15:29:11 +0000 (17:29 +0200)]
Use singular/plural depending on nr of submissions
Magnus Hagander [Wed, 13 Sep 2017 13:01:34 +0000 (15:01 +0200)]
Add script to set up simple development install
This automates a few of the steps for people who don't really know
django, and also deploys an initial configuratoin that works without
integrating with community authentication, making it easy to work with
standlone.
Reviewed and tested by Daniel Gustafsson
Magnus Hagander [Tue, 12 Sep 2017 09:51:11 +0000 (11:51 +0200)]
Fix broken jinja filter
Turns out this never worked. Also turns out that you can actually index
an array by boolean in Python, so the part that didn't work was also not
necessary.
Daniel Gustafsson [Mon, 11 Sep 2017 11:02:45 +0000 (13:02 +0200)]
Fix typos on reg dashboard
Daniel Gustafsson [Mon, 11 Sep 2017 11:01:14 +0000 (13:01 +0200)]
Remove unclosed <p> on reg dashboard
A definition list is not allowed inside a paragraph per the HTML
standard, and the paragraph on Registration summary wasn't properly
closed anyways. Remove the leading <p>.
Magnus Hagander [Sun, 10 Sep 2017 07:33:00 +0000 (09:33 +0200)]
Include more details in pending-registration notifications
Since we've had some people ask about it, make sure we include name,
email and username of the registraiton that triggered the reminder to be
sent.
Magnus Hagander [Sat, 9 Sep 2017 14:10:13 +0000 (16:10 +0200)]
Add missing migration
This is a no-op migration since the list of available values is static,
but django inists on there being one.
Magnus Hagander [Thu, 7 Sep 2017 16:54:20 +0000 (09:54 -0700)]
Fix selection of black color on invoice
Previous way worked fine on the version of reportlab deployed in
production, but fails on newer versions.
Daniel Gustafsson [Mon, 4 Sep 2017 12:30:22 +0000 (14:30 +0200)]
Add link to sponsor emails on the dashboard
Like how we have attendee emails, it's handy to have a shortcut to
common operations instead of having to go looking for them.
Magnus Hagander [Tue, 29 Aug 2017 17:21:52 +0000 (19:21 +0200)]
Add registration specialtype for confirmed or reserve speaker
Previous type only applied to confirmed speakers. In a lot of scenarios,
it makes more sense to allow both confirmed and reserve listed speakers.
In order to keep the flexibility, add this as a separate specialtype to
choose from.
The intention is of course that each conference should only be using one
of these types, but is given the flexibility to choose which one.
Magnus Hagander [Tue, 29 Aug 2017 11:04:00 +0000 (13:04 +0200)]
Add reports for sessions without room and sessions without track
Magnus Hagander [Mon, 28 Aug 2017 14:05:56 +0000 (16:05 +0200)]
Support setting up without community auth without ugly hacks
Daniel Gustafsson [Sat, 26 Aug 2017 19:00:56 +0000 (21:00 +0200)]
Add link to discount codes on dashboard
The section was named "Prepaid vouchers and Discount codes" but only
had links to vouchers. Fix by adding a link to discount codes page
in confreg.
Magnus Hagander [Fri, 18 Aug 2017 12:00:07 +0000 (14:00 +0200)]
Fix previous commit by putting values in the correct class
Magnus Hagander [Fri, 18 Aug 2017 11:59:17 +0000 (13:59 +0200)]
Show more metadata in admin view of pending additional orders
Magnus Hagander [Fri, 18 Aug 2017 11:58:04 +0000 (13:58 +0200)]
Unicode fix (I think) for pending additional orders
Magnus Hagander [Tue, 15 Aug 2017 17:28:48 +0000 (19:28 +0200)]
Don't strip the templates/ prefix of target directory
It's actually used in the rendering code.
Magnus Hagander [Tue, 15 Aug 2017 17:17:56 +0000 (19:17 +0200)]
Add function for deploystatic to just deploy jinja templates
This will deploy the template files themselves, not the result of them
being processed. These templates are then rendered by the master system.
Since these are not pages, it explicitly excludes the pages directory.
Magnus Hagander [Tue, 15 Aug 2017 09:42:50 +0000 (11:42 +0200)]
Make bulk registration email lookups case insensitive
Magnus Hagander [Mon, 14 Aug 2017 13:22:09 +0000 (15:22 +0200)]
Fix possibly incorrect None check
Magnus Hagander [Mon, 14 Aug 2017 08:23:09 +0000 (10:23 +0200)]
Fix sending of cross conference emails
This means reverting one piece from
a1867563 which deduped the handling
a bit too much. The returned objects in crossmail is a dictionary, not a
registration object, so we can't call methods on it.
Magnus Hagander [Thu, 10 Aug 2017 12:54:51 +0000 (14:54 +0200)]
Add ability to extend autocancel dates for invoices from UI
I'm tired of doing this through /admin/, as we clearly have to do it
more often than initially anticipated.
Magnus Hagander [Tue, 8 Aug 2017 10:33:04 +0000 (12:33 +0200)]
Don't crash when benefit image is not found
This is another should-never-happen situation, possibly caused by manual
changes. But regardless of that, a not found error is http 404, not
http 500 + crash..
Magnus Hagander [Tue, 8 Aug 2017 10:30:36 +0000 (12:30 +0200)]
Don't crash on missing entry in mandatory field
This should in theory not be possible but clearly can happen under some
circumstances. Instead of crashing, just ignore the non-existing email.
Magnus Hagander [Tue, 8 Aug 2017 10:14:17 +0000 (12:14 +0200)]
Add small tool to dump session data
Makes it a lot easier than manually searching and decoding entries once
the session id has been found in the stack traces.
Magnus Hagander [Tue, 8 Aug 2017 09:56:21 +0000 (11:56 +0200)]
Fix variable initialization for invoice auto canceling
This was broken in
463a3e1e which fixed VAT previews for additional
options. In doing so it needed access to the autocancel information at
an earlier stage, but the initialization of the variable was not
properly moved.
Daniel Gustafsson [Tue, 1 Aug 2017 21:58:16 +0000 (23:58 +0200)]
Fix typo on admin_sponsor
Magnus Hagander [Wed, 19 Jul 2017 13:54:40 +0000 (15:54 +0200)]
Do VAT roundoff on a per-invoicerow basis instead of at the total
If we round it off at the total, the total won't match the callers
specified total, and the safeguard fires. Could show up when multiple sets
of invoice rows all with calculated VAT on them turn into roundoff
errors.
Magnus Hagander [Wed, 19 Jul 2017 13:52:30 +0000 (15:52 +0200)]
Fix silly spelling error
Magnus Hagander [Mon, 17 Jul 2017 19:41:53 +0000 (21:41 +0200)]
Show additional optional prices including VAT if one is specified
In the forms we should always show prices inclusive of VAT.
Magnus Hagander [Mon, 17 Jul 2017 19:36:39 +0000 (21:36 +0200)]
Fix VAT in additional options preview
We got the VAT correct on the invoice, but the preview page would show
the non-VAT prices and not mention that VAT at all
Magnus Hagander [Mon, 17 Jul 2017 19:18:48 +0000 (21:18 +0200)]
Properly pass messages context to jinja templates
This is needed for the messaging framework to work...
Daniel Gustafsson [Fri, 14 Jul 2017 20:48:20 +0000 (22:48 +0200)]
Fix typo and small wordsmithing on donate/
Daniel Gustafsson [Fri, 14 Jul 2017 20:32:25 +0000 (22:32 +0200)]
Fix typo on contact/
Daniel Gustafsson [Fri, 14 Jul 2017 20:23:40 +0000 (22:23 +0200)]
Set correct anchorlinks on VAT FAQ page
<hX> are block-level elements which are not allowed nested insode
inline elements (in this case <a> which is defined inline). Fix by
ending the anchor before the <h3> which should render the same.
Daniel Gustafsson [Thu, 13 Jul 2017 21:12:37 +0000 (23:12 +0200)]
Fix incorrect <p> blocks on statutes and minutes
Lists are not allowed in a <p> block context, move the closing tag
to before the list to fix. This doesn't change the content of the
statutes or minutes, only fixes syntax to keep them valid XHTML.
Also add missing ending tags where missing.
Magnus Hagander [Sat, 8 Jul 2017 17:27:40 +0000 (19:27 +0200)]
Add support for limiting membership per country
This is not enabled by default and has to be configured with a lambda in
local_settings.py.
Actual list of countries from
https://en.wikipedia.org/wiki/List_of_sovereign_states_and_dependent_territories_in_Europe
Magnus Hagander [Fri, 7 Jul 2017 12:42:21 +0000 (15:42 +0300)]
Add an FAQ page with questions about VAT
We get enough questions about this that it's worth having a page with
most of them on it...
Stephen Frost [Thu, 29 Jun 2017 00:55:42 +0000 (20:55 -0400)]
Add missing closing-paren for conf addons
Magnus Hagander [Wed, 28 Jun 2017 10:53:36 +0000 (12:53 +0200)]
Round row amount of VAT
Only used for informational purposes during refunds, but should still
not use arbitrary number of decimals.
Daniel Gustafsson [Wed, 28 Jun 2017 08:49:14 +0000 (10:49 +0200)]
Fix conference date span on confreg dashboard
The dates range for the conference was using startdate for both
start and end, which wen't unnoticed since most conferences have
been single day events.
Daniel Gustafsson [Wed, 28 Jun 2017 07:25:24 +0000 (09:25 +0200)]
Fix <script> attributes to match XHTML spec
The language attribute is deprecated and should no longer be used,
while the use of the type attribute is mandated for identifying the
script content.
Daniel Gustafsson [Tue, 27 Jun 2017 20:11:34 +0000 (22:11 +0200)]
Fix typos in accounting and csrf_failure
Magnus Hagander [Tue, 27 Jun 2017 10:19:34 +0000 (12:19 +0200)]
Fix unicode rendering problem in jinja templates
This was introduced in
4b62fb65 where settings_context was passed to all
jinja rendering, without verifying that the strings in it were either
ascii or unicode. As such it broke on everything referencing
CURRENCY_SYMBOL when it was set to '€'.
Daniel Gustafsson [Mon, 26 Jun 2017 07:00:45 +0000 (09:00 +0200)]
Top-align "Pay Invoice" and "External Link"
With the center alignment, the "Pay Invoice" header seemed to for
Trustly and not all the options. Top align to make it clearer, and
also top align "External Link" as it can span multiple lines as
well.
Magnus Hagander [Wed, 7 Jun 2017 10:57:20 +0000 (12:57 +0200)]
Load context.override.json in local development installs
This was previously only loaded in deploy_static.py, which means it
can only be used to test the static pages..
Magnus Hagander [Wed, 7 Jun 2017 10:56:58 +0000 (12:56 +0200)]
Include label tag for additional speakers
This is required to treat all the headings the same in the cfp form.
Magnus Hagander [Tue, 30 May 2017 11:52:21 +0000 (13:52 +0200)]
Dedup code for generating full names
Some places did not properly use the fullname property, instead
constructing the names itself. Tat would become a problem if we ever
wanted to change how names are combined.
Magnus Hagander [Tue, 30 May 2017 11:45:53 +0000 (13:45 +0200)]
Set sendername on more emails when sent
Try to get the name in there in all cases where it makes sense to do so,
even if it's just setting the name of the conference. Makes it easier to
get past spam filters.
Magnus Hagander [Tue, 30 May 2017 11:34:33 +0000 (13:34 +0200)]
Properly format email headers with non-ascii
When sending an email to non-ascii names, the actual email address
should not be part of the encoded section. It should have a separate
section that's not encoded.
Stephen Frost [Mon, 15 May 2017 22:01:24 +0000 (18:01 -0400)]
Use explicit values instead of 'find'
Find could 'find' other things, so be explicit.
Stephen Frost [Sat, 22 Apr 2017 20:59:31 +0000 (16:59 -0400)]
Remove 'registration' from 'save and finish registration'
The registration is rather redundant, and shrinking this helps fit
the text into the button.
Stephen Frost [Sat, 22 Apr 2017 20:30:14 +0000 (16:30 -0400)]
Fix typo
sonsor -> sponsor
Magnus Hagander [Mon, 22 May 2017 06:04:05 +0000 (08:04 +0200)]
Correct URL to sponsorship contracts
This URL is only used from /admin/, but should still to to the actual
location of the PDF of course.
This is likely badly broken (still) for things other than sponsorship
contracts per the pre-existing comment in the code, but none of those
use admin views at this point, so that fix will have to be another day.
Daniel Gustafsson [Thu, 27 Apr 2017 11:08:08 +0000 (13:08 +0200)]
Fix typos
Guillaume Lelarge [Tue, 18 Apr 2017 18:27:23 +0000 (20:27 +0200)]
Add EGA 2017-04 minutes, in PDF format
Guillaume Lelarge [Mon, 17 Apr 2017 20:22:59 +0000 (22:22 +0200)]
Add EGA 2017-04 minutes