Film Rating Dialog Responsibilities - maar35/film-festival-planner GitHub Wiki

Responsibilities of the Film Rating Dialog

The Film Rating Dialog presents the user the complete list of films screened in the festival. The lists contains among others duration, ratings and a short description of each film. The list can be filtered by subsection (if the current festival supports them).

The functionality of this dialog is being moved to a Django version. At the moment of this writing, the user can then enter ratings for his- or herself in the Django version.

Responsibilities

Responsibilities independent of version

The Film Rating Dialog responsibilities are:

Responsibilities moved to Django

Of the general responsibilities above, the following are included in the Django version.

Responsibilities only in Django

New responsibilities, only included in the Django version:

Temporary responsibilities in the C# version

  • Load ratings without restarting the application

Display all films

Films are displayed with title, duration, number of screenings, subsection, ratings and description.

Allow rating management

  • Allows entering and changing ratings of all registered film fans
  • Ratings are checked to be correct when ending editing
  • In the Django version, ratings are picked in a dropdown widget and saved immediately

Save ratings

When a rating is changed, the title of the Done button changes to Save. The save button saves ratings and writes RatingsSheet.csv. Also, a user notification is generated.

Redirect to film website

Provide a link to the selected film's website

Redirect to film info

Display all Film Info that is stored by the loader. This done by activating the Film Info Dialog

Allow sorting and filtering

  • All columns can be sorted except Description
  • Films without screenings can be filtered out
  • Films with the same subsection can be selected by clicking on the subsection label. When filtering is on, clicking the subsection label will make all films visible again.

Support finding by typing

Type match is supported by two methods:

  • The entire film title is matched by typing a few keys
  • Words in the film titles are matched by typing a fes keys

A checkbox allows switching between the two methods.

Provide tooltips on controls that may need explanation

For the time being, only the Visit Website button has it, plus the Subsection Labels

Combine titles that refer to the same film

  • Different titles that refer to the same film can be combined into one film, e.g. "Riders of Justice" and "Opening Night: Riders of Justice"
  • This guarantees that the combined films get the same ratings
  • Combined films can be uncombined

Keep data in a database

All data that is handled with Django code should be in a database. In the process, also C# code should use that database.

An admin fan can rate for all fans

  • Each user is associated with one film fan
  • If that film fan is marked as admin, the user can switch to any other fan and rate films on behalf of that fan
  • Rating films is still only possible for one fan, the current fan