Commit graph

67 commits

Author SHA1 Message Date
Thomas Steen Rasmussen 01687ea11a run pre-commit --all-files, it's been a while since last time 2021-07-19 15:06:10 +02:00
Thomas Flummer 7626d375b7 Renamed references to bootstrap_devsite, to follow new name 2020-11-01 18:26:20 +01:00
Thomas Flummer 4d32a9deb9
add backoffice tool to add recording URLs (#683) 2020-11-01 16:44:46 +01:00
Thomas Steen Rasmussen fbda2b4b53 more work on backoffice economy stuff, chains and credebtors section now only shows expenses and revenues for the current camp, thanks to some ORM foo; while here add a cost and a comment field to the Product table, and fix a bug in bootstrap_devsite and a few nags to make new flake8 happy 2020-10-17 02:35:12 +02:00
Thomas Steen Rasmussen 833fc85e46 fix a few things in backoffice chain/credebtor views and templates, and update bootstrap_devsite script to create chains, credebtors, expenses and revenues 2020-10-16 17:22:41 +02:00
Thomas Steen Rasmussen 056e9fa4d1 fix bootstrap script by limiting the default event duration to 60 mins for recreational events 2020-08-05 01:09:53 +02:00
Thomas Steen Rasmussen 71a0f4f594 complete the rename of slacking off to recreational event, fixes #603 maybe 2020-08-03 23:41:51 +02:00
Thomas Steen Rasmussen 56c05e039c add content team in bootstrap script, and create teams before adding content 2020-06-22 17:54:06 +02:00
Thomas Steen Rasmussen fdc92ec7f2 take location into consideration when finding adjacent eventsessions 2020-06-22 01:09:45 +02:00
Thomas Steen Rasmussen 36fef3b4ea forgot .when. 2020-06-22 00:52:27 +02:00
Thomas Steen Rasmussen 4aeb1b566d handle cases where a speaker has three events in a row 2020-06-22 00:49:02 +02:00
Thomas Steen Rasmussen fc7761e315 add eventinstance migration script 2020-06-22 00:21:23 +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 3c6fadcf70
kortforsyningen maps (#484)
* add maps app, add proxy view for kortforsyningen services, add static_src/js/kfmap.js to create leaflet maps with tiles from kortforsyningen, adjust facility views to use the new map, add marker field to FacilityType model to specify marker colour, add js and marker pngs for coloured markers

* remove debug print

Co-authored-by: Thomas Steen Rasmussen <tykling@bornhack.org>
2020-03-28 11:45:54 +01:00
Thomas Steen Rasmussen 207caebc94 disconnect post_save signal until #229 is fixed 2020-03-05 14:41:32 +01:00
Thomas Steen Rasmussen 12a1c9a0ce
Facilities (#458)
* update font-awesome to 5.12.1

* prefetch members to considerably lower number of SQL queries for team list view

* add facilities app with facility feeedback functionality, working on #383

* Add GeoDjango (django.contrib.gis) and switch to PostGIS db backend. Add location field for Facility model. Add django-leaflet to requirements.

* better migration names

* tweaking travis config, we use py3.7 now, and add postgis

* Add qr code support for facilities (visible in the admin). Make facitilies browsable without logging in. Feedback can be submitted without logging in, given the facility UUID, which is not revealed to unauthenticated users.

* show quickfeedback icons when creating and when reading feedback

* only show anon option if user is logged in

* django-reversion somehow went missing from requirements
2020-02-24 23:28:52 +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
Thomas Steen Rasmussen 087db0ea81 add new logo to website 2020-01-31 18:55:21 +01:00
Víðir Valberg Guðmundsson f1ce253d4a Fix some stuff for new tickets. Also fix bootstrap-dev script. 2019-07-30 23:38:03 +02:00
Víðir Valberg Guðmundsson 1f2652d134 WIP Refactor of bootstrap-devsite (#234)
* Remove some repitition to make adding stuff like camps a bit better.

* added camp colours and changed to use example.com addresses

* tweaks to get factory boy to correctly save the profiles

also changed to use django specific subclass of factory boy

* Changed structure and added a few more models

Structure changed to have methods for each category, that are then called for a better overview.

Also:
- Added SponsorTiers and Sponsors
- Added Tokens and TokenFinds
- Added 2021
- Uses faker for longer descriptions

* Added blackness to new bootstrap script
2019-07-08 21:01:20 +02:00
Víðir Valberg Guðmundsson bf2f0c7898 Blackness. 2019-06-16 14:32:24 +02:00
Víðir Valberg Guðmundsson 2ef3c45bc1 Fix bootstrap script. 2018-08-19 19:52:00 +02:00
Thomas Steen Rasmussen 7dd52c78ee make the colours more visible on the camp list page, set camp colours in bootstrap script, add a light_text property to Camp model 2018-08-18 17:45:33 +02:00
Víðir Valberg Guðmundsson 43f076262b Fix some outstanding issues with the team controlled info categories functionality. 2018-06-21 09:19:09 +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 3e12c98b95 for some reason all our test users were is_staff=True users 2018-05-23 23:34:54 +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
Thomas Steen Rasmussen 1c4a4dd259 change irc channel stuff so each team can have both a private and a public irc channel, introduce the concept of a volunteer channel which all teammembers of all teams get access to 2018-04-13 20:22:19 +02:00
Thomas Steen Rasmussen edcf363027
Merge teamcomms branch. Refactor team app and add events app.
* Primary commit towards improved team communications. Add new events app to handle team notifications when various events happen, with a Type model which contain event types and a Routing model which controls routing of events to teams. Add shortslug for Camp and Team models. events.handler.py contains the code for sending irc and email notifications for teams. The first two eventtypes have been added in datamigrations, 'ticket_created' and 'public_credit_name_changed', and the tickets and profile apps have been adjusted accordingly. Team IRC channels can be marked as managed and if so the IRC bot will register the team channel with ChanServ if possible. Team IRC channels can be marked as private and the bot will set invite only and maintain an ACL with team members. Users can set their NickServ username in their profile to get on the ACL. Rework all team views and templates. Remove TeamArea model and make Team have an FK to Camp directly. Add docstrings a whole bunch of places. Move signal handlers to apps.py and signal_handlers.py in a few apps. Add basic team mailing list handling, more work to be done. Update bootstrap-devsite script to add more teammembers and add some team event routing for the two eventtypes we have.

* default to the console backend for email unless we specifically ask for realworld email

* fix signal for public_credit_name approval irc message

* fix name display on /people/ page

* fix the text on people pages when all non-responsible team members are anonymous

* handle cases where we fallback to the area responsible properly

* readd removed property, it is used in team_detail view

* make it possible to filter profiles by public_credit_name_approved

* add method for sending IRC messages in ircbot.utils.add_irc_message(), extend periodic bot method to do more than check for outgoing messages so rename it, refactor chanserv and nickserv handling code, create methods to check and join/part IRC channels as needed, maintain channel ACLs for private channels, do not autojoin any channels when instatiating the bot instead rely on the new check_irc_channels() method to join them, rename profile presave signal, add checking for changed nickserv usernames for acl handling, add teammember.irc_channel_acl_ok boolean to track ACL state, add missing help_text properties to TeamMember fields, rename teammember postsave signal, add teammember deleted signal, readd wrongly deleted EnsureTeamMemberResponsibleMixin

* add a few missing early returns
2018-04-09 23:11:05 +02:00
Stephan Telling 10bd3bdd0d
remove camp from team objects in bootstrap script 2018-03-04 15:18:59 +01:00
Thomas Steen Rasmussen 6fe1790e89 spelling 2018-03-04 09:19:16 +01:00
Stephan Telling e3ad6c5657
update bootstrap script with better dates 2018-01-07 20:15:09 +01:00
Stephan Telling 93a827bf7e mark orders as paid in bootstrap script (#189)
they are marked as payed such that tickets are generated so we can
design the backoffice$
2017-12-12 22:13:38 +01:00
Stephan Telling d028c16966
add teamtasks in bootstrap script 2017-11-24 17:40:10 +01:00
Vidir Valberg Gudmundsson 0edcaeb11e Adding inital version of program control center. 2017-08-22 11:48:51 +02:00
Stephan Telling ac5fb77c7a
update bootstrap script with camps for tickettype 2017-08-17 21:18:43 +02:00
Stephan Telling 86ec617b71 Merge branch 'master' of github.com:bornhack/bornhack-website 2017-08-17 19:10:20 +02:00
Stephan Telling ec428f78d5
update bootstrap script with tickettypes 2017-08-17 19:09:46 +02:00
Stephan Telling 5eedb8ff03
update INSTALLED_APPS. add ticket_type and re-add old Ticket model
also updates bootstrap script with ticket_type
2017-08-17 17:52:22 +02:00
Thomas Steen Rasmussen 5c689e4076 queue an irc message when we sell a ticket 2017-07-03 19:28:50 +02:00
Stephan Telling 733028e4b7
move createcamp script to camps app 2017-06-04 13:08:59 +02:00
Stephan Telling 1522e3997b
set is_staff for users who are responsibles in bootstrap-script 2017-05-07 17:16:35 +02:00
Stephan Telling edc128c94f
update bootstrap script with profile information for users 2017-05-07 16:24:57 +02:00
Víðir Valberg Guðmundsson c32cde780a Adding icons 2017-04-29 12:23:10 +02:00
Stephan Telling 698698a96b
update bootstrap script with orders and orderproductrelations 2017-04-23 21:45:35 +02:00
Thomas Steen Rasmussen 305503d60a switch to using supervisord so rename worker runner 2017-04-18 22:15:04 +02:00
Thomas Steen Rasmussen 0dc1ca9704 rework team stuff 2017-04-02 18:04:57 +02:00
Thomas Steen Rasmussen 3dd3c71a8c fix bootstrap script after leader->responsible rename 2017-04-02 10:03:04 +02:00
Víðir Valberg Guðmundsson 5d4c4952d5 Teams (#100)
* Initial model for volunteers app.

* Rename Volunteers to Teams. Add view and templates.

* Adding detail page.
2017-03-31 17:29:28 +02:00
Thomas Steen Rasmussen 529be396f4 fixup the shop to work in the new multicamp world, fix pdf generation, add new letterhead templates, rework invoiceworker into a generic worker runner 2017-03-28 00:12:11 +02:00