Remove framework/rss_parser.py
Fix #528 Youtube API amendments for testing
- Changed handle_response definition, does not take tuple anymore

- Switch from class to module

- Made appropriate changes in cli.py

- Divided up code fore more testability
Pin flake8, pep8, and pytest at known working versions
Fix #523 Create New Talk popup

- Add NewTalkWidget class which has its own instance of TalkDetailsWidget
- Add instance of NewTalkWidget to TalkEditorApp and display it as a modal
  dialog when Add New Talk button clicked
- Add apply_changes function to repopulate the presentationModel and select
  the last updated talk in the table view with select_row function
- Add new talk to database when Add button clicked, close dialog and call
  apply_changes
- Refactor update_talk to use apply_changes, and prevent title-less talks
- Refactor create_presentation to accept a TalkDetailsWidget instance
- Set dialog appearance (title, size, buttons, placeholder text, date format)
- Keep previously entered room, event, date and time in NewTalkWidget
- Remove unused functions from TalkEditorApp:
  confirm_add, clear_talk_details_widget
- Remove unused files that were components of the old Talk Editor:
  AddTalkWidget.py, EditorWidget.py, UnlockTalkWidget.py
Fix #440 Add auto recording feature

- Add end time field in talk editor
- Add auto record button in record interface
- Add dialog box if no talk available for auto recording
- Add dialog box if no room selected for auto recording
- Add auto record widget to set up full screen countdown and talk info
  display
- Add flash screen at 1 minute and at 30 seconds mark
- Add code for start/stop recording for each talk that is eligible
  for auto recording

Closes #478
Close #557 Add list argument to CLI talk command
Add a list argument to talk command which prints existing talk ids,
titles, speakers, and events in a table
Sort packages by name
Close #506 Add test for RSS feed parser

Add a test that pulls different RSS feed attributes such as title,
speaker, etc. and compares it to a JSON file with the expected results.

test_get_presentations() checks attributes' title, speaker, level,
status, time, event, and room to see if they contain correct values.
Mark RSS feed parser test as expected to fail

This test will be run but no traceback will be reported when it fails.
Instead, terminal reporting will list it as "expected to fail".

Related to #555

http://pytest.org/latest/skipping.html#xfail
Fix formatting

E302: expected 2 blank lines, found 1
Redesign of the Settings List

Make the interface a lot less complicated and confusing. There
are no configuration options in the plugins anymore. It is
simply a list of all the plugins installed. The list starts
fully expanded, but sections may be minimized. When a plugin
is clicked, further details are displayed under the list.

Close #535
Related to issue #411
Close #556 CLI talk tests

Add tests that check the add, remove and clear functions of CLI talk

test_add_talk(): adds a talk via CLI and checks for its existence in the
database
test_remove_talk(): removes a talk via CLI and checks that it
does not exist in the database
test_clear_talks(): clears every talk via CLI and checks for an empty
database
Added missing gstreamer-python and sphinx dependencies.
Fix #558 "setup" buttons in the config tool were broken
Fix #460 Youtube API tests

- Unit tests for Youtube frontend

- Unit tests for Youtube API

- Uses mocks where needed
Removed an unnecessary new line
Update link to project proposal

This term we'll be using the shiny new proposal!
/cc @Freeseer/students
Added naming to popup dialogs in ConfigTool

The dialogs created by pressing the "setup"
buttons in the recording tab of ConfigTool
would all have the title "python". This has
been fixed to have more appropriate titles.
Close #435 Create HTTP API for controlling Freeseer recording

Adds a flask based server that can be launched from the CLI
The server has a RESTful API for controlling the recording process
The API currently supports:
    - initializing recordings
    - starting recordings
    - pausing recordings
    - stoping recordings
    - deleting recordings
    - getting information about recordings
    - getting a list of all available recordings
There is also testing included to test the different API calls
Replaced references to unittest with pytest

The developer testing documentation became outdated with the move to
pytest. Therefore, old test examples using the unittest framework were
removed and replaced with an example of using the pyunit framework.

Close #467
Related #420
Related #566