Package: wafer-debconf
Wafer apps for DebConfThis package contains several Django apps used by the DebConf
conference.badges - Name tag generationbursary - Bursary requests and reviewdebconf - Random bits and piecesexports - CSV data exports for organisersfront_desk - Check-Ininvoices - Paid Attendee Invoicingregister - Attendee Registrationvolunteers - On-site volunteer wranglingConfigurationUses the following Django settings:Invoicing:DEBCONF_INVOICE_ADDRESS: String. Postal address to issue invoices from.DEBCONF_BILLING_CURRENCY_SYMBOL: String. The billing currency symbol. (e.g. $)DEBCONF_BILLING_CURRENCY: String. The billing currency code. (e.g.  USD)DEBCONF_BURSARY_CURRENCY_SYMBOL: String. The bursary currency symbol. (e.g. $)DEBCONF_BURSARY_CURRENCY: String. The bursary currency code (e.g.  USD)DEBCONF_LOCAL_CURRENCY_RATE: Decimal. The exchange rate. What does 1 DEBCONF_BILLING_CURRENCY buy in local currency.DEBCONF_LOCAL_CURRENCY_SYMBOL: String. The local currency symbol.DEBCONF_LOCAL_CURRENCY: String. The local currency code.INVOICE_PREFIX: String. Prefix to invoice IDs.PRICES: Dict of Dicts, with purchasable items and prices.fee: Dict of conferences fees, each having anameandprice.meal: Dict of Dicts, (breakfast,lunch,dinner,conference_dinner):Each having apriceand optionalname.accomm: Dict of Dicts, (description(String),price(Decimal/int) per night,bursary(bool),paid_separately(bool),included_meals(set of strs)) for each accommodation option. If an option has a price, it's for sale. If bursary, it'll be available for free for bursaried attendants.STRIPE_PUBLISHABLE_KEY: String. Stripe API Publishable Key.STRIPE_SECRET_KEY: String. Stripe API Secret Key.STRIPE_ENDPOINT_SECRET: String. Stripe Webhook endpoint secret.Dates:DEBCONF_BURSARY_DEADLINE: Date. The date that bursaries need to be submitted by, AoEDEBCONF_BURSARY_ACCEPTANCE_DEADLINE: Date. The date that all bursaries need to be accepted by, or the attendee will be issued an invoice.DEBCONF_CONFERENCE_DINNER_DAY: Date. The day that has the conference dinner.DEBCONF_CONFIRMATION_DEADLINE: Date. The date that attendance needs to be confirmed by, AoE.DEBCONF_DATES: List of (Description, Start Date, End Date) for the parts of the conference.DEBCONF_SKIPPED_MEALS: List of (String: meal name, Date) of meals that will not be provided.VOLUNTEERS_FIRST_DAY: Date. The first day of volunteering.VOLUNTEERS_LAST_DAY: Date. The last day of volunteering.Registration:BURSARIES_CLOSED: Boolean. Can bursary requests still be submitted.DEBCONF_BREAKFAST: Boolean. Is DebConf providing breakfast for attendees.DEBCONF_SHOE_SIZES: List of (Key, Description) for Shoe sizes.DEBCONF_T_SHIRT_SIZES: List of (Key, Description) for T-Shirt sizes.RECONFIRMATION: Boolean. Is there a reconfirmation round (set True once it has started).DEBCONF_REVIEW_FREE_ATTENDEES: Boolean. Use the bursary system to review the attendance of free attendees too.MiniDebConf registration:MINIDEBCONF_REGISTER_PHONE: for minidebconfs, whether to ask for phone
numbers upon registration. Values:None- don't ask (default)False- ask but not requireTrue- ask and requireMINIDEBCONF_REGISTER_ARRANGED_ACCOMMODATION: boolean. Determines whether
contributors can request to stay at the accomodation arranged by the orga
team (default:False).MINIDEBCONF_REGISTER_ARRANGED_FOOD: boolean. Determines whether attendees
can request to eat the meals arranged by the orga team (default:False).MINIDEBCONF_REGISTER_TRAVEL_REIMBURSEMENT: whether contributores can
request travel bursaries to the MiniDebConf (default: False).MINIDEBCONF_REGISTER_DEFAULT_COUNTRY: string. Which country should be
selected by default in MiniDebConf registration form (default: None)MINIDEBCONF_REGISTER_BURSARY_INFO_PAGE: string. URL to a page with bursary
information. If informed, will be linked from the MiniDebConf registration
form (default:None)MINIDEBCONF_REGISTER_SHIRT_INFO_PAGE: string. URL to a page with
information about T-shirt sizes. If informed, will be linked from the
MiniDebConf registration form (default:None)Content:TRACKS_FILE: String. path to a YAML file with the list of tracks to be loadede into the databaseTALK_TYPES_FILE: String. path to a YAML file with the list of talk types to be loaded into the databaseDEBCONF_TALK_PROVISION_URLS: Dictionary of {Key: {pattern: String, private: Boolean}} for online services to generate links for. Format string parameters available:id,slug,secret16).Misc:DEBCONF_CITY: String. The name of the city hosting DebConf.DEBCONF_NAME: String. The name of the Debconf (e.g. "DebConf XX").DCSCHEDULE_TOKEN: String. Authentication token for the DCSchedule IRC bot to hit the API.SANDBOX: Boolean. Is this a development instance or production.ISSUE_KSP_ID: Boolean. Is the key-signing sign-up still open?Streaming:DEBCONF_VENUE_STREAM_HLS_URL: String. URL to the HLS stream. {name}, if
present, is replaced with with the venue name in lower case and with all
sequences of non-alphanumeric characters replaced with a "-". Examples:Fixed URL:"https://foo.bar/stream.m3u8"(good enough for single-venue
conferences.)Per-venue URL:"https://foo.bar/stream/{name}.m3u8"becomes"https://foo.bar/stream/my-venue.m3u8"DEBCONF_VENUE_STREAM_RTMP_URLString. URL to the RTMP stream. {name} is
substituted as withDEBCONF_VENUE_STREAM_HLS_URL; {quality} is replaced with
the quality (src, high, mid, low). Examples:Fixed URL:"rtmp://foo.bar/stream"(for single-venue conferences)Per-venue URL:"rtmp://foo.bar/stream/{name}_{quality}"becomes"rtmp://foo.bar/stream/my-venue_high"("high" quality stream for "My
Venue")DEBCONF_VENUE_IRC_CHANNELS: List of strings. List of channels to join for
each venue; {name} is replaced as above. Examples:Single-channel conference:["#conference"]Multi-venue conference:["#thatconf2020-{name}",  "#thatconf2020"]becomes["#thatconf2020-my-venue", "#thatconf2020"]Stripe PaymentsFirst, configure theSTRIPE_PUBLISHABLE_KEYandSTRIPE_SECRET_KEYsettings, with the API keys from the Stripe dashboard.To receive payment confirmation from Stripe, we need to receive a
webhook from them.For local development, you can receive this with thestripe
CLI:$ stripe login
...
$ stripe listen --forward-to http://127.0.0.1:8000/invoices/stripe-webhook/
> Ready! Your webhook signing secret is whsec_I_AM_A_SECRET_KEY (^C to quit)ConfigureSTRIPE_ENDPOINT_SECRETwith the secret key provided bystripe-cli listen.For production use, configure a webhook in the Stripe dashboard.
The endpoint should behttps://my.debconf/invoices/stripe-webhook/.
Listen forcharge.dispute.created,charge.refunded, andpayment_intent.succeeded.
Again,STRIPE_ENDPOINT_SECRETshould be configured to the webhook's
signing secret.