Commit graph

129 commits

Author SHA1 Message Date
Thomas Steen Rasmussen 3a42b262f3 add more text to event scheduled email 2021-08-15 22:44:33 +02:00
Thomas Steen Rasmussen 5162a54a2d enable email to submitter and speakers when an event is scheduled 2021-08-07 15:31:11 +02:00
Thomas Steen Rasmussen 3f17132cc3 new wording for speaker/event emails 2021-06-27 14:56:06 +02:00
Thomas Flummer 4d32a9deb9
add backoffice tool to add recording URLs (#683) 2020-11-01 16:44:46 +01:00
Thomas Steen Rasmussen c6cb90e567 fix broken speakerproposal remove person view 2020-08-12 14:59:28 +02:00
Thomas Flummer 1c88ed8073
Added title blocks to templates that did not have one (#511)
In most cases this mirrors the primary header on the page, but in some cases the title is simplified and/or nested to reflect the depth of the current page

Co-authored-by: Thomas Steen Rasmussen <tykling@bornhack.org>
2020-06-03 21:30:10 +02:00
Thomas Steen Rasmussen eff4bfaf1c
SpeakerAvailability, EventSession, autoscheduler, and other goodies (#497)
* fix old bug where the get_days() method would return the wrong number of days, this was not discovered because our bootstrap script has been creating 9 day camps instead of 8 day camps (this has been fixed in a different commit)

* remove stray debug print

* output camp days in local timezone (CEST usually), not UTC

* speakeravailability commit of doom, originally intended for #385 but goes a bit further than that. Adds SpeakerAvailability and EventSession models, and models for the new autoscheduler. Update bootstrap script and more. New conference_autoscheduler dependency. Work in progress, but ready for playing around!

* add conference-scheduler to requirements

* rework migrations, work at bit with postgres range fields and bounds, change how speakeravailability is saved (continuous ranges instead of 1 hour chunks), add tests for utils/range_fields.py including adding hypothesis to requirements/dev.txt, add a test which runs our bootstrap script

* catch name collision in the right place, and load missing postgres extension in the migration

* add some verbosity to see what the travis issue might be

* manually create btree_gist extension in postgres, not sure why the BtreeGistExtension() operation in program/migrations/0085... isn't working in travis?

* create extension in the right database maybe

* lets try this then

* ok so the problem is not that the btree_gist extension isn't getting loaded, the problem is that GIST indexes do not work with uuid fields in postgres 9.6, lets take another stab at getting pg10 with postgis to work with in travis

* lets try normal socket connection

* add SPEAKER_AVAILABILITY_DAYCHUNK_HOURS=3 to travis environment_settings.py

* rework migrations, change so an autoschedule can work with multiple eventtypes, change AutoSlot model to use a DateTimeRangeField so we can use the database for more efficient lookups, add 'conflicts' self m2m for EventLocation to indicate when a room conflicts with another room, add a support_autoscheduling bool to EventType, add workshops to bootstrap script, add timing output to bootstrap script

* update README a bit, move some functionality to model methods, update jquery and jquery.datatables, include datatables in base.html instead of in each page, start adding backoffice schedule management views (unfinished), yolo commit so I can show valberg something

* Switch to a more simple way of using the autoscheduler, meaning we can remove the whole autoscheduler app and all models. All autoscheduler code is now in program/autoscheduler.py and a bit in backoffice views. Add more backoffice CRUD views for schedule management. Add datatables moment.js plugin to help table sorting of dates. Add Speaker{Proposal}EventConflict model to allow speakers to inform us which events they want to attend so we dont schedule them at the same time. Add EventTag model. New models not hooked up to anything yet.

* handle cases where there is no solution without failing, also dont return anything here

* wrong block kiddo

* switch from EventInstance to EventSlot as the way we schedule events. Finish backoffice content team views (mostly). Many small changes. Prod will need data migration of EventInstances -> EventSlots when the time comes.

* keep speakeravailability stuff a bit more DRY by using the AvailabilityMatrixViewMixin everywhere, add event_duration_minutes to EventSession create/update form, reverse the order we delete/create EventSlot objects when updating an EventSession

* go through all views, fix various little bugs here and there

* add missing migration

* add django-taggit, add tags for Events, add tags in bootstrap script, make AutoScheduler use tags. Add tags in forms and templates.

* fix taggit entry in requirements

* Fix our iCal view: Add uuid field to Event, add uuid property to EventSlot which calculates a consitent UUID for an event at a start time at a location. Use this as the schedule uuid. While here fix so our iCal export is valid, a few fields were missing, the iCal file now validates 100% OK.

* fix our FRAB xml export view

* comment the EventSlot.uuid property better

* typo in comment

* language

Co-Authored-By: Benjamin Balder Bach <benjamin@overtag.dk>

* language

Co-Authored-By: Benjamin Balder Bach <benjamin@overtag.dk>

* Update src/backoffice/templates/autoschedule_debug_events.html

Co-Authored-By: Benjamin Balder Bach <benjamin@overtag.dk>

* add a field to make this form look less weird. No difference in functionality.

* remove stray print and refactor this form init a bit

* fix ScheduleView

* only show slots where all speakers are available when scheduling events manually in backoffice

* make event list sortable by video recording column

* update description on {speaker|event}proposal models reason field

* remove badge showing number of scheduled slots for each event in backoffice eventlist. it was unclear what the number meant and it doesn't really fit

* remember to consider events in the same location when deciding whether a slot is available or not

* add is_available() method to EventLocation, add clean_location() method to EventSlot, call it from EventSlot.clean(), update a bit of text in eventslotunschedule template

* fix EventSession.get_available_slots() so it doesnt return busy slots as available, and since this means we can no longer schedule stuff in the lunchbreak lower the number of talks in the bootstrap script a bit so we have a better chance of having a solvable problem

* fix the excludefilter in EventSession.get_available_slots() for real this time, also fix an icon and add link in event schedule template in backoffice

* show message when no slots are available for manual scheduling in backoffice

* add event_conflicts to SpeakerUpdateView form in backoffice

* fix link to speaker object in speakerproposal list in backoffice

* allow blank tags

* make duration validation depend on the eventtype event_duration_minutes if we have one. fix help_text and label and placeholder for all duration fields

* allow music acts up to 180 mins in the bootstrap data

* fix wrong eventtype name for recreational events in speakerproposalform

* stretch the colspan one cell more

* save event_conflicts m2m when submitting speaker and event together

* form not self, and add succes message

* move js function toggleclass() to bornhack.js and rename to toggle_sa_form_class(), function is used in several templates and was missing when submitting combined proposals

* move the no-js removal to the top of ready() function

This will allow other javascript initialization (eg. DataTable) to see the elements and initialize accordingly (eg. column width for tables)

* Fixed problem with event feedback detail view

* Fixed problem with event feedback list view

* introduce a get_tzrange_days() function and use that to get the relevant days for the matrix instead of camp.get_days(), thereby fixing some display issues when eventsessions cross dates

* show submitting user and link to proposal on backoffice event detail page, change User to Submitter in backoffice speaker list table

* show warning by the buttons when a proposal cannot be approved, and show better text on approve/reject buttons

* disable js schedule, save m2m, prefetch some stuff

* fix broken date header in table

* remove use of djangos regular slugify function, use the new utils.slugs.unique_slugify() instead

Co-authored-by: Thomas Steen Rasmussen <tykling@bornhack.org>
Co-authored-by: Benjamin Balder Bach <benjamin@overtag.dk>
Co-authored-by: Thomas Flummer <tf@flummer.net>
2020-06-03 21:18:06 +02:00
Thomas Steen Rasmussen bf7578a833
Send emails when proposals are accepted/rejected, and when eventinstances are created/updated (#466)
* fixup labels and help_text for the email field

* add email and published columns to speaker proposal table, add published column to event proposal table

* send email to user when a speaker or eventproposal is accepted or rejected. Send email to submitter and all speakers when an eventinstance is created, or when the time is updated (event is rescheduled). Fix a few other small things while here.
2020-03-05 12:23:42 +01:00
Vidir Valberg Gudmundsson df1a6564b7 Fix #365 2020-02-24 09:40:42 +01:00
Thomas Steen Rasmussen 27f3470f92 fix noscript schedule template, while here add a prefetch_related in the view to reduce number of sql lookups from 116 to 8 for bootstrap data 2020-02-22 17:19:17 +01:00
Thomas Steen Rasmussen 33383e6559
Event feedback (#451)
* Event feedback functionality and related commits:

* blackness and isort and flake8 - this branch does not have pre-commit so I forgot :/

* finish backoffice management of eventfeedback

* add username to eventfeedback detail panel when viewed in backoffice

* Add feedback url to elm schedule. Fix access when user is anonymous. Remove print statement.

* one prefetch_related call to rule them all

Co-authored-by: Víðir Valberg Guðmundsson <valberg@orn.li>
2020-02-22 14:50:09 +01:00
Thomas Steen Rasmussen 00af109e2f
add flake8 and isort to pre-commit config, make flake8 and isort happy (#441)
* add flake8 to pre-commit config, and fixup many things to make flake8 happy

* add isort and sort all imports, add to pre-commit and requirements
2020-02-12 13:10:41 +01:00
Víðir Valberg Guðmundsson 80793d3d1d Add "use_provided_speaker_laptop" to eventproposal_detail.html. Also correct a typo. 2019-07-31 20:22:11 +02:00
Thomas Steen Rasmussen 444aa59159 s/name/title/g 2019-07-29 17:00:25 +02:00
Thomas Steen Rasmussen d276032389 better subjects for content team emails, and add quotes in body 2019-07-21 15:26:57 +02:00
Víðir Valberg Guðmundsson 3348d96d06 Add show_schedule boolean to Camp. Hide schedule link if schedule should not be shown. Close #346 2019-06-24 15:12:14 +02:00
Víðir Valberg Guðmundsson 31c1f97036 Add event metadata information to non-js event pages. Fix #275. 2019-03-18 10:29:57 +01:00
Víðir Valberg Guðmundsson 0b6cc60bb8 Add duration and notes to event proposal info. 2019-03-10 17:20:08 +01:00
Thomas Steen Rasmussen 58d670b57f get websocket scheme from window.location.protocol 2019-01-22 09:01:53 +01:00
Thomas Steen Rasmussen 58f3035927 switch from ws:// to wss:// 2019-01-21 20:06:52 +01:00
Víðir Valberg Guðmundsson b50f368dea Add a slides field to talk and lightning talk forms. 2018-08-18 20:43:24 +02:00
Víðir Valberg Guðmundsson 56875732dd Also show location on non-js event detail page. 2018-08-10 16:26:25 +02:00
Víðir Valberg Guðmundsson 25f40b381b Fix filter in link to schedule from event list. 2018-08-06 21:11:39 +02:00
Thomas Steen Rasmussen d46ccc530b handle empty results correctly in CampViewMixin, also add a text to the speaker list page when no speakers are found 2018-07-18 00:46:38 +02:00
Thomas Steen Rasmussen 025692d017 add icons to speaker list page 2018-07-18 00:15:14 +02:00
Thomas Steen Rasmussen a6b0332c9f small visual fixes, headline size and remove a stray </h4> and remove the text-container class from the speaker description markdown 2018-07-17 23:35:10 +02:00
Thomas Steen Rasmussen 00c053829e fix copy paste error which makes urls not be shown on event detail page, and fix headline 2018-07-17 23:27:20 +02:00
Thomas Steen Rasmussen 32e9b7c40b
Fix urls handling and other stuff (#249)
* update font-awesome to 5.1 and add fab- and fa-regular icons, fixed #244

* also handle slugs when dealing with SingleObjectMixin CBV views, fixes #248

* add missing trailing slash to bar/menu

* add missing trailing slash on event slugs, fixes #245

* fix a lot of stuff related to proposal URLs. actually display them on speaker and event detail pages. show the urltype icons. better messages on update and delete pages. fix 500 error when reapproving events. fix bug that made urls multiply when reapproving event. fixes #246 and fixes #247
2018-07-17 22:43:16 +02:00
Thomas Steen Rasmussen ea2bfc8498 hide action buttons when not on the proposal page 2018-06-26 23:31:56 +02:00
Thomas Steen Rasmussen 23c42985ae hide url action buttons when not inside the program app, and change urltype icons to include the 'fas' bit of the fontawesome class 2018-06-03 23:34:40 +02:00
Thomas Steen Rasmussen 3fb2f44e94 add eventtype icons to event list and event detail views in program 2018-06-03 17:16:35 +02:00
Thomas Steen Rasmussen bff5bb292e add debate as eventtype in bootstrap-devsite, and fix commonmark templatefilter a few places I missed 2018-06-03 16:29:28 +02:00
Thomas Steen Rasmussen 811b8171af working on #232, this commit changes backoffice to be camp specific (although many of the actual functions are camp independent). Add backoffice/mixins.py with BackofficeViewMixin to keep it DRY. Add backoffice views to manage proposals. Move SpeakerProposal and EventProposal detail template to includes to they can be used from backoffice. Rename our commonmark templatetags so the names are more intuitive. 2018-06-03 15:34:04 +02:00
Thomas Steen Rasmussen b34fe62118 small visual fixes, add a button to remove speakerproposal from eventproposal 2018-05-27 17:19:19 +02:00
Thomas Steen Rasmussen 3d100c2f8a hide buttons that modify stuff when CFP is not open or camp is readonly 2018-05-27 16:27:41 +02:00
Thomas Steen Rasmussen 8e7dc4f80a move call for sponsors view to the database 2018-05-26 15:22:45 +02:00
Thomas Steen Rasmussen 53fa204455 Merge branch 'master' of github.com:bornhack/bornhack-website 2018-05-26 14:42:28 +02:00
Thomas Steen Rasmussen 9052526264 remove action buttons from proposal list, they can be found in the detail views, helps a lot with the width issues when things have long names 2018-05-26 10:48:38 +02:00
Thomas Steen Rasmussen 24371b629a reenable mails to Content team when speaker/eventproposals are created/updated, change so proposal URLs are opened in new window, add a message in browser when proposals are approved in the admin 2018-05-26 10:24:52 +02:00
Thomas Steen Rasmussen eb807a6853 move call for participation from template to the database, prepare to move call for sponsors in the same way. This commit means we will need to copy the content of the old templates to the prod db after deploy 2018-05-25 14:27:53 +02:00
Thomas Steen Rasmussen 157050d30e make it possible to remove a speakerproposal from an eventproposal, move proposal delete buttons to the proposal detail pages, fix a button here and there 2018-05-24 11:43:46 +02:00
Thomas Steen Rasmussen 18c33383b7 add url support for speakerproposals and eventproposals, including new models Url and UrlType. Also switch to Django 2.0 path() syntax in various urls.py files getting rid of a lot of ugly regex \o/ 2018-05-23 23:28:27 +02:00
Thomas Steen Rasmussen 1fb4eb7e28 remove help box with status explanations, no room :( 2018-05-20 21:42:11 +02:00
Thomas Steen Rasmussen 84c19d01c1 remove tooltip, add missing update button on speakerproposal detail page 2018-05-20 21:36:33 +02:00
Thomas Steen Rasmussen 4720b34021 link to detail view rather than update view in the tables, shine up the detail views a bit 2018-05-20 21:32:05 +02:00
Thomas Steen Rasmussen 5dc3e17d66 if one or more speakerproposals exist show a list so the user can pick an existing or choose to add a new; use the multimodelform stuff only when the user wants to add a new speakerproposal 2018-05-20 21:11:53 +02:00
Víðir Valberg Guðmundsson 733fdbf4ba Add lists of events/speakers til speaker/event detail template. 2018-05-20 20:53:28 +02:00
Víðir Valberg Guðmundsson c8ab0230cd Add detail view for speaker and event proposals. 2018-05-20 20:29:56 +02:00
Thomas Steen Rasmussen 039af44a92 new content submission flow monster commit of doom. fixes a large part of #191. Split out /program/ urls into a seperate program/urls.py file in the program: URL namespace. Change call for speakers to call for participation everywhere (I think). Add boolean fields call_for_participation_open and call_for_sponsors_open to Camp model. Switch to font-awesome 5.0.13 and update <i> tags everywhere accordingly. Introduce Tracks so all Events belong to a Track, which in turn belongs to a Camp. Add seperate forms for submitting SpeakerProposals and EventProposals so we can set labels and help_text according to EventType, and remove fields we dont need. Remove Pictures from Speaker and SpeakerProposals, it was almost never used, and was a lot of code/complexity. Remove a few PROPOSAL_STATUS namely DRAFT and MODIFIED_AFTER_APPROVAL to simplify the workflow for submitters. Add description, icon and host_title fields to EventType. Add a CombinedProposalSubmitView which allows users to submit a SpeakerProposal and EventProposal from the same page, introducing a new requirements.txt dependency for django-betterforms==1.1.4. Update bootstrap-devsite to match the new reality. 2018-05-20 18:16:20 +02:00
Stephan Telling 3bc9c36cb0
improve 2019 call for speakers page 2018-05-06 15:11:10 +02:00