Easy scheduling for regular film nights
Project description
Vote4Film
Simplify film selection for regular film nights. Participants can:
- Add films
- Vote for films
- Declare absences
- See the schedule which takes into account votes and absences
Admins can set the schedule of film nights.
This is a simple WSGI Web Application. The back-end is Django, and the front-end is dynamic HTML served by Django (no JavaScript is used).
Development
poetry install
to set-up the virtualenv (one-off)poetry run ./src/manage.py migrate
to set-up the local DB (one-off)poetry run ./src/manage.py runserver_plus
make fix
,make check
andmake test
before committing
Contributing
Pull requests are welcome :)
TODO: Fix dependency on bbfcapi
to be bbfcapi[apis]
and remove direct
dependency on pyhumps
.
Publishing
This application is published on PyPi.
- Ensure you have configured the PyPi repository with Poetry (one-off)
- Add the release notes in this README.md
poetry version minor
to bump the major/minor/patch version- Also bump version in
vote4film/__init__.py
poetry publish --build
to release
To publish to the test repository:
- Ensure you have configured the Test PyPi repository with Poetry (one-off)
poetry publish --build -r testpypi
to upload to the test repository
Deployment
Unfortunately, I will not provide detailed guidance for production deployment.
Some general tips:
- Create a virtualenv, e.g. in
~/virtualenv
- Install with
pip install vote4film[postgres]
- Write the configuration at
~/.config/vote4film/local.env
- Use Postgres as the database
- Use Nginx/uWSGI to to serve the site (with HTTPS)
- Run Django management commands using
./virtualenv/bin/manage
Changelog
Unpublished
...
v1.6.0 - 2021-01-24
- Treat users with unknown presence as being absent for the event
- Add link to edit films on film cards
- Add button to refresh film information
- Fix colours on film cards
v1.5.8 - 2021-01-17
- [SECURITY] Fix security vulnerability in underlying dependencies
- Fix linking to films on BBFC's website
- Fix retrieving age rating from BBFC
v1.5.7 - 2020-11-08
- [SECURITY] Fix security vulnerability in underlying dependencies
- Fix vendored YouTube icon being hidden by adblockers
- Fix missing BBFC age rating symbols
- Fix failing to log correct error when adding films
v1.5.6 - 2020-09-20
- Fix parsing omdb film rating when it is missing
- Add search to the admin page for films
- Stop content reflow on film cards
- Stop BBFC icon downloads redirecting
- Replace external YouTube icon with a local SVG
- Log more information to Sentry (if enabled)
v1.5.5 - 2020-06-20
- [SECURITY] Fix security vulnerability in underlying dependencies
- Add website favicon
- Fix parsing "PG" age rating
v1.5.4 - 2020-05-29
- Fix missing icons on upcoming and add film pages (use fontawesome)
v1.5.3 - 2020-05-02
- Add "update film" link when editing a film
- Add redirects after editing a film
- Miscellaneous UI tweaks
- Add support for "G" age rating on IMDB
- Fix initial choice on the calender not matching the user's previous choice
- Add option for Sentry's trace sample rate
v1.5.2 - 2020-04-04
- Fix link to calender when there is no upcoming event
v1.5.1 - 2020-04-04
- Fix call-to-action flow for the upcoming page
v1.5.0 - 2020-04-04
- Overhaul user interface
- Enable additional Sentry features including tracing
v1.4.0 - 2020-03-22
- Allow users to change their vote
- Redirect the user to the schedule after registering for the event
- Hide upcoming film until the user has voted for all films
- Add actually usable admin interface
- Add optional Sentry integration
v1.3.0 - 2020-03-22
- Fix error adding film when age rating on IMDB/OMDB is "N/A"
- Add BBFC age ratings
v1.2.3 - 2020-02-01
- Redirect to upcoming schedule after voting for every film
- Fix HTTP 500 error when on schedule page without registering for the event
v1.2.2 - 2019-12-05
- Fix HTTP 500 error when adding a film that was already added (again)
- Highlight calender and vote links when there is a user action to take
- Pick the oldest added film for upcoming when scores are a draw
v1.2.1 - 2019-11-21
- Remove "film is not available" from the voting page
- Remove "vote for this film" from the voting page
- Fix the upcoming page asking absent users to register on calender
v1.2.0 - 2019-11-21
- Fix ranking films with zero votes as number one
- Hide upcoming film until the user has registered for the next event
- Clarify what will happen when adding a film by giving the user more choices
- Fix HTTP 500 error when adding a film that was already added
- Hide a film's votes from the user until they have voted
v1.1.0 - 2019/11/16
- Show the register of present/absent users for upcoming films
- Fix not highlighting films that are not available to be watched
- Fix parsing of "Not Rated" age ratings resulting in an error
v1.0.9 - 2019/11/13
- Actually let's not be too dumb about packaging
v1.0.8 - 2019/11/13
- Rename management command from vote4film to manage
- Stop trying to be smart about packaging
v1.0.7 - 2019/11/13
- The same fixes as v1.0.6 but for real this time
v1.0.6 - 2019/11/13
- Fix url patterns for internal apps in installed environment
- Fix missing template files in PyPi package (so typical!)
v1.0.5 - 2019/11/12
- Add optional postgres support, e.g.
pip install vote4film[postgres]
v1.0.4 - 2019/11/12
- Fix bug loading config from XDG config home (sigh)
- Fix django-extensions being missed from dependencies
v1.0.3 - 2019/11/12
- Fix config sub-directory used in XDG config home
v1.0.2 - 2019/11/12
- Load configuration from XDG config home
v1.0.1 - 2019/11/10
- First release of Vote4Film
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
vote4film-1.6.0.tar.gz
(1.5 MB
view hashes)
Built Distribution
Close
Hashes for vote4film-1.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f70d9b29e4d7d955048b398c7e02da93e3d32c97933f9b223b352b94e360689b |
|
MD5 | 2f6544728df28ec7e6fc419da53ae8da |
|
BLAKE2b-256 | 4c3a21b79c0a65cd8757655da01e7b12c0440d2776e223a4264d01613fa1cd67 |