summaryrefslogtreecommitdiff
path: root/postgresqleu
AgeCommit message (Collapse)Author
5 daysAllow filtering talk votes page by tagMagnus Hagander
5 daysDisplay session tags on voting pageMagnus Hagander
5 daysAdapt session notify email based on submission countMagnus Hagander
Since we *know* if the user has submitted more than one session, we can easily adapt the notification emails to exclude the part about "if you have made multiple submissions" if they haven't.
7 daysAdd support for auto-booking transferwise cashbackMagnus Hagander
Transferwise re-invented interest and call it cashback (it's the same as interest..), and we already knew how to classify these transactions. So instead of leaving them as pending, automatically book them against a predefined account.
8 daysShow more information about pending registrationsMagnus Hagander
In particular, make it possible to show the bulk payment invoice directly from the registration page, if one exists.
12 daysAdd django admin view for transferwise payoutsMagnus Hagander
12 daysAttempt to make transferwise payouts half-completeMagnus Hagander
Due to the new transferwise restrictions, creating payouts would crash. This change attempts to make it complete the parts that work and leave the rest for a manual approval in the transferwise web interface, hopefully keeping the rest of the system working. When half way complete, send a notification to the user to go complete it manually.
2025-06-24Enforce maximum height of signwell fieldsMagnus Hagander
Signwell have implemented a size limitation that no fields can have a height bigger than 34px. Unfortunately, their own GUI editor allows the creation of fields that are larger than this, and once one has done that they can no longer be loaded for editing or sent through the API (it appears the limitation is only in the public API and not their internal ones). So to make signing work at all, when editing a contract enforce the limit to 34px (with a warning). Things might not look very nice anymore but they should at least work. Support case has been opened with Signwell to see if this was actually intentional (the max size in the UI editor appears to be 74), and if so if they are planning to align the UI with the API. This commit goes in pending a possible change on their side and we can revert if if we end up not needing it permanently.
2025-06-16Negate *all* wise transactions based on "Sent by ..." in textMagnus Hagander
Turns out we need to do this both for primary ands secondary amounts (which makes sense). Clarify the comment a bit further after more research that still shows Wise API returns that incoming payments are actually outgoing. Sigh.
2025-06-16Include "balance cashback" as text on transactionsMagnus Hagander
It's just for display and they're easier to identify this way.
2025-06-13Fix accidental reference to old style transferwise APIMagnus Hagander
Clearly missed one field in the update, that was still referencing the old API structure.
2025-06-11New transferwise APIs no longer allow downloading statementsMagnus Hagander
So remove the scheduled job that handles them, as well as the database table that stores them.
2025-06-11Update transferwise integration for new APIsMagnus Hagander
Unfortunately, Wise decided one is no longer allowed to access information about ones own transactions when in Europe, unless registered as a European payment provider. This is of course stupid, but what can we do. Attempt to re-implement the transferwise support over their new activities API. Unfortunately there are likely bugs still hiding around, since for example amounts are now returned in some self-invented html-like markup like '<positive> 2,000 EUR</positive>' instead of as a number like before (and sometimes they are returned as <positive> with a negative number inside). But we have to start somewhere... Unfortunately, it seems there's a permanent loss of funcionality in that the account number (IBAN) of the sender is no longer available anywhere in the API. This means that in practice, automatic refunds of transfers are no longer possible. (This information appears to also no longer be available on their website). We keep the refund functionality itself in the system for now, as we might want to extend it later with the ability to refund while manually specifying an IBAN number.
2025-06-11Add support for targeting cross-conference emails at volunteersMagnus Hagander
2025-06-03Add support for sponsors requesting explicit contract at click-through levelsMagnus Hagander
Click-through contracts makes it easier for most, but some sponsor organisations require an actual contract at these levels as well. To handle this, add an option during contract/address verification to request an explicit contract, which can then be either manual or digital, and will both prevent the clickthrough contract and invoice to be sent until thsi contract has been completed.
2025-06-02Don't crash on misspelled http/https in sponsor signupMagnus Hagander
Instead, give a proper error message.
2025-05-27Properly remove "confirm preview" checkbox on broken uploadsMagnus Hagander
When an image uploaded as a sponsor benefit was broken (unparseable), we would incorrectly still show the "confirm preview looks ok" checkbox below the error message. If the user confirmed that the preview (which was non-existant and replaced with an error message) looked OK, we would store an empty image in the database and consider the benefit OK. Instead, we're of course not supposed to show the preview checkbox at all if the image uploaded is broken.
2025-05-27Don't add click-though text to non-clickthrough contractsMagnus Hagander
If the clickthrough fields were added to a contract, we'd include the text even if the level wasn't clickthrough. This can happen when fields are copied between contracts, thereby ending up with clickthrough fields on non-clickthrough contracts.
2025-05-26Include link to waitlist management in admin notificationMagnus Hagander
Fixes #183
2025-05-23Sync dates for reg and sponsorship open form with listMagnus Hagander
In the list of open sponsorships we stopped listing sponsors once the conference was started. But if one had saved away the URL for the signup form it still worked. Make those two be in sync. For registrations there were some places that would still list it and others wouldn't, but the form would still work. So make the same fix here, except trigger it on the *end* date of the conference so walk-up registrations still work.
2025-05-21Don't try to do feedback on sessions without start timeMagnus Hagander
These sessions aren't listed in the session list or schedule, but if they are linked to externally we would allow them and then crash later when checking the starttime. So instead of crashing, just disallow the feedback form on sessions that shouldn't have it.
2025-05-19Update LinkedIN API versionMagnus Hagander
Linkedin killed off 202405 as an API version. Try a blind update to 202505 and hope they didn't change any of the (very few) API calls we use :)
2025-05-15Add one more sentence about using third party digital signaturesMagnus Hagander
2025-05-15Fix typoMagnus Hagander
2025-04-28Replace "instantbuy" setting on sponsorship levels with contract levelsMagnus Hagander
This allows explicit specification of "No contract, Click-through contract or Full contract", instead of the definitely-hard-to-grok combination of whether a contract existed and if the checkbox was set or not.
2025-04-28Implement better handling of click-through contractsMagnus Hagander
This generates an actual contract for click-through ("instantbuy with contract") levels, replacing the signature with a static text saying "Click-through agreement".
2025-04-28Use proper timezone when rendering tentative schedule slotsMagnus Hagander
In particular, when publishing a schedule we'd use the server default timezone when showing the difference (reported in #180) and also when adding new sessions. Fixes #180
2025-04-25Fix bug in calculation of circle locationKaiting Chen
2025-04-23Add conference date to prepaid vouchers invoiceMagnus Hagander
Do this by removing the word "prepaid" from the title of the invoice to make it more likely to fit. Instead, add it to the individual invoice rows where there should be more space available.
2025-04-15Set expiresAt on Adyen payment linksMagnus Hagander
The default expiry is 24 hours. That means that if an invoice was due to be canceled in say 4 hours, and the user clicked the payment link they would be able to use that one past when the invoice was actually canceled, thereby causing errors. This happened at least once, where the user forwarded the Adyen link (instead of the invoice link) to the person who was supposed to do the payment, and that person made the payment after the invoice was expired. So, if the invoice is set to be canceled in <24 hours, we set the expiresAt flag when creating the payment link, so Adyen will reject that payment. Reviewed-By: Daniel Gustafsson
2025-04-11Make it possible for a sponsor to view signed contractMagnus Hagander
Once a contract is digitally sign we normally (unless something goes wrong) store a copy of the PDF of the signed contract. This was already visible on the admin page, but there is no reason not to let the sponsor view their own contract as well. Fixes #173
2025-04-11When deciding to put bank info on invoices, only look at active methodsMagnus Hagander
If a payment method that had bank info on it was added to an invoice, we would include the bank data on the PDF even if the method was not marked as active. It would still not show on the webpage of available methods, but if someone forwarded the PDF alone for payment, they would get the bank info for an inactive method. So fix that.
2025-03-11Add "Potential registrations" to waitlist status dashboardMagnus Hagander
This is the number of registrations that would be completed if *all* entries on the waitlist are offered and accepted. This can be helpful when projecting venue size increasing.
2025-03-10Log to registration pages when reminders are sentMagnus Hagander
When we send "you haven't paid yet" reminders, log it to the registration page so we can see when someone was last reminded.
2025-03-10Don't crash rendering XML schedule if room is missingMagnus Hagander
We normally don't have session on the schedule with no room, but if we do the XML schedule still shouldn't crash. (regular schedule and ical were fine..)
2025-02-28Attempt to fix the bluesky profile linkMagnus Hagander
This was clearly not quite completed whent he Bluesky support was added. Reported by Andreas Scherbaum
2025-02-28Write the body of a failed transferwise request to stderrMagnus Hagander
2025-02-20Add proper facets for hashtags when posting to blueskyMagnus Hagander
2025-02-20Decode URL as UTF-8Magnus Hagander
Apparently this is done automtatically in some versions of requests, and not others.
2025-02-20Implement "facet shortering" for bluesky postingMagnus Hagander
Turns out bluesky doesn't actually shorten URLs if they are posted through the API even if they have a matching "facet", and the example code they have ignores this. So we have to implement our own that basically shortens the "inside" of a facet to an appropriate length. We'll re-use the twitter-url-shortener-length to make things predictable between providers.
2025-02-20Give more detailed error message when failing to post to blueskyMagnus Hagander
2025-02-19Add cli command to export a set of invoices or receipts by idMagnus Hagander
2025-02-05Show which track a session is accepted into, if availableMagnus Hagander
Noted by Melanie Plageman
2025-01-29Properly list pronouns as a dynamic fieldMagnus Hagander
Somehow it ended up with half the listing in dynamic and half in static, which sometimes crashes.
2025-01-23Add special registration type that includes cfp team membersMagnus Hagander
Since we have the list of actual user accounts used for talkvoters, we can trivially create a special registration type that lets those people register automatically, without having to deal with vouchers etc.
2025-01-23Add support for asking for pronouns during registrationMagnus Hagander
This is an optional field that can be turned on/off on a per-conference basis. It is collected primarily so that it can be displayed on badges, but it's of couse up to each conference exactly what they do with it. Pronouns are aggregated and purged as part of the "purge personal data" step. Per request from the PostgreSQL Europe Diversity Committee
2025-01-22Use correct info to decide when to show VAT fieldsMagnus Hagander
The VAT refund fields on anything should be driven off whether there's actual VAT on the invoice, not off the EU_VAT setting. In particular, when using taxes and not being in the EU, EU_VAT should be turned off, but we must still be able to refund the VAT... Diagnosed by Steve Singer
2025-01-16Looks like the include_client_id parameter became mandatoryMagnus Hagander
2025-01-16Change linkedin provider to use a shared oauth_return URLMagnus Hagander
Since Linkedin doesn't support wildcards, having the providerid in the URL required whitelisting individual URLs which was very annoying. Instead overload it into the state field and use a shared URL. In passing, fix the redirect after attaching linkedin to a shared news provider. The attachment worked fine but the redirect went to the wrong page.
2025-01-15Avoid duplicated error message in bluesky validationMagnus Hagander