Magnus Hagander [Thu, 30 May 2024 18:59:32 +0000 (20:59 +0200)]
Return sponsors inside level in predictable order in tokendata
It doesn't really matter which order as the receiver is supposed to sort
it by whatever their rules are, but we should at least make it
predictable so we don't generate unnecessarily large diffs.
Magnus Hagander [Tue, 28 May 2024 20:03:52 +0000 (22:03 +0200)]
Add a class to conference feedback fieldsets
Magnus Hagander [Tue, 28 May 2024 16:15:30 +0000 (18:15 +0200)]
Trap and handle really invalid URLs from sponsor signup
If a URL is *really* invalid, we could crash with an exception instead
of showing a form error.
Magnus Hagander [Fri, 24 May 2024 21:21:03 +0000 (23:21 +0200)]
Fix attendee emails for direct-recipient addressing
Magnus Hagander [Wed, 22 May 2024 20:04:27 +0000 (22:04 +0200)]
Clearly sort unconfirmed sponsors by signup date
Magnus Hagander [Wed, 22 May 2024 20:00:53 +0000 (22:00 +0200)]
Teach fetch_sponsorfiles.py to optionally add downloaded files to git
Magnus Hagander [Wed, 22 May 2024 12:19:41 +0000 (14:19 +0200)]
Fix copy/paste error
Magnus Hagander [Wed, 22 May 2024 11:53:22 +0000 (13:53 +0200)]
Fix typo
Magnus Hagander [Mon, 20 May 2024 19:23:07 +0000 (21:23 +0200)]
Show error when trying to set value to non-existant dynamic field
When no dynamic field at all exists, the list is empty string. Which
python splits into an array of a single empty string, which would then
allow us to try to set the value on a field with no name (which of
course didn't work, but failed silently). So instead fail with a proper
error message.
Spotted by Melanie Plageman
Magnus Hagander [Sun, 19 May 2024 18:03:21 +0000 (20:03 +0200)]
Send notification when secondary speaker is added during cfp
When speaker A adds speaker B as a co-speaker of a session, send a
notification to speakear B about this so they're not surprised by it.
This only happens during the cfp process, not if admins make changes in
the backend (and per that it cannot happen after the cfp has closed).
Suggested by Karen Jex
Magnus Hagander [Sat, 18 May 2024 09:57:45 +0000 (11:57 +0200)]
Implement max submission count in call for papers
This makes possible to optionally restrict how many submissions someone
can make to a conference call for papers.
Fixes #70
Magnus Hagander [Sat, 18 May 2024 08:28:18 +0000 (10:28 +0200)]
Implement messaging config validation for Mastodon
This was clearly missed when Mastordon support was added, and is pretty
trivial to do - we just need to try to fetch our own account info (like
we already do on twitter)
Magnus Hagander [Sat, 18 May 2024 08:23:43 +0000 (10:23 +0200)]
Add basic Linkedin messaging provider
For now, this provider only supports basic publishing of entries as
post. It does not support any polling, and it does not support
collecting sponsor/speaker id's and highlighting them in notices. This
can be added later, but it can't be done properly without linkedin app
credentials that are not rate limited (the default), and you can't get
those credentials without already having an app.
As linkedin doesn't support the offline code flow for logins, this also
implements an oauth endpoint for incoming oauth flows for messaging
provider.
Finally, unlike the other messaging providers, linkedin actually expire
their oauth tokens - 2 months for the access token and 12 months for the
refresh token. To handle that, implement token refresh as part of the
validation flow, and simply flag that one as failed if the login doesn't
work.
Magnus Hagander [Sat, 18 May 2024 07:51:53 +0000 (09:51 +0200)]
Fix scheduling of message integration checker
This time schedule for this integration was incorrectly configured,
resulting in it not being scheduled at all by default.
Magnus Hagander [Thu, 16 May 2024 21:02:38 +0000 (23:02 +0200)]
Add ability for social media providers to specify help for fields
Magnus Hagander [Thu, 16 May 2024 21:01:06 +0000 (23:01 +0200)]
Make it possible to filter social media fields per source
This allows a media provider to for exapmle say that it can only
register sponsor accounts, not speaker accounts. All existing
implementations support all kinds of registrations, but it's
infrastructure for the future.
Magnus Hagander [Thu, 16 May 2024 19:26:49 +0000 (21:26 +0200)]
Fix typo
Magnus Hagander [Thu, 16 May 2024 19:10:18 +0000 (21:10 +0200)]
Remove unused import
Magnus Hagander [Thu, 16 May 2024 10:18:41 +0000 (12:18 +0200)]
Fix typo
Magnus Hagander [Thu, 16 May 2024 09:11:58 +0000 (11:11 +0200)]
Fix indentation error from copy/pasting text for sponsor emails
The actual emails going out were correctly indented, but the
notification to admins that it had been sent had a weird mix.
Magnus Hagander [Tue, 14 May 2024 18:24:17 +0000 (20:24 +0200)]
Add ability to schedule attendee emails for the future
This includes both direct attendee emails, and also those that are for
example sent to speakers of a session. This also removes the support for
sending such emails *without* storing them as attendee emails, as that
wouldn't leave us with a way to track what's been sent and what hasn't.
Fixes #90
Magnus Hagander [Tue, 14 May 2024 14:17:36 +0000 (16:17 +0200)]
Add ability to schedule confsponsor emails for the future
Start proper work on #90, but is not complete yet
Magnus Hagander [Tue, 14 May 2024 13:03:05 +0000 (15:03 +0200)]
Add ability to low-level queue emails in the future
Most of the system won't be using this, but it's still good to have for
completeness sake.
Magnus Hagander [Tue, 14 May 2024 12:12:24 +0000 (14:12 +0200)]
Track regtime separate from sendtime on queued emails
The regtime is always set to the extact time that an email was added. If
a different sendtime is specified, it's still good to be able to track
when something was added to the queue.
Magnus Hagander [Tue, 14 May 2024 12:07:34 +0000 (14:07 +0200)]
Disable USE_L10N
This is default on in Django 4.2, but that makes it sometimes pick a
different default date format thatn we normally want. Since we want to
be in full control of that, turn off this in django.
Magnus Hagander [Tue, 14 May 2024 12:02:26 +0000 (14:02 +0200)]
Fix typo
Magnus Hagander [Tue, 14 May 2024 11:46:20 +0000 (13:46 +0200)]
Complete the sendtime handling for mailqueue
Sync up the "warning button" filtering with that of the alerts, which
means we don̈́'t alert for emails that aren't supposed to be sent yet.
This becomes more relevant as we also stop trying to send emails that
are set to be sent in the future, in preparation for upcoming
functionality to schedule email sending.
Magnus Hagander [Mon, 13 May 2024 08:21:19 +0000 (10:21 +0200)]
Sync up old migrations after django 4.2 update
Seems django 4.2 reqiures some fields to be defined slightly differently
for the same thing. Backpatch this into the old migrations, as there are
no actual changes to the models or to the result of the migration.
Magnus Hagander [Mon, 13 May 2024 08:19:46 +0000 (10:19 +0200)]
Put a default of "no database" into the github checks
This removes the confusing warning about trying to contact the database
to check migration consistency, since we don't want that check anyway.
Magnus Hagander [Sun, 12 May 2024 09:08:15 +0000 (11:08 +0200)]
Add instance.id check to get_list() calls in backend editor
Some get_list() implementations for backend editors did not properly
check that the instance they were passed actually existed, and could
crash if it didn't (most prominent example being the the
sessions<->slides link). Some of these are can't-happen (because the
object doesn't support adding new empty ones), but this commit adds a
guard to those as well just to be on the safe sid for future changes.
Magnus Hagander [Sun, 12 May 2024 09:04:27 +0000 (11:04 +0200)]
Fix incorrect field access when reloading a stripe payment page
Typical case is if an invoice is open for payment in two different tabs,
it's then paid in one tab and then reloaded in the other, the Strip
integration would crash because it accessed the wrong field. This has
been wrong since day one of the Strip integration, so the comment
stating it won't "normally happen" was entirely correct...
Magnus Hagander [Thu, 9 May 2024 16:49:21 +0000 (18:49 +0200)]
Fix bad field name twice more
The bug fixed in
35355999 was copy/pasted to two more places, that the
bugfix missed.
Magnus Hagander [Thu, 9 May 2024 06:05:43 +0000 (08:05 +0200)]
Fix invalid field name in select_related
Magnus Hagander [Thu, 9 May 2024 06:05:12 +0000 (08:05 +0200)]
Fix attempt to deference many2many before pk exists
Magnus Hagander [Wed, 8 May 2024 16:14:39 +0000 (18:14 +0200)]
Update devrequirements to Django 4.2
Magnus Hagander [Wed, 8 May 2024 15:08:04 +0000 (17:08 +0200)]
Don't try to access invoice history before invoice exists
Magnus Hagander [Wed, 8 May 2024 14:13:49 +0000 (16:13 +0200)]
Fix field selection for messaging provider in sender
The messaging field is directly on the queue object, not on the
registration (unlike the messaging config field). Django 3.2 would
ignore this incorrect fetch and just work (but without getting the
field, so causing an extra query). Django 4.2 throws an error.
Magnus Hagander [Wed, 8 May 2024 13:43:23 +0000 (15:43 +0200)]
Switch from pytz to zoneinfo for timezone data
This is deprecated in newer Django, and will be removed in 5.0. We're
using only very little of the library functionality directly, and the
rest of it's already i django, and since Django 4.2 switched the primary
library, we switch as well for it.
Magnus Hagander [Wed, 8 May 2024 10:18:23 +0000 (12:18 +0200)]
Fix sponsor benefit tweet preview when no messaging providers exist
Instead of just returning "None", return a short descriptive text
telling the user *why* the preview is not available.
Magnus Hagander [Wed, 8 May 2024 08:48:13 +0000 (10:48 +0200)]
Update signal syntax for django 4.2
Magnus Hagander [Mon, 6 May 2024 14:15:32 +0000 (16:15 +0200)]
Add ability to copy linked objects in backend forms
And use this to make it possible to copy individual sponsorship benefits
inside a conference.
Magnus Hagander [Mon, 6 May 2024 13:14:48 +0000 (15:14 +0200)]
Fix dumb typo in query
Magnus Hagander [Mon, 6 May 2024 13:12:59 +0000 (15:12 +0200)]
Fix ordering of benefits in at-a-glance data
Since three is a sortkey field on the benefit, we should use that to
sort by first.
Magnus Hagander [Fri, 3 May 2024 15:39:35 +0000 (17:39 +0200)]
Add sessionid attribute to cross conference sessions
These sessions also have an id, and we want to expose it to the
schedule. We cannot do that using 'id' now as there are many schedule
templates out there that use the lack of 'id' to determine if a session
is cross conference or not, so we create a new one.
Magnus Hagander [Fri, 3 May 2024 09:42:39 +0000 (11:42 +0200)]
Include conflicting session name in room conflicts report
This requires a rewrite to a join, but having this informatino makes
tracking things down a lot easier.
Magnus Hagander [Fri, 3 May 2024 09:27:11 +0000 (11:27 +0200)]
Make overwriting sponsorsfiles optional
Magnus Hagander [Fri, 3 May 2024 09:25:00 +0000 (11:25 +0200)]
Include cross schedule sessions in overlapping rooms query
Magnus Hagander [Tue, 16 Apr 2024 14:36:06 +0000 (16:36 +0200)]
Update url configs to use re_path
The url() alias of re_path() was deprecated in 3.1 and will be removed.
Dave Page [Fri, 3 May 2024 09:22:26 +0000 (10:22 +0100)]
Fix typo.
Dave Page [Fri, 3 May 2024 09:20:07 +0000 (10:20 +0100)]
Fix typo.
Daniel Gustafsson [Thu, 2 May 2024 13:51:39 +0000 (15:51 +0200)]
Add functionality to draw circles
This adds circle as a recognized object for drawing. Each circle
takes x, y and radius and can have a strok and fill color.
Reviewed-by: Magnus Hagander
Closes: #159
Daniel Gustafsson [Thu, 2 May 2024 13:43:41 +0000 (15:43 +0200)]
Support setting strokecolor for boxes
This adds the capability to specify a color for the strokecolor on
a box. Defining stroke as True will give black color as backwards
compatibility.
Reviewed-by: Magnus Hagander
Closes: #159
Daniel Gustafsson [Tue, 30 Apr 2024 11:47:46 +0000 (13:47 +0200)]
Fix typo in exception
Spotted while hacking on other things in the jinjapdf code.
Magnus Hagander [Wed, 17 Apr 2024 19:33:39 +0000 (21:33 +0200)]
Fix lack of sponsor name in matrix on admin dashboard
In merging commit
39385c3b1, the wrong column ended up being referenced
as sponsor name. Oops.
Noted by Daniel Gustafsson
Magnus Hagander [Wed, 17 Apr 2024 08:44:22 +0000 (10:44 +0200)]
Properly fix the hashval not null issue
Previous commit (
878d1540) applied the wrong fix. The field should still
be NOT NULL, the bug was actually in the trigger being created in the
earlier migration which was incorrectly missing INSERT. Fix this and
change the field back, which more or less reverts
878d1540 but does it
with a new migration so that any existing data gets fixed.
Magnus Hagander [Tue, 16 Apr 2024 21:02:12 +0000 (23:02 +0200)]
Fix whitespace in if construct
Magnus Hagander [Tue, 16 Apr 2024 21:01:52 +0000 (23:01 +0200)]
Fix hashval NULLability
Needs to allow NULL on INSERT, which will then get overwritten by the
trigger.
Magnus Hagander [Tue, 16 Apr 2024 14:38:18 +0000 (16:38 +0200)]
Replace ugettext_laxy with gettext_lazy in country module
This is an imported module that has not been updated, but this change is
just removing an alias that has been deprecated so it should be safe to
meddle in it this way.
Magnus Hagander [Tue, 16 Apr 2024 14:35:36 +0000 (16:35 +0200)]
Change force_text to force_str
Deprecated in django 3.0 and will br removed in 4
Magnus Hagander [Mon, 15 Apr 2024 13:22:24 +0000 (15:22 +0200)]
Don't crash on overly long filenames for sildes
We directly copied the filename from an upload into the name vaule of a
ConferenceSessionSlide, without verifying the length. Uploading a
*really* long filename would cause a crash. Fix this by instead
detecting when it's too long and give a proper error message.
Magnus Hagander [Mon, 15 Apr 2024 13:29:49 +0000 (15:29 +0200)]
Truncate slide URL when generating name field in backend interface
We already did this in the normal user interface, which explains why
plenty such URLs are already in the system. But apparently this was
missed in the admin interface, thereby causing errors whan adding urls
the backwards way.
Fixes #151
Magnus Hagander [Fri, 12 Apr 2024 11:20:35 +0000 (13:20 +0200)]
Don't crash when trying to set dynamic fields on zero rows
This is similar to the fix in
55f1f7eb9 which fixed this problem for
generating a report. But it did not consider that one might proceed to
save the values even when the report was empty -- this path needs the
same fix.
Magnus Hagander [Wed, 10 Apr 2024 19:56:47 +0000 (21:56 +0200)]
Add support for token download of sponsor claimed benefits
This allows downloading a json/yaml file with all the claimed benefits
(including information on if they are confirmed or not).
This also adds a tool called fetch_sponsorfiles.py that will parse this
data and be able to download related files, such as "Logo for the
website" benefits.
The details being provided probably need some more going over with some
reasl world experience, so for now this should be considered
experimental.
Magnus Hagander [Wed, 10 Apr 2024 08:13:59 +0000 (10:13 +0200)]
Store and use hash of benefit images
Store the hash (md5 is good enough here) of the benefit images, and
maintain it using a trigger. This hash is used to implement
etag-handling for downloads of the image. We don't expect that part to
pay off very well since it's logged in users only, but the hash will be
useful in some upcoming patches, and once we have it implementing the
etag handling is basically free.
Magnus Hagander [Mon, 8 Apr 2024 18:02:15 +0000 (20:02 +0200)]
Add support for token-downloads of sponsor level metadata
In passing, this adds support for YaML format downloads of all token
based data.
The token data will generate json or yaml with information about all
sponsorship levels and benefits created in the system. The idea being
this can be pulled into a context file and thereby guaranteed to be the
same in the static and dynamic parts of the site. We'know from
experience these can easily get slightly out of sync.
Magnus Hagander [Mon, 8 Apr 2024 13:52:04 +0000 (15:52 +0200)]
Implement multi-claim sponsorship benefits
This basically allows a single benefit to be claimed multiple times with
different data, for benefit classes that support it (which is most but
not all). This can be used for things like "two sessions in the sponsor
track" or "send two different pieces of merch", to avoid the previously
used workarounds of creating mutiple benefits with slightly different
names.
Magnus Hagander [Mon, 15 Apr 2024 17:30:23 +0000 (19:30 +0200)]
Activate the conference timezone when fetching sponsor object
When using _get_sponsor_and_admin() to get the information we'd leave
the timezone at the system default, which is not correct when a
conference is run in a different timezone from the main one on the
server. Timezones haven't really mattered to sponsor info before (more
or less only the list of emails would be affected), but now that we have
deadlines configured it must be done.
Vik Fearing [Thu, 11 Apr 2024 19:26:36 +0000 (21:26 +0200)]
Add video links to session page
Magnus Hagander [Tue, 9 Apr 2024 14:33:25 +0000 (16:33 +0200)]
Don't force deadline date to be inside the conference dates
For most real world conferences that makes it useless.
Spotted by Steve Singer
Magnus Hagander [Tue, 9 Apr 2024 07:37:46 +0000 (09:37 +0200)]
Fix typos
Noted by Andreas Scherbaum
Magnus Hagander [Mon, 8 Apr 2024 13:33:25 +0000 (15:33 +0200)]
Fix field name
This name was fixed in the model, but docs were lagging behind.
Magnus Hagander [Sun, 7 Apr 2024 12:26:24 +0000 (14:26 +0200)]
Fix typo
Magnus Hagander [Sun, 7 Apr 2024 12:23:19 +0000 (14:23 +0200)]
Add an (optional) deadilne to sponsorship benefits
This will both indicate the deadline on the dashboard (and not as
before, only in the details text or the contract) and prevents the
sponsor from claiming a benefit past the deadline.
Magnus Hagander [Sun, 7 Apr 2024 11:49:08 +0000 (13:49 +0200)]
Prevent claiming sponsorship benefits past the end fo the conference
Magnus Hagander [Mon, 1 Apr 2024 17:12:13 +0000 (19:12 +0200)]
Remove jquery reference from skinning docs
The skinned part of the site no longer uses jquery, and if the skin
*itself* uses it they can put it wherever they want.
Magnus Hagander [Mon, 25 Mar 2024 18:25:18 +0000 (19:25 +0100)]
Fix off-by-one-regexp in URL matching for speakers
We're not suppose to allow / in the speaker name, as that can cause
infinite recursions. But due to an extra . in the regexp, if we loaded
the speaker from the schedule (not the session list) we could, which if
you had a bad link somwehere a bot could then end up traversing into
without getting a 404.
Magnus Hagander [Fri, 22 Mar 2024 17:38:24 +0000 (18:38 +0100)]
Disallow arbitrary emails from contract sender address
This was intended for contracts only, not general contacts, so don't
allow arbitrary emails from it either.
Magnus Hagander [Fri, 22 Mar 2024 17:29:56 +0000 (18:29 +0100)]
Add function to send email to arbitrary external recipients
Allow sending of simple short emails to external addresses
with the sender set to one of the conference addresses (contact,
sponsors, contract). This makes it possible to send email from the
"official addresses" which will be sent from the appropriate servers
with correct DKIM etc, making it pass spam filters more easily.
Magnus Hagander [Thu, 21 Mar 2024 02:09:50 +0000 (03:09 +0100)]
Don't crash invoice saving when using unavailable accounts
If an automated system added an accounting account to an invoice that
did not have the checkbox for "available in invoicing", we would first
not show the account on the invoice, and if it was saved (to change the
payment providers for example), we would crash. This is normally a
misconfiguration, but we sohuldn't crash hard on it...
Crashed and diagnosed by Steve Singer
Magnus Hagander [Wed, 20 Mar 2024 18:10:06 +0000 (19:10 +0100)]
Show election introduction text on results page too
Magnus Hagander [Wed, 20 Mar 2024 18:04:02 +0000 (19:04 +0100)]
Add an "intro" field to elections
This field (which can take markdown for nice formatting) is shown on the
voting form for the election, and can contain overview information about
the election, candidates etc.
Suggested by Matthias van de Meent
Magnus Hagander [Wed, 20 Mar 2024 16:39:48 +0000 (17:39 +0100)]
Attempt to properly identify wise accounts with wrong primary currency
Our check only worked properly if the primary currency was the one we
used, and it seems wise can open a new balance and just chance the
primary currency on us, so update the check.
Magnus Hagander [Tue, 19 Mar 2024 19:27:46 +0000 (20:27 +0100)]
Add ability to send email to attendees with wiki permissions
Sometimes we have wiki pages available only to a specific subset of
users - in this case, it can be useful to be able to send emails
directly to those users from the wiki admin page.
Fixes #73
Magnus Hagander [Tue, 19 Mar 2024 17:46:53 +0000 (18:46 +0100)]
Make it possible to pass query params instead of idlist to attendee mail
When doing for example signup emails to large signups the list of ids
can be very long, and the materialization also gets delayed (so the
response status may have changed since the email was initiated). For
this reason, allow passing down query parameters other than just integer
ids, and expand those when creating the email rather than ahead of time.
Magnus Hagander [Tue, 19 Mar 2024 17:22:39 +0000 (18:22 +0100)]
Make it possible to send signup emails based on multiple responses
Magnus Hagander [Mon, 18 Mar 2024 20:51:38 +0000 (21:51 +0100)]
Register signup emails as attendee emails
This allows for signup emails to be stored on the registration page so
people can go back and view them later, and basically puts them under
the same sending framework as other emails (which will come in handy
once we make that one more advanced).
Magnus Hagander [Mon, 18 Mar 2024 20:30:09 +0000 (21:30 +0100)]
Break out attendee email sending functionality to own file
Magnus Hagander [Mon, 18 Mar 2024 19:43:28 +0000 (20:43 +0100)]
Poliy and attachment urls should work with and without trailing slash
We always send out the link including the trailing slash, but apparently
either some MUAs or browsers remove the trailing slash. In this case our
rule would not match. And since we have legacy urls that include the
register/ part, they get captured by that rule (with the conference name
being "policy" or "attach") instead of the django default rule.
So, update the regexp to allow these links with or without the trailing
slash.
Magnus Hagander [Mon, 18 Mar 2024 17:54:58 +0000 (18:54 +0100)]
Nicer error message when plaid login expires
Trap the specific error case when the login to the underlying bank
expires and give a more detailed output, since this is something that
happens on a regular basis without nothing actually being wrong.
Magnus Hagander [Sat, 16 Mar 2024 20:16:08 +0000 (21:16 +0100)]
Allow fetching twitterpost thumbnails publicly
In doing so also add the existance of an image as a hasimage key in the
list of posts. The idea is this can be used to show the thumbnails as
part of a post listing. We don't allow local access to the full images -
if we want to do that in the future, we probably need to consider some
form of outside cache as they're pretty big objects in the database.
Magnus Hagander [Sat, 16 Mar 2024 00:29:09 +0000 (01:29 +0100)]
Don't load image and thumb when getting list of twitter posts
Magnus Hagander [Thu, 14 Mar 2024 23:38:43 +0000 (00:38 +0100)]
Re-ipmlement stripe notifications for refunds
Stripe made a change (quite some time ago) in how they send refunds, and
no longer include the actual refund id in the webhook notification. The
only way to get the full details is to make another outbound API call.
Given how our refunds work, it looks like we can *probably* get away
with just looking up the refund based on charge id and amount, since
it's highly likely we'll trigger another refund before the webhook has
completed with exactly the same amount to the same invoice.
So re-implement the refunds hook to do this, and we can see after some
real-world testing if this was enough or if we also need to do the
outbound API calls to check in more detail.
Patially diagnosed and researched by Steve Singer.
Fixes #156
Magnus Hagander [Thu, 14 Mar 2024 00:45:01 +0000 (01:45 +0100)]
Empty desription can sometimes be 'No information'
It seems on some records, wise returns 'No information', and on some it
returns '', so explicitly check for both these inthe backoff
functionality.
Magnus Hagander [Tue, 12 Mar 2024 14:49:14 +0000 (15:49 +0100)]
Delay further UNKNOWN transferwise transactions
If we receive a transaction with type UNKNOWN and an empty description,
delay processing it for up to 2 hours. It seems some data is simply not
available immediately. The 2 hours is a guess on how long, and hopefully
a decent mix between working and delay.
Magnus Hagander [Tue, 12 Mar 2024 14:48:49 +0000 (15:48 +0100)]
Increase transferwise webhook delay from 30 seconds to 5 minutes
Apparently it takes longer to get our data sometimes
Magnus Hagander [Tue, 5 Mar 2024 12:36:59 +0000 (13:36 +0100)]
Properly use full sponsor invoice address on voucher invoices
There was one path to generate voucher invoices that would just use the
"invoiceaddr" field, which would then exclude both the sponsor name and
the VAT number. We should of course use the same invoice address
everywhere..
Magnus Hagander [Mon, 4 Mar 2024 20:09:18 +0000 (21:09 +0100)]
Don't overwrite author name method with value
When loading a user specific RSS feed, the funciton item_author_name got
overwritten by the name of that user. Since django doesn't recreate the
basic feed object in future requests (meh), any subsequent feed request
would get *all* authors set to that name. As long as no user-specific
feed was ever called, thing would work, but as soon as one was called it
would start moving all entries between the same users, never allowing
more than one.
The fix in
a112e1e14 was clearly incomplete.
Magnus Hagander [Thu, 22 Feb 2024 13:02:30 +0000 (14:02 +0100)]
Properly initialize email field for brand new speaker profiles
Oversight in
af95f5fe.
Daniel Gustafsson [Wed, 21 Feb 2024 13:15:20 +0000 (14:15 +0100)]
Explicitly stop hyphenating email address
In some unfortunate circumstances, the email address of the conference
was hyphenated on the registration dashboard making it seem like it is
spelled differently from the actual address. This page is riddled with
inline styles so add an inline for this as well, saving a more thorough
CSS cleanup for another patch.
Magnus Hagander [Tue, 20 Feb 2024 20:09:30 +0000 (21:09 +0100)]
Separate the message to sponsor and org in digital contracts
With an extension of the upstream APIs we can now send separate mssages
to the different parties of the signing. With this we can keep the
"sponsor friendly" message we have now for the sponsors, and send a more
appropriate message to the organizers to make it clear what the next
step is.
In the internal API we make it an optional parameter, so if another
future provider doesn't support separating the messages, things still
work.