Magnus Hagander [Tue, 4 Dec 2018 19:53:33 +0000 (20:53 +0100)]
Add migration for confreg_status_strings
This table is used for status reports (since that data is otherwise in
the code and not the db), it should be managed by the code and not by
manually putting data in an undocumented table...
Andreas Scherbaum [Mon, 3 Dec 2018 12:41:16 +0000 (13:41 +0100)]
Remove incorrect spacing
Magnus Hagander [Fri, 30 Nov 2018 03:39:12 +0000 (04:39 +0100)]
Remove unused media files
Some of these are from the old website layout, some are even older...
Andreas Scherbaum [Fri, 30 Nov 2018 00:12:19 +0000 (01:12 +0100)]
Add link to volunteer schedule under user links
Already present in the conference schedule section, but it makes sense
to also include it in the user links since it's something that would
often be copy/pasted to attendees.
Magnus Hagander [Tue, 27 Nov 2018 13:35:31 +0000 (14:35 +0100)]
Remove hardcoded PGEU prefix from Adyen and Paypal refunds
We already had the payment references in a parameter, but for some
reason not the refunds.
In passing, add ORG_SHORT_NAME to the settings and org_short_name to the
context on all pages, to make it easier to do this in the future.
Magnus Hagander [Mon, 26 Nov 2018 14:13:35 +0000 (15:13 +0100)]
Remove legacy invoicemgr module
This was used for manual invoices prior to 2013. Existing invoices have
been exported to static, and the system hasn't been used for ages.
Magnus Hagander [Fri, 23 Nov 2018 14:09:11 +0000 (15:09 +0100)]
Remove template that's not used and is in the wrong directory
Magnus Hagander [Tue, 20 Nov 2018 13:39:40 +0000 (14:39 +0100)]
Create proper template for 403 messages
By using a real template, we both make permission denied messages look
better (properly rendered), and also makes it possible to tell the user
*why* access was denied.
This makes using PermissionDenied exceptions a lot more useful, so
update a number of places that were sending out access denied messages
as 404s.
Magnus Hagander [Tue, 20 Nov 2018 13:30:34 +0000 (14:30 +0100)]
Fix wiki/signup permission handling
1. Show permission denied, not 404 not found, if a user does not have
permissions on a page. The wrong error there was mighty confusing.
2. Make edit permissions imply viewer permissions. Since there is no way
to edit without viewing anyway, and it just makes a lot more sense that
way.
Magnus Hagander [Tue, 20 Nov 2018 10:16:01 +0000 (11:16 +0100)]
Start using a macro called icon() for icons
We can use it for more later, but for now we use it to indicate slides
in the session list and schedule. By default this macro is empty, but it
can be overridden in downstream templates to include an icon appropriate
for that template.
Magnus Hagander [Mon, 19 Nov 2018 14:01:15 +0000 (15:01 +0100)]
Include has_slides data in sessionlist as well
Not just in the schedule.
Magnus Hagander [Sun, 18 Nov 2018 18:37:19 +0000 (19:37 +0100)]
Use the same logo in regular and jinja templates
Magnus Hagander [Sun, 18 Nov 2018 18:31:51 +0000 (19:31 +0100)]
Fix capitalization
Magnus Hagander [Sun, 18 Nov 2018 18:31:46 +0000 (19:31 +0100)]
Remove duplicated header
Magnus Hagander [Sun, 18 Nov 2018 18:29:38 +0000 (19:29 +0100)]
Add list of all previously attended events for user
Link this to the account homepage. Also consistently talk about events
on these pages, and fix a spelling error.
Magnus Hagander [Sun, 18 Nov 2018 18:12:15 +0000 (19:12 +0100)]
Re-order speaker profile page
With a long list of past conferences, the speaker profile form actually
scrolled off the page. Re-order things so that the speaker profile form
comes at the top, since that's the main reason for the page.
Magnus Hagander [Sun, 18 Nov 2018 18:01:53 +0000 (19:01 +0100)]
Add htmlicon field to all sessions
This makes it possible to store a HTML icon for the session, such as a
coffee mug or similar, in the record instead of having ugly
if-this-then-that chains in the template comparing the name of the
session.
Magnus Hagander [Sun, 18 Nov 2018 17:40:26 +0000 (18:40 +0100)]
Add missing help_text to callforpapers form
Magnus Hagander [Sun, 18 Nov 2018 17:22:22 +0000 (18:22 +0100)]
Move skinning docs to /docs/
Instead of living separately in the README file, move this documentation
into the docs directory so it renders on the website. In passing, tweak
some of the markup to make it render nicely, but the actual content has
no changes.
Magnus Hagander [Sun, 18 Nov 2018 16:56:27 +0000 (17:56 +0100)]
Reimplement multiple speaker handling in call for papers
Instead of the awkward way with a subform, we now use selectize to
populate a "dynamic" list of speakers. This is the same technology we've
arleady used in the backend for some time with good results.
This adds a dependency on jquery to the conference templates. If a
conference template does not include jquery, multiple speakers will not
work (but the rest of the form will keep working fine). This should be
included before the pagescript block in the template to make sure it's
available when the page runs.
Magnus Hagander [Sun, 18 Nov 2018 14:39:07 +0000 (15:39 +0100)]
Add pagescript block to jinja base template
This was done for non-jinja templates in
79bbc8a93b3e6b2a17bca353067dc46f553d09e3, but is needed here as well to
work for potentially styled conference pages.
Magnus Hagander [Sun, 18 Nov 2018 14:00:28 +0000 (15:00 +0100)]
Don't crash when trying to list speakers of unsaved session
This could turn into infinite recursion since error messages tried to
print the list of speakers
Magnus Hagander [Sun, 18 Nov 2018 13:58:59 +0000 (14:58 +0100)]
Set appropriate verbose name on Speakers
Magnus Hagander [Sun, 18 Nov 2018 11:10:16 +0000 (12:10 +0100)]
Fix link to speaker profile in nav menu
I missed one of the two places where the link was when I adjusted ads'
patch. Fxied here, along with shortering the headline so it renders on
one line.
Andreas Scherbaum [Sat, 17 Nov 2018 21:53:50 +0000 (22:53 +0100)]
Add link to speaker profile from account page
Magnus Hagander [Sat, 17 Nov 2018 21:53:15 +0000 (22:53 +0100)]
Re-allow speaker proflie without specifying conference
This got lost somewhere along the way, so add it back.
Magnus Hagander [Sat, 17 Nov 2018 18:41:29 +0000 (19:41 +0100)]
Make it possible to remove an unconfirmed registration
Previously we could only cancel a registration once it was confirmed.
But given the new system to "register for somebody else", it seems to be
more common to have to remove one that has *not* been confirmed,
particularly when it has been created by somebody other than the actual
attendee.
Magnus Hagander [Sat, 17 Nov 2018 18:39:09 +0000 (19:39 +0100)]
Fix wrong field name in cancellation status message
Magnus Hagander [Sat, 17 Nov 2018 18:20:13 +0000 (19:20 +0100)]
Set plural name for conference series
Magnus Hagander [Sat, 17 Nov 2018 18:09:59 +0000 (19:09 +0100)]
Set verbose name on a number of fields previously lacking
Magnus Hagander [Sat, 17 Nov 2018 17:44:39 +0000 (18:44 +0100)]
Add fieldsets to registration edit form
Makes it easier to parse since it's now a fairly large form.
Magnus Hagander [Sat, 17 Nov 2018 17:44:22 +0000 (18:44 +0100)]
Create wrapper for removing fields on admin forms
This will be necessary in order to remove a field that's part of a
fieldset.
Magnus Hagander [Sat, 17 Nov 2018 17:34:59 +0000 (18:34 +0100)]
Support editing email and registration type on registrations
Per experience from pgconfeu, this should not be limited to just
superusers. People make mistakes...
Magnus Hagander [Sat, 17 Nov 2018 17:33:12 +0000 (18:33 +0100)]
Support special edit-warnings in backend forms
This can be used to highlight special things to consider. For example,
and also implemented, show a warning when a registration that has
already been confirmed is being edited.
Magnus Hagander [Sat, 17 Nov 2018 16:43:01 +0000 (17:43 +0100)]
Re-style cross conference email form
Use the new standard for forms, and in passing assign verbose names to
all fields so things look nicer.
Magnus Hagander [Sat, 17 Nov 2018 16:29:16 +0000 (17:29 +0100)]
Implement conference series permissions
This adds the concept of an administrator at the conference series
level. An administrator of a series will:
1. Automatically be administrator on all conferences in the series
2. Have access to time based reports for the series
3. Have access to cross-conference email for the series
In passing, update the time based report template to use the newer
styling, and make it possible to resize the graph with drag/drop.
This also changes the list of available conferences in time reports to
be grouped by conference series, and removes the client side filtering
(since it's now much easier to just shift-click an entire series,
which was really the usecase for the previous filter).
Magnus Hagander [Sat, 17 Nov 2018 16:28:37 +0000 (17:28 +0100)]
Add a grouped version of model multiple choice field
This allows the grouping of the entries using optgroup fields in the
select list. Not used anywhere yet, but will be soon.
Magnus Hagander [Sat, 17 Nov 2018 15:52:18 +0000 (16:52 +0100)]
Fix unicode error on registration types in cross emails
When a registration type itself had a non-ascii character in it the API
used to populate the dropdown of exclude options would crash...
Magnus Hagander [Sat, 17 Nov 2018 14:39:20 +0000 (15:39 +0100)]
Use get_authenticated_conference in confsponsor
Simplifies code to use the same one that we already had in confreg and
confwiki.
Magnus Hagander [Wed, 7 Nov 2018 12:32:44 +0000 (13:32 +0100)]
Fix copy/paste error
Copy/paste mistake in the refectoring in
57b734d5f8b165e1f4d84ecc02217e62e7a78525.
Magnus Hagander [Wed, 7 Nov 2018 10:15:39 +0000 (11:15 +0100)]
Handle Adyen settlement batches with just balancetransfers
If we have a batch with just balance transfers going in and out of
exactly the same amount, an exception would be thrown because they'd be
summarized into 0.
Fix that by splitting apart incoming and outgoing balance transfers,
making each one of them non-zero.
For most normal settlement batches this was not a problem since
they will only have one Balancetranfer row, and it will be balanced
against the other types of entries.
Magnus Hagander [Tue, 6 Nov 2018 15:34:08 +0000 (16:34 +0100)]
Instant buy sponsorships should never be manually confirmed
Since they don't have a contract, we don't confirm them manually, we
wait for the invoice to be paid. So remove the button that allows the
confirmation, to reduce confusion.
Magnus Hagander [Tue, 6 Nov 2018 15:31:45 +0000 (16:31 +0100)]
Enable messages output on sponsorship signup page
Magnus Hagander [Tue, 6 Nov 2018 15:28:28 +0000 (16:28 +0100)]
Add "waitlist" for sponsors
This is not really a waitlist, as it simply allows sponsors to sign up
even when the level is full, but tells them they are on the waitlist and
they will not be approved. The actual approval/rejection is handled
manually by the administratror.
Magnus Hagander [Tue, 6 Nov 2018 15:23:24 +0000 (16:23 +0100)]
Fix broken HTML markup
Magnus Hagander [Tue, 6 Nov 2018 14:09:06 +0000 (15:09 +0100)]
Make it possible to reject a sponsorship
Before a sponsorship is confirmed, it can now be rejected instead of
being confirmed. When rejecting a sponsorship, a reason must be given
and this one is sent to the person who signed up.
In passing, change the "generate invoice" button to be on a form and do
a POSTback instead of a GET.
Magnus Hagander [Tue, 6 Nov 2018 13:33:51 +0000 (14:33 +0100)]
Require administrator approval for isntantbuy sponsorships
As these would immediately proceed to invoice stage before, they could
lead to a whole lot of extra work if incorrect details were submitted.
To avoid this, require an administrator click-to-approve step before the
invoice is generated, which should make it easier to abort-and-retry in
case there is an error in the signup.
Magnus Hagander [Tue, 6 Nov 2018 13:27:18 +0000 (14:27 +0100)]
Set helplink for confsponsor admin pages
Magnus Hagander [Tue, 6 Nov 2018 12:56:13 +0000 (13:56 +0100)]
Add a step for previewing sponsor invoice addresses
Due to the number of sponsors that got it wrong, make a separate step
where they get to proview the sponsor address exactly as it's going to
look on the invoice before proceeding. It won't help with the ones who
actually put the wrong company name in, but at least for things like
VAT numbers and duplicated (almost the same but not quite) company names
etc.
Magnus Hagander [Tue, 6 Nov 2018 10:03:58 +0000 (11:03 +0100)]
Don't show reminder_sent field in cfp form
In fact, change the form to contain a whitelist of fields instead of an
exclusion list. Otherwise, new things added to ConferenceSession
apperars on the callforpapers form by default, which is never good.
Spotted by Stephen
Magnus Hagander [Mon, 5 Nov 2018 09:48:37 +0000 (10:48 +0100)]
Attempt a unicode fix for purge warnings
Magnus Hagander [Fri, 2 Nov 2018 10:32:22 +0000 (11:32 +0100)]
Handle Balancetransfer Adyen accountign record
This record shows up when we refund enough transactions that it takes
the data out of our deposit account, and not just out of other settled
transactions. Turns out this is the first time it's happend, but the
handling is straight forward.
Magnus Hagander [Tue, 30 Oct 2018 20:42:46 +0000 (21:42 +0100)]
Make it possible to hode a conference series
In particular for "Legacy Series" this can be useful, especially since a
conference has to be in a series.
The actual series is still viewable for people who have kept their link
around, but not listed anywhere.
Magnus Hagander [Mon, 29 Oct 2018 12:24:35 +0000 (13:24 +0100)]
Fix name of button in twitter integration test form
Magnus Hagander [Mon, 29 Oct 2018 12:22:10 +0000 (13:22 +0100)]
Ignore "not following" errors in twitter DMs
When the cronjob tries to send a twitter DM for example to a speaker, it
fails if that user is not following the conference account. This is a
normal state, and in this case we should just ignore the message rather
than throw an error.
Magnus Hagander [Mon, 29 Oct 2018 12:13:28 +0000 (13:13 +0100)]
Allow attendee reports to take fixed list of options
Previously only looked-up objects or strings were allowed, which meant
that for example looking up photo consent would easily break if one did
not explicitly type "true" or "false" in the field. Add support for
taking a tuple of options instead, which can then be hardcoded.
Magnus Hagander [Wed, 24 Oct 2018 14:09:38 +0000 (15:09 +0100)]
Make it possible to refund VAT-less invoices
Magnus Hagander [Mon, 22 Oct 2018 13:59:48 +0000 (14:59 +0100)]
Make it possible to print and filter on photo consent
Magnus Hagander [Mon, 22 Oct 2018 13:59:35 +0000 (14:59 +0100)]
In attendee reports, print booleans as Yes/No
Nicer than True/False
Magnus Hagander [Fri, 19 Oct 2018 12:57:24 +0000 (14:57 +0200)]
Send waitlist emails to the attendees, not the conference
Definitely backwards to send all the emails back to the organizer
instead of the attendees....
Magnus Hagander [Fri, 19 Oct 2018 12:33:42 +0000 (14:33 +0200)]
Make it easier to cancel off waitlist once an offer is received
Make a link directly from the registration page to handle this instead
of having to first try to finish and then cancel upon failure.
In passing also update the waitlist offer email to explicitly ask the
recipient to go cancel their entry on the waitlist if they don't
want/need it anymore.
Magnus Hagander [Fri, 19 Oct 2018 12:31:22 +0000 (14:31 +0200)]
Make it more clear how to accept a waitlist offer
Magnus Hagander [Fri, 19 Oct 2018 12:26:33 +0000 (14:26 +0200)]
Fix waitlist information for jinja templates
Turns out the RegistrationWaitlistEntry object was never prepared to be
viewed by jinja templates, which made the registration form somewhat
confusing when receiving a waitlist offer.
Magnus Hagander [Fri, 19 Oct 2018 08:17:42 +0000 (10:17 +0200)]
Set proper title tags on signup and wiki admin forms
Magnus Hagander [Fri, 19 Oct 2018 08:13:14 +0000 (10:13 +0200)]
Add country to waitlist admin view
As we get to last minute waitlist, this can help in picking people who
are actually present and thus more likely to actually be able to pick up
the offer.
We only use the country code (SE/DE/whatever) to make sure the display
doesn't get insane for places like the UK.
Andreas Scherbaum [Thu, 18 Oct 2018 21:44:34 +0000 (23:44 +0200)]
Add note about using a filter for badges
Magnus Hagander [Tue, 16 Oct 2018 08:51:52 +0000 (10:51 +0200)]
Apply dictionary update in the right place for jinja templates
If we want the context.override.json file to actually override, we have
to load it last, not first.
Magnus Hagander [Mon, 15 Oct 2018 17:06:48 +0000 (19:06 +0200)]
Support automated speaker reminders
10-15 minutes before a presentation, a reminder is sent to registered
speakers, letting them know that their presentation is coming up, and
which room it's scheduled in.
Currently reminders are only sent over Twitter Direct Message, but the
system is set up so that other integrations can be provided in the
future.
Magnus Hagander [Mon, 15 Oct 2018 16:58:17 +0000 (18:58 +0200)]
Add support for testing twitter integration
We test it by sending a direct message from the configured account. That
way we can make sure all keys are correctly setup and still working
without having to post anything in public.
Magnus Hagander [Mon, 15 Oct 2018 16:57:25 +0000 (18:57 +0200)]
Add direct message support to twitter integration
Magnus Hagander [Mon, 15 Oct 2018 16:41:35 +0000 (18:41 +0200)]
Refactor twitter code
Move the twitter specific code into a new section under util/messaging/,
since it started to get too spread out.
Magnus Hagander [Mon, 15 Oct 2018 09:07:23 +0000 (11:07 +0200)]
Fix time defaults in model as well
Commit
629748a025f40e6edc76faec4e149524920115b7 fixed the migration but
forgot to fix the actual model.
Magnus Hagander [Sun, 14 Oct 2018 18:10:52 +0000 (20:10 +0200)]
One more try, even more unicode fixes
Magnus Hagander [Sun, 14 Oct 2018 17:33:38 +0000 (19:33 +0200)]
Second attempt at fixing unicode problem
The last one clearly wasn't enough...
Magnus Hagander [Fri, 12 Oct 2018 18:32:16 +0000 (20:32 +0200)]
Semi-blind attempt to fix unicode problem with wiki pages
Noted because of Devrim Gündüz, though not actually his fault...
Magnus Hagander [Thu, 11 Oct 2018 11:47:43 +0000 (13:47 +0200)]
Add docs index links to sponsors and integrations
Magnus Hagander [Thu, 11 Oct 2018 11:46:13 +0000 (13:46 +0200)]
Add more docs for twitter integration
Forgot to "git add" this as part of the bigger patch.
Magnus Hagander [Thu, 11 Oct 2018 11:27:07 +0000 (13:27 +0200)]
Fix pythons lack of handling 24:00 as a time
Magnus Hagander [Thu, 11 Oct 2018 11:06:07 +0000 (13:06 +0200)]
Don't put None in return URLs for bank transfer payments
None got turned into the string None, and then put in the URL, which
means the return URL was simply broken. In the case where there is no
return url, the link shouldn't be there at all.
Magnus Hagander [Thu, 11 Oct 2018 10:51:35 +0000 (12:51 +0200)]
Make it possible for superusers to edit tshirt sizes metadata
Magnus Hagander [Thu, 11 Oct 2018 10:50:46 +0000 (12:50 +0200)]
Make it possible to pass instancemaker through backend lists
This makes it possible to create objects that do not have a field for
conference. It was pure luck that this worked for ConferenceSeries(),
since it actually accepts a conference value (because of the link), but
it shouldn't have worked. So convert ConferenceSeries to use a dedicated
instancemaker as well.
Magnus Hagander [Tue, 9 Oct 2018 20:18:39 +0000 (22:18 +0200)]
Support auto-tweeting when sponsorship benefit is confirmed
This allows automatic posting of tweets like "welcome xyz as foobar
sponsor awesomeconf". Which will make it less likely to forget...
Magnus Hagander [Tue, 9 Oct 2018 20:13:09 +0000 (22:13 +0200)]
Implement a tweet queue for conferences along with time windows
The tweet queue allows different portions of the system to queue up
things that should be posted by the conference twitter.
Also add fields for each conference that define the earliest and latest
in a day that automated tweets will be posted. If a tweet is queued
outside those times, it will stay in the queue and get posted once the
interval is entered.
For each invokation of the script, one tweet per conference is posted.
If more are queued up (or if they are in the news), they remain in the
queue and will be delivered on the next invokation of the script. With
the script executed every 5 or 10 minutes, that ensures a spread of the
tweets.
Magnus Hagander [Tue, 9 Oct 2018 18:31:30 +0000 (20:31 +0200)]
Add backend form support for dynamic previews
This makes it possible to add a preview of a field that makes an AJAX
call to the backend to get the contents.
Magnus Hagander [Tue, 9 Oct 2018 14:39:56 +0000 (16:39 +0200)]
Cleaner implementation of Twitter integration
In particular this allows configuring the twitter integration from
within the browser, when setting up different integration points for
different conferences.
It supports posting conference news as well as global news, but global
news is still configured in the local_settings.py file.
Magnus Hagander [Tue, 9 Oct 2018 12:37:05 +0000 (14:37 +0200)]
Remove twitter list synchronization
This never worked well across multiple years anyway, so it hasn't been
used for a long time. Will be replaced with more useful twitter posting
functionality in the future.
Magnus Hagander [Tue, 9 Oct 2018 12:27:18 +0000 (14:27 +0200)]
Remove support for synchronizing with mailman
Magnus Hagander [Sat, 6 Oct 2018 10:57:58 +0000 (12:57 +0200)]
Add protection against concurrent modification of wiki pages
Otherwise a second modification can overwrite the first one withuot
seeing it. We already have classes to handle it by storing a hash of the
data, but it was not enabled for the wikipage editing.
Magnus Hagander [Fri, 5 Oct 2018 12:42:05 +0000 (14:42 +0200)]
Add a div wrapper around wiki page contents
This makes it possible to do styling that applies to just the wiki
contents and nothing else on the page.
Magnus Hagander [Fri, 5 Oct 2018 12:34:54 +0000 (14:34 +0200)]
Add support for tables in jinja markdown
Magnus Hagander [Fri, 28 Sep 2018 12:38:20 +0000 (14:38 +0200)]
Don't enforce a regtypes activeuntil to be inside conference dates
The only reason to really use it is to set it to a date ahead of the
conference..
Noticed by Stephen Frost
Magnus Hagander [Fri, 28 Sep 2018 11:03:49 +0000 (13:03 +0200)]
Add function to send email to attendees on waitlist
Magnus Hagander [Fri, 28 Sep 2018 11:03:13 +0000 (13:03 +0200)]
Show "waitlist is empty" when the waitlist is empty
Instead of a number of buttons and fields that won't do anything anyway.
Magnus Hagander [Fri, 28 Sep 2018 08:54:35 +0000 (10:54 +0200)]
Plase cancel button in it's own form
While we made sure that we didn't validate the form serverside, it would
still not be possible to cancel a form wihtout filling out required
fields since the *browser* would enforce those. For this reason, put the
cancel button in a separate form so it doens't trigger those
requirements.
Magnus Hagander [Thu, 27 Sep 2018 15:45:09 +0000 (17:45 +0200)]
Remove redundant handling of cancel button
Magnus Hagander [Thu, 27 Sep 2018 12:57:03 +0000 (14:57 +0200)]
Include publishing date in the RSS feeds
Magnus Hagander [Tue, 25 Sep 2018 19:40:11 +0000 (21:40 +0200)]
Fix syntax error in previous commit
Daniel Gustafsson [Tue, 25 Sep 2018 19:04:34 +0000 (21:04 +0200)]
Make offer confirmation singular/plural
Present different confirmation texts for waitlist offers depending on
if a single offer is extended, or multiple.
Reviewed-by: Magnus Hagander
Magnus Hagander [Tue, 25 Sep 2018 17:19:53 +0000 (19:19 +0200)]
Properly escape HTML entities in md docs
Forgot that HTML passes through...
Magnus Hagander [Tue, 25 Sep 2018 17:09:26 +0000 (19:09 +0200)]
Remove sponsor name from sponsor details
It's already in the header, let's save some vertical space.