Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/#160 remove files course overview #191

Merged
merged 22 commits into from
Jan 16, 2020

Conversation

caustt
Copy link
Contributor

@caustt caustt commented Jan 14, 2020

Resolves #156 and #160

This PR changes / adds / introduces the feature of deleting files in the course overview.

Acceptance Criteria:

  • In the students course overview there is a button / text "Delete" besides every file that the student user is author of - [x] Clicking the button promts a window titled "Are you sure you want to remove this file?", a "Yes" and a "No" option.

  • Clicking "Yes" removes the file entirely from the lecture, course and the DB, and closes the window

  • Clicking "No" Closes the window as well

  • [x ] No other student is able to delete the file of other students

  • In the lecturers (!) course overview, there is a button / text besides every file, that when clicked promts a window titled "Are you sure you want to remove this file from the course", a "Yes" and a "No" option.

  • [x ] Clicking "Yes" removes the file entirely from the course and the DB, and closes the window

  • Clicking "No" Closes the window as well

  • A student will NOT have the option to remove files he does not own!

Testing steps:

  • automated test cases
    Steps needed for migration:
  • None

Definition Of Done:

@caustt caustt self-assigned this Jan 14, 2020
@caustt caustt added the Team RESTless This issue is assigned to the team of AB label Jan 14, 2020
@caustt caustt mentioned this pull request Jan 14, 2020
4 tasks
@adrianjost
Copy link
Contributor

adrianjost commented Jan 15, 2020

@caustt Could you resolve the merge conflicts before a review starts?

Copy link
Contributor

@adrianjost adrianjost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks great except the one condition which is in my opinion difficult to understand. Please refactor this condition.

Comment on lines 66 to 67
unless current_user == @uploaded_file.author
unless (@uploaded_file.allowsUpload.class.name == "Course") && (@uploaded_file.allowsUpload.creator_id == current_user.id)
Copy link
Contributor

@adrianjost adrianjost Jan 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a) there is no else case so these two conditions can be merged
b) it would improve readability a lot if you store the condition result in variables with meaningful names and then only compare the variables.

The conditions were difficult to understand for me because of the inverted logic using unless. But I think this is just a personal preference.
Anyway, do I understand them correctly:
Permission is always granted if you are the author/creator of the file. And if it is a Course File and you aren't the creator permission is denied? Doesn't this result in false positives for Lecture files?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I only added validaten for course files in this PR.
I changed it now, so it should also validate lecture files and tried to make it more readable.

Comment on lines 65 to 68
@uploaded_file = UploadedFile.find(params[:id])
@owner = current_user == @uploaded_file.author
@course_file_and_course_owner = (@uploaded_file.allowsUpload.class == Course) && (@uploaded_file.allowsUpload.creator_id == current_user.id)
@lecture_file_and_lecture_owner = (@uploaded_file.allowsUpload.class == Lecture) && (@uploaded_file.allowsUpload.lecturer_id == current_user.id)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can omit the @ in front of the variables. The @ is only required for class wide variables.
https://www.techotopia.com/index.php/Ruby_Variable_Scope

Please wait with merge unless this is fixed.

Everything else looks great now and can be merged after this small fix

app/controllers/uploaded_files_controller.rb Show resolved Hide resolved
app/controllers/uploaded_files_controller.rb Outdated Show resolved Hide resolved
app/controllers/uploaded_files_controller.rb Outdated Show resolved Hide resolved
app/controllers/uploaded_files_controller.rb Outdated Show resolved Hide resolved
app/controllers/uploaded_files_controller.rb Outdated Show resolved Hide resolved
caustt and others added 6 commits January 16, 2020 16:36
Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
@adrianjost adrianjost added the ready to merge This Pull can be merged. Someone probably just waited for the CI and added this as a reminder. label Jan 16, 2020
@mergify mergify bot merged commit 9949c1f into dev Jan 16, 2020
vxrahn added a commit that referenced this pull request Feb 7, 2020
* Delete PULL_REQUEST_TEMPLATE.md

* update pullapprove for team RESTless (#66)

* update pullapprove for team RESTless

* don't use teams

* Revert "adjust indentation"

This reverts commit f7a91e002e461db844dd81ef391bd58d688da378.

* add new poll field to lecture view and lecture to poll_params in controller

* Include code review feedback

* Integrate rubocop style

* add polls as nested resources for #18 (destroying not working yet)

* Add lecturer-lecture relation.

* remove destroy dependency

so a lecture does not get destroyed when one of it's polls is destroyed

* make that students can not create polls

* Implement #40.

* Implement #38.

* Corrected rubocop offenses.

* Test for student or lecturer

* show current lectures view not to lecturers

* Add lecturer (one user) to lecture and fix tests

* Add description attribute

* Add n:m relation between users and lectures

* Add tests for description of lecture

* fix usage of current_user variable

* adjust polls controller spect to new model structure

* add lecture to poll factory

* fix polls_spec in routes

* adjust routing and request spect for polls to new model structure

* adjust view poll tests to new model structure

* add react component that alerts when number of options in new poll form is changed

* Add react component that renders poll options

* The number of options can be selected by the user
* The inital number is 2

* add options to poll on creation and on show view

* fix save value of poll options

* add is_active attribute to poll everywhere

* add edit functionality for polls and allow only one active poll

- edit view takes existing data
- edit works
- only one poll per lecture can be active

* adjust specs to new poll structure

- adjust polls index specs
- adjust naming in PollOptions react component
- let options without descriptions be valid
- add params to poll controller spec because attributes do not work for
create and edit

* fix style

* add blockage for students from editing and creating polls

* apply some requested changes

* Update spec/views/polls/show.html.erb_spec.rb

Co-Authored-By: Lasse Jahn <lasse.jahn@student.hpi.de>

* adjust nil "" consistency

* fix some broken tests

* fix broken tests

* fix poll validation that only one poll can be active #20

* fix formatting #18

* bundle exec rubocop

* remove unused code

* remove unused code

* Update schema.rb

* add permission check so only the lecturer can edit a lecture

* bundle exec rubocop --auto-correct

* feature/Questions (#81)

* add question scaffold generated model

* Fix failing question creation test #9

* Implement first draft of react question component with ActionCable

* Add submit page for questions

* Implement basic question pushing/pulling behaviour using ActionCable

* Change ActionCable subscription behaviour from react-actioncable-provider to App.cable.subscriptions.create

* Sort questions by creation date descending, remove unused question controller definitions

* Add conditional form in questions component

* Sort questions by creation date descending in react to prevent wrong order due to notification delay

* Pass parameter ìs_student' to QuestionsList React component

* Add authentification by user id to cable connection

* Add conditional style for questions

* Delete unnecessary generated specs

* Add failing test for questions view

* Update questions model to reference user table as author

* Add tests covering routing and model of questions, implement few refactorings

* Trim message content on receive

* Add first question controller and question api controller tests

* Adapt dependency of question according to the new attribute is_student

* Implement QuestionsApiController tests, including first ActionCable test

* Move QuestionsApiController to Api Namespace, change React Questions component to take correct props

* Fix rubocop offenses

* Change question page design according to mockups, add question submitting on enter key down

* Adjust question input field to get focused on page load

* Delete unused questions view spec

* Add word break to question list view element

* Reformat question typescript code using Prettier

* Revert change to .gitignore

* Change typescript code to pass rails tests

* Create ActionCable subscription inside React component

* check lectures controller action for lecturer login and filter /lectures
to only show lectures of current Lecturer

* Update pull_request_template.md (#67)

Update pull_request_template to
* support automated closing of issues by merge
* provide Link to ER-diagram
* use checkboxes instead of bulletpoints

* Add Check for authenticated user and extend tests to be logged in via tag

* Add tests for authentication

* Add rubocop linting

* Lecturer can't access lectures of other lecturers

* Lecturers cannot start/end/delete a another lecturers lecture

* Feature/#31 student feedback (#63)

* [#31] Add feedback model

Updated Rubocop and changed tests to fit the lecture reference of a feedback

* Add tab view

Co-authored-by: jeriox <jeriox@users.noreply.github.com>
Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* [#31] Add feedback model

Updated Rubocop and changed tests to fit the lecture reference of a feedback

* Add tab view

Co-authored-by: jeriox <jeriox@users.noreply.github.com>
Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* [#31] Add feedback model to git

* [#31] Add feedback files to git

* [#31] Add feedback create and show to lecture feedback tab

* [#31] Add migration and robucop style guides

* [#31] Fix test for lecture show

The test validates the existence of the navbar tabs

* [#31] Add correct test description

* Add role checking to lectures view page, setting are hidden for student\n\n\nCo-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>\nCo-authored-by: jeriox <jeriox@users.noreply.github.com>

* Fix Merge

* Add submitting feedback without page reload

* [#31] Fixed tests for the lecture overview

* [#31] Add test for feedback model and add factory for feedback

* Feature/#35 Add tab view (#60)

* [#31] Add feedback model

Updated Rubocop and changed tests to fit the lecture reference of a feedback

* Add tab view

Co-authored-by: jeriox <jeriox@users.noreply.github.com>
Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* [#31] Add feedback model

Updated Rubocop and changed tests to fit the lecture reference of a feedback

* Add tab view

Co-authored-by: jeriox <jeriox@users.noreply.github.com>
Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* [#31] Add feedback model to git

* [#31] Add feedback files to git

* [#31] Add feedback create and show to lecture feedback tab

* [#31] Add migration and robucop style guides

* [#31] Fix test for lecture show

The test validates the existence of the navbar tabs

* [#31] Add correct test description

* Add role checking to lectures view page, setting are hidden for student\n\n\nCo-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>\nCo-authored-by: jeriox <jeriox@users.noreply.github.com>

* Fix Merge

* Add submitting feedback without page reload

* [#31] Fixed tests for the lecture overview

* [#31] Add test for feedback model and add factory for feedback

* Add usefull tests for tabs

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>

* Remove duplicate line

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>

* Add votes attribut to poll options db schema

* Fixed continuous deployment. (#102)

* Allowed cd to run from this branch for testing purposes.

* Abort build when docke rbuild fails with error.

* Run travis on this branch too.

* Fixed login command.

* Fixed syntax.

* Removed unnecessary steps from DOckerfile.

* Push using docker to prevent heroku container:push to build second image.

* Added migrations to fix dev.

* Removed columns from create table that are added by a migration later.

* Change dev branch back to dev.

* Bump puma from 3.12.1 to 3.12.2 (#93)

Bumps [puma](https://github.com/puma/puma) from 3.12.1 to 3.12.2.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/master/History.md)
- [Commits](https://github.com/puma/puma/compare/v3.12.1...v3.12.2)

Signed-off-by: dependabot[bot] <support@github.com>

* Update README.md (#82)

* Link class diagram instead of ERD in Pull Template (#104)

* Link class diagram instead of ERD in Pull Template

* Update pull_request_template.md

* implement join lecture, failed to implement tests (#103)

* implement join lecture, failed to implement tests

* adjust current lectures table design

* remove duplicate notice

* redirect to overview after creating a lecture

like it is defined in the prototype

* add join test

* each user can oly participate once in a lecture

* make show page visible for students

* rubocop

* Feature/#15 questions resolving (#105)

* Change questions to only show if they are not yet resolved, broadcast question resolving

* Change request type of question resolving to POST

* Restructer question react code to fit mobx-state-tree

* Fix questions React component behaviour

* Add tests for question resolving

* Change questions React components to functionComponents, refactor questions React mobx store

* Correct rubocop offenses

* Change question resoling route to match configured route in rails

* Prettify resolved button

* Introduce QuestionsUtils to provide ActionCable and API functionality, reenable is_student check in questions

* Refactor QuestionList Model

* Rename RootStore

* Fixed resolved button styling for lecturer

* Refactor RootStoreModel to QuestionsRootStoreModel

* Show resolving only to author or lecturer

* update model

* add leave_lecture to controller

* add button to html

* refactor tests

* make it finally work

* bundle exec rubocop

* remove unnecessary lines

* feature/#47 student leave lecture (#108)

* update model

* add leave_lecture to controller

* add button to html

* refactor tests

* make it finally work

* bundle exec rubocop

* remove unnecessary lines

* redirect after login (#109)

* redirect after login

* Update home_controller_spec.rb

* Feature/#71 question upvotes (#106)

* Change questions to only show if they are not yet resolved, broadcast question resolving

* Change request type of question resolving to POST

* Restructer question react code to fit mobx-state-tree

* Fix questions React component behaviour

* Add tests for question resolving

* Add upvoting relation between question and user

* Add backend upvoting functionality using ActionCable (for #71)

* Change questions React components to functionComponents, refactor questions React mobx store

* Correct rubocop offenses

* Change question resoling route to match configured route in rails

* Prettify resolved button

* Introduce QuestionsUtils to provide ActionCable and API functionality, reenable is_student check in questions

* Refactor QuestionList Model

* Rename RootStore

* Fixed resolved button styling for lecturer

* Add upvotes to Questions, fix migration

* Add upvotes to Question model

* Add upvote to Question with button

* Refactor RootStoreModel to QuestionsRootStoreModel

* Update schema, adjust question upvotes styles

* Adjust question upvote styling to fit design protoype

* Show upvoting only to students that have not upvoted yet and did not as the question

* Refactor canUpvote and canResolve questions logic

* Brighten upvote arrow color when disabled

* Adjust rspec tests to give current_user scope to serializer

* Tests for #38

* Channged index lecture view

Index lecture view now shows multiple tables for created running an
ended lectures, and show no start button for ended lectures

* run rubocop

* add Review Button (#111)

* add Review Button

* adjust button design

* fix merge

* fix failing test

* refactor lectures overview (#117)

* Fix bug and integrate regession test (#114)

* Fix bug and integrate regession test

* Add description to lecture factory

* Add test

* Feature/#72 question upvote sorting (#115)

* Change questions to only show if they are not yet resolved, broadcast question resolving

* Change request type of question resolving to POST

* Restructer question react code to fit mobx-state-tree

* Fix questions React component behaviour

* Add tests for question resolving

* Add upvoting relation between question and user

* Add backend upvoting functionality using ActionCable (for #71)

* Change questions React components to functionComponents, refactor questions React mobx store

* Correct rubocop offenses

* Change question resoling route to match configured route in rails

* Prettify resolved button

* Introduce QuestionsUtils to provide ActionCable and API functionality, reenable is_student check in questions

* Refactor QuestionList Model

* Rename RootStore

* Fixed resolved button styling for lecturer

* Add upvotes to Questions, fix migration

* Add upvotes to Question model

* Add upvote to Question with button

* Refactor RootStoreModel to QuestionsRootStoreModel

* Update schema, adjust question upvotes styles

* Adjust question upvote styling to fit design protoype

* Show upvoting only to students that have not upvoted yet and did not as the question

* Refactor canUpvote and canResolve questions logic

* Brighten upvote arrow color when disabled

* Adjust rspec tests to give current_user scope to serializer

* Add server side sorting of questions according to role of user

* Add tests for upvoting

* Set default sortings for lecturer and student and add sorting component

* Add test for question sorting with upvotes

* Remove whitespace

* Brighten question upvote button when disabled and clickable, darken button when clicked

* Feature/#83 Implement and test file upload. (#116)

* Implement and test file upload.

* Generate scaffold for uploaded_files and adapt output to match requirements.

* Delete everything not required by the task. Adapt route and remaining tests.

* Remove all not required methods from uploaded_files_controller.

* Use require and permit to retrieve params.

* Rename "New Uploaded File" to "Upload file".

* Rubocop clean up.

* install specific bundler version

* unify migrations

* remove comments from generator

* remove duplicate notice entry

* fix indentation in testcase

* adjust wording in new files notice ("created" => "saved")

* shrink table data to prevent overflow

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#45 edit lectures (#110)

* Removed delete button from edit page as required by the ticket.

* Revert "Removed delete button from edit page as required by the ticket."
Misinterpreted the ticket, used the mockup for clarification.

This reverts commit 28586257b510f573a7fb042098e9bf06ddf1d6db.

* Added edit button.

* Implement settings tab.

* Fix rubocop offenses.

* addition to merge, reintroduce edit button

My IDE haven't let me add this to the merge commit I did before.

* make edit page only accessible before a lecture was started

* remove edit button from lecture details view

* install specific bundler version

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#122 file download (#136)

* Implement and test file upload.

* Generate scaffold for uploaded_files and adapt output to match requirements.

* Delete everything not required by the task. Adapt route and remaining tests.

* Remove all not required methods from uploaded_files_controller.

* Use require and permit to retrieve params.

* Rename "New Uploaded File" to "Upload file".

* Rubocop clean up.

* install specific bundler version

* unify migrations

* remove comments from generator

* remove duplicate notice entry

* fix indentation in testcase

* adjust wording in new files notice ("created" => "saved")

* shrink table data to prevent overflow

* Tests for #122

* Implement download for uploaded files

* fix merge

Co-authored-by: Eric Ackermann <eric.ackermann.99@googlemail.com>
Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#74 assign questions to lecture (#139)

* Assign questions react component to lecture ui

* Adjust QuestionsApp to work in lecture UI

* Add update component

* Add lecture to question in rails model

* Add nice UI features

* Assign ActionCable streaming to lectures

* Add UpdateModel, Question.createUpdate

* Remove QuestionsApiController tests

* Adjust UpdatesApp to work with lecture UI

* Refactor stylesheet structure

* Adjust lecture updates according to mockup

* Change production Actioncable to psql

* Makie question in dashboard resolvable

* Add lecture_id as root store call

* Move question checks to question model

* Add type hints

* Remove unused import and var

* Adjust tests to match question-to-lecture assignment

* Fix rspec not finding current user in lecture overview

* Add tests for question-to-lecture assignment

* Remove top margin questions list lecturers view

* Fix rubocop complains

* Change lecture to lecture_id in question channels, adjust lecture verification in QuestionsController

* Move question creation to CurrentQuestion model

* Refactor UpdatesApp to use its own store; currently updating the store not affecting view

* Introduce UpdateItem to hold representation for update item in dynamic update items list

* Sort questions list in updates list according to is_student

Co-authored-by: vxrahn <33007914+vxrahn@users.noreply.github.com>
Co-authored-by: Fabian Heseding <39628987+fabianhe@users.noreply.github.com>

* Feature/#21 show poll results (#118)

* add answer page for polls without saving the answers

* add failing test for showing votes

* add implementation for showing votes plus failing test

* finished first implementation for showing votes

* let rubocop catch some offending chars

* add lecture edit template and remove test in poll controller for redirecting

* Fix merge issues

Co-authored-by: Joana Be. <33000454+JoeAtHPI@users.noreply.github.com>
Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#20 poll can be closed (#120)

* add is_active property to polls #20

* fix some tests

* add answer page for polls without saving the answers

* add failing test for showing votes

* return answers

* add implementation for showing votes plus failing test

* fix schema version

* change answer poll to submit all anwsers with auth token

* finished first implementation for showing votes

* let rubocop catch some offending chars

* fix for editing polls

* redirect back to poll after answering

* add logic for single select in answer poll

* add lecture edit template and remove test in poll controller for redirecting

* add link to view lectures in lecture table

* store answers to poll when submitted

* set default poll in specs to be active

* adjust coontroller spec for edit view for students

* rename view link on lectures index page

* remove doubled migration

* add stop functionality to poll

* gather votes for option when submitting answers

* fix diplaying of option descriptions in answer form

* add Lecture column to polls index view

* add specs for start_stop poll controller action

* make rubocop conform

* add specs for save answers

* adjust poll controller spec for edit redirect

* add vote link for active poll of lecture

* #39 only save answers the user has given; remove outer form

* dont track vs code settings

* #39 set previously selected answers check as default for polls

* #39 show selected options in show page of poll

* fix links

* #39 not allowing to answer not active polls

* remove destory poll button for students

* # 39 add index page for polls for students

* fix tests

* add display of old answers when answering poll

* reset polls controller to before merge and adjust specs

* fix tests

* #39 improve feedback messages and remove debug statements

* #39 fix db migration

* fix Gemfile from merge

* remove non-functioning tests for save answers and make rubocop happy

* extract method from save_answers in poll controller

* fix poll index view spec for only one active poll is allowed

* fix extracted method in poll controller save answers

* fix routes

* remove extra line fro polls controller

* fixed newlines in controller for rubocop

* try changing a migation so build does not fail

* add IAnswer interface to AnswerOption component

* #20 try fix type error of tsx import

* refactor poll model

Co-authored-by: MichaelBuessemeyer <39529669+MichaelBuessemeyer@users.noreply.github.com>
Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>
Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>
Co-authored-by: Joana Be. <33000454+JoeAtHPI@users.noreply.github.com>
Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Fix startup crashes on heroku (#140)

* Install sassc without native optimization.

* Allow deployment on this branch (for test purposes).

* Run deployment from dev and master.

* Delete .pullapprove.yml (#130)

Co-authored-by: Eric Ackermann <eric.ackermann.99@googlemail.com>

* Feature/#92 revert student enrolling (#152)

* [#86] Add course scaffold

* [#86] Add course scaffold

* Add name validation

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>

* Add test for course having creator

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>

* Add creator reference to course

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>
Co-authored-by: jeriox <jeriox@users.noreply.github.com>
Co-authored-by: Marc <35168157+ma-ro@users.noreply.github.com>
Co-authored-by: phoeinx <hradilak@uni-potsdam.de>

* Add creator reference to course

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>
Co-authored-by: jeriox <jeriox@users.noreply.github.com>
Co-authored-by: Marc <35168157+ma-ro@users.noreply.github.com>
Co-authored-by: phoeinx <hradilak@uni-potsdam.de>

* Add course button in home view test

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>
Co-authored-by: phoeinx <hradilak@uni-potsdam.de>

* Add course button in home view

Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>
Co-authored-by: phoeinx <hradilak@uni-potsdam.de>

* Add only signed in users can see New Course button in view

* [#86] Add current_user in home view

* [#95] Add list of all courses from a lecturer to the homeview

* [#95] Add table view of courses

* [#89] Add home view for students

* [#100] Add participate students for courses

* [#100] Add join table for users and courses

* [#100] Add join button for course in home view

* [#100] Add test for join_course in home_controller

* [#100] Move join_course method to right controller and adapt tests

* [#94] Add references in models and create join table for course and lecture

* [#100] Add correct css classes for courses tables

* [#94] Add nested lecture to resource to course resource to create corresponding routing

* [#94] Fix typo in routes.rb

* [#94] Add reference in course and lecture model and adapt edit form of lecture and index view of lecture

* [#94] Add lecture list course show view with button to create a new lecture

* [#94] Implement basic functionality for create and view lecture in course show

* [#94] Add correct Table Layout in course show and fix paths in lecture show

* [#94] Add buttons with basic lecture functionality in course show and fix corresponding routes

* [#100] Add factory for lectures

* [#100] Add factory for lectures

* [#94] Refactor routes regarding course lecture relationship

* [#94] Refactor tests in for lectures_controller

* [#94] Refactor tests in for polls_controller

* [#94] Refactor tests in for all_lectures_spec

* [#94] Refactor tests in for current_lectures_spec

* [#94] Refactor tests in show_lectures_spec

* [#94] Refactor tests in polls_spec

* [#94] Refactor tests in lectures_routing_spec

* [#94] Refactor tests in polls_routing_spec

* [#94] Refactor tests in edit.html und new.html

* [#94] Refactor tests in current.html

* [#94] Refactor tests for lectures views

* [#94] Refactor tests for polls views

* Add participating courses to home view (#91)

* Fix test

* Improve design

* Fix failing test

* [#92] Add course leave function

* [#92] Add style to table with leave button

* [#92] Refactor course show regarding to PO feedback

* [#92] Refactor back button regarding to PO feedback

* Applied code review changes (1 of n.a.)

Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* [#92] Fix tests

* [#92] Add requested changes from pull request

* [#92] Fix failing test

* [#92] Fix failing test

* [#92] Add course to question react files

* [#92] Add course to UpdateApp component

* [#92] Add dummy course parameters for polls

* Fix tests and broken before actions, also broken "Back" Link at Create New Lecture Page

* Add rubocop fixes

* [#92] Redid dummy course parameters for polls

Co-authored-by: Moritz Spranger <32243674+m0e33@users.noreply.github.com>
Co-authored-by: Marc  <35168157+ma-ro@users.noreply.github.com>
Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>
Co-authored-by: Theresa Hradilak <34538290+phoeinx@users.noreply.github.com>
Co-authored-by: Julian B. <jeriox@users.noreply.github.com>

* Hotfix back link in edit.html (#161)

* Hotfix polls (#162)

* Hotfix back link in edit.html

* Hotfix polls

* Fix is_active migration (#144)

* Do a proper change default migration.

* Restore deleted migration.

* Renamed new migration so it is run at the same point in time.

* Update schema.

* Run deployment from this branch to fix migrations.

* Use db schema from dev.

* Run deployment from dev, not from this branch.

* Fix/#133 column spacing (#180)

* Hotfix back link in edit.html

* [133] Fix column spacing regarding to long lecture names

Co-authored-by: Marc  <35168157+ma-ro@users.noreply.github.com>

* Fix/#92 add leave course button to dashboard (#181)

* Hotfix back link in edit.html

* [#92] Add a leave course button to the course dashboard

* [#92] Fix leave button only showed to students

Co-authored-by: Marc  <35168157+ma-ro@users.noreply.github.com>

* Fix/#87 only course creator can create lectures (#183)

* Hotfix back link in edit.html

* [#92] Add a leave course button to the course dashboard

* [#92] Fix leave button only showed to students

* [#87] Add redirect if not creator of the course

* [#87] Fix tests regarding new redirect

Co-authored-by: Marc  <35168157+ma-ro@users.noreply.github.com>

* Feature/#83 associate file with course (#177)

* Add polymorphic association from course to uploaded file and test.

* Fix rubocop.

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#83 files have authorship timestamps (#179)

* Implement and add tests for Author Assosication of UploadedFiles

* Add index for Author-UploadedFiles-Assosiation

* update tests to include author

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Move leave/end lecture button into tabbar (#128)

* Do not show links if lecture is archived

* Validate lecture to false if changed when the lecture is achived

* make disable editing lecture when lecture ended work

* disable lecture editing fields if the lecture ended

* install specific bundler version

* move tabbar into partial

* Ended Lectures that changed are invalid

* Add comment

* Fix tests

* Add tests

* fix tests

* Add edit link to Lecture-Dashboard when lecture is in status created

* Fix HTTP-Method from lectures-edit link

* Fix Test

* fix links

Co-authored-by: MartinBuessemeyer <39387258+MartinBuessemeyer@users.noreply.github.com>

* Bump rack from 2.0.7 to 2.0.8 (#137)

Bumps [rack](https://github.com/rack/rack) from 2.0.7 to 2.0.8.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/2.0.7...2.0.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* refactor course lectures overview to use table (#186)

* refactor course lectures overview to use table

* reintroduce edit link for running lectures

* reintroduce status for lectures

* add some tests

* run rubocop

* Feature/#62 archive ended lectures (#168)

* Do not show links if lecture is archived

* Validate lecture to false if changed when the lecture is achived

* make disable editing lecture when lecture ended work

* disable lecture editing fields if the lecture ended

* Ended Lectures that changed are invalid

* Add comment

* Fix tests

* Add tests

* fix tests

* Add edit link to Lecture-Dashboard when lecture is in status created

* Fix HTTP-Method from lectures-edit link

* Fix Test

* apply some review feedback

* Implement feedback: use readonly instead of validator and adapt tests

* Add another test case

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#176 user profile view (#184)

* Hotfix back link in edit.html

* [#176] Add show view for user

* [#176] Add Show Profile to navbar

* [#176] Add Test for users show

* [#176] Fix formatting

* [#176] Add user profile alignment in navbar to left according PR review

* [#176] Add test for user show on home view

* [#176] Fix heading size on profile regarding PR request

Co-authored-by: Moritz Spranger <32243674+m0e33@users.noreply.github.com>
Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>

* Improvement/#146 integrate poll interaction into tabview without react (#182)

* add iframe for poll interaction to tab view

* make poll iframe fitting to page

* dont render navbar when displaying something with polls

* improve poll interaction and views

* fix poll option edit bug

* improve poll interaction and views even more

* adjust poll show view specs

* add new poll button to poll index

* rename display_navbar to hide_navbar

* adjust place between buttons in polls table

* remove comment in polls index student view

Co-authored-by: MichaelBuessemeyer <39529669+MichaelBuessemeyer@users.noreply.github.com>

* Feature/#174 add date and time to lecture (#185)

* Hotfix back link in edit.html

* [#176] Add show view for user

* [#176] Add Show Profile to navbar

* [#176] Add Test for users show

* [#176] Fix formatting

* [#174] Add date, start and end time to lecture model and view

* [#174] Add Database Migration

* [#176] Add user profile alignment in navbar to left according PR review

* [#174] Add My lectures to home screen

* [#174] Add course name of lecture regarding AC

* [#174] Add switching view - join button in course dashboard by currently running lectures

* [#174] Add css for stying the running lectures on course dashboard

* [#174] Fix right border for view and join button in table row

* [#174] Fix tests regarding new date and time attributes of lecture

* [#176] Add test for user show on home view

* [#176] Fix heading size on profile regarding PR request

* [#174] Add tests for date and time and made changes regarding PR review

* [#174] Add table templates for courses showing only and all but running lectures

* [#174] Remove code not longer needed

* [#174] Remove css not longer needed

* [#174] Remove code in lecture model wich was wrongly in this branch

* [#174] Fix format

Co-authored-by: Moritz Spranger <32243674+m0e33@users.noreply.github.com>
Co-authored-by: LucPrestin <40767277+LucPrestin@users.noreply.github.com>

* fix path of poll iframe (#190)

* Feature/#107 design of lecture create page (#121)

* Removed delete button from edit page as required by the ticket.

* Revert "Removed delete button from edit page as required by the ticket."
Misinterpreted the ticket, used the mockup for clarification.

This reverts commit 28586257b510f573a7fb042098e9bf06ddf1d6db.

* Added edit button.

* Implement settings tab.

* Fix rubocop offenses.

* addition to merge, reintroduce edit button

My IDE haven't let me add this to the merge commit I did before.

* polish up lecture edit/create form

* use textarea for description

* increse default height of textarea

* fix broken tests

* install specific bundler version

* fix tests

Co-authored-by: Eric Ackermann <eric.ackermann.99@googlemail.com>

* Feature/#155 course file view (#189)

* add prototype for filelist

* add download link

*  Tests for #155, remove double tests for show_courses

* Differntiate student and lecturer files and add scroll bar

* Missing test case

* fix merge

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* #164 make enrollment key optional (#194)

* #164 make enrollment key optional

* fix rubocop errors

* Install Mergify Tool (#187)

* add mergify config

https://mergify.io

* simplify mergify config

* Add mergify badge to README

Co-authored-by: Christoph Matthies <chrisma@users.noreply.github.com>
Co-authored-by: Lasse Jahn <l.jahn@me.com>

* add some seed users & lectures (#129)

* add some seed users & lectures

* remove unused var

* adapt seed data to have a course

* Adjust seed data to new DB Schema of lectures

Co-authored-by: Lasse Jahn <l.jahn@me.com>

* Feature/#160 remove files course overview (#191)

* add prototype for filelist

* add download link

*  Tests for #155, remove double tests for show_courses

* Differntiate student and lecturer files and add scroll bar

* Missing test case

* Tests for #160 #156

* Implement Deleting of Course Files

* Validate right to delete files from courses

* rubocop

* Remove duplicate section

*  Add lecture file delete validation

* Update app/controllers/uploaded_files_controller.rb

Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Update app/controllers/uploaded_files_controller.rb

Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Update app/controllers/uploaded_files_controller.rb

Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Update app/controllers/uploaded_files_controller.rb

Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Update app/controllers/uploaded_files_controller.rb

Co-Authored-By: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Update uploaded_files_controller.rb

* change back variable scope

* change variable scope

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#167 rejoin entered lecture (#198)

* remove participants when first adding a key to lecture

* test removing students

* fix rubocop offense

* Feature/#165 need key to join lecture (#206)

* add form for key insertion

* make notices to alerts in lectures controller

* only require key insertion when key exists

* disable autocomplete on key input

* add join without key input for keyless lectures

* adjust feature test

* add specs for key validation in lectures controller

* add specs for show view for key input

* fix joining and form tag of key input

* add input to home page

* fic rubocop offenses

* adjust comments

* Improvement/#146 make poll views better (#193)

* remove poll index headline

* change number of poll option input to onInput from onBlur

* add back to poll index link to answer poll view

* make destoy buttonn in poll edit destroy poll and not lecture

* adjust poll tab container for notices

* remov useless comment

* fix poll edit view

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>

* #166 add enrollment key tab for lecturer (#188)

* #166 add enrollment key tab for lecturer

* finish merging dev

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>

* add notice pages when polls or questions are disabled (#209)

* add notice pages when polls or questions are disabled

* fix spec

Co-authored-by: MichaelBuessemeyer <39529669+MichaelBuessemeyer@users.noreply.github.com>

* Feature/#125 upload links (#178)

* Implement uploading links.

* Fix rubocop.

* Introduce reusable show uploaded files component.

* Implement showing lecture files.

* Add test that checks if only files of the current lecture are shown.

* Fix rubocop.

* Initialise uploaded files as empty array if nil.

* Add regression test for umlaut issue.

* Fix errors introduced by merge. Also, build one universal component to show uploaded files.

* Fix rubocop.

* Add missing td.

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Add question filtering depending on resolve status (#205)

Co-authored-by: Fabian Heseding <39628987+fabianhe@users.noreply.github.com>
Co-authored-by: @SimonWiet 
Co-authored-by: @FabianGalandi 
Co-authored-by: @LoWanda

* Feature/#80 as a lecturer, i can choose different graphical representations for the responses (#214)

* add answer page for polls without saving the answers

* add failing test for showing votes

* add implementation for showing votes plus failing test

* finished first implementation for showing votes

* let rubocop catch some offending chars

* add lecture edit template and remove test in poll controller for redirecting

* Fix merge issues

* WIP

* Add correct reading from database and table as react component

* add bar and pie chart representations of poll results

* Delete unnecessary files for react database structure

* Add correct updating of poll options

* Fix NaN error

* Fix routes code duplication and refactor controller

* Display charts in a nav view

* Add styling for poll results

* Add finishing touches to poll result styling and add live update of participants count

* moved canvasjs-files to app/javascript/lib

* fix tests

* fix rubocop

* fix Typescript Compiler Error

Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>
Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Feature/#73 disallow question interaction in archived lecture (#207)

* Enable question interactions only if lecture is readonly

* Enable update interaction only if lecture not readonly

* Adjust styling to hide space before questions list if no form is shown

Co-authored-by: LoWanda <34399700+LoWanda@users.noreply.github.com>
Co-authored-by: @SimonWiet 
Co-authored-by: @FabianGalandi

* Feature/#147 add comprehension to lecture (#204)

* Add basic React ComprehensionApp

* Add basic implementation of required components

* Add fields to view

* WIP (do not look) do backend timestamp 10s stuff

* Add styling for comprehension view of lecturer

* Fix scheduled calling of comprehension stamp aging routine

* Implement and style students view for comprehension level

* Build API calls for comprehensions

* Add gemfile.lock

* Add spec for lecture_comprehension_model

* Handle no comprehension stamps

* Add route info comments

* Add lecturer comprehension connection to backend

* Start testing of comprehension in lecture controller (unfinished)

* Improve comprehension update and check for expired stamps

* Broadcast only to dedicated channels

* Use axios for requests having csrf token in requests to increase safety

* Fix formatting

* Disable test for update comprehension

* Refactor LectureComprehensionStamp operations

* Remove unused code

* Refactor comprehension stamp updating; change rufus scheduler to singleton

* Broadcast changes of comprehension to lecturer too; use axios instances in react components

* Rubocop styling

* Improve and complete comprehension stamp controller tests

* Add course logic to lecture behaviour

* Adjust tests

* Return connection to pool after scheduler is done

* Rename courseId to course_id

* Add grey indicator if no students have voted so far

* Delete logging info

* Re-add materials view to lecture dashboard

* Add interactions_enabled to UpdatesApp

Co-authored-by: vxrahn <33007914+vxrahn@users.noreply.github.com>
Co-authored-by: Fabian Heseding <39628987+fabianhe@users.noreply.github.com>
Co-authored-by: @SimonWiet 
Co-authored-by: @LoWanda 
Co-authored-by: @FabianGalandi

* Bump rack from 2.0.7 to 2.1.1 (#215)

Bumps [rack](https://github.com/rack/rack) from 2.0.7 to 2.1.1.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/2.0.7...2.1.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Disable upvoting and resolving for resolved questions (#216)

* Feature/#192 list of participating students (#213)

* add list of participating students to entrollment key tab

* add specs for student list

* Hotfix/#174 time for lecture (#219)

* v1.19.2

* vv1.19.2

* [#174] Change location of lecture heading so that it is above the navigation tabs

* Hotfix/#176 acount view (#218)

* v1.19.2

* vv1.19.2

* [#176] Change "back"-button so that it redirects to last page visited

Co-authored-by: Marc  <35168157+ma-ro@users.noreply.github.com>

* Add button to delete a course in the course settings (#208)

* add button to delete a course in the course settings
 * redirect to course view if the lecture does not exist
 * redirect to root view if the course does not exist
    * done for lecture, polls, questions, feedback
 * added test for redirection

* apply feedback
* add comments
* fix rubocop offenses

* apply feedback

* #164 add (optional )to enrollment key label

* minor adjustments and add missing test

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>

* Feature/#220 filter ui (#223)

* Move unresolved button

* Change filter button toggle behavior

Co-authored-by: FabianGalandi <33373230+FabianGalandi@users.noreply.github.com>
Co-authored-by: @vxrahn 
Co-authored-by: @fabianhe

* Feature/#158 upload files to lectures (#212)

* Implement uploading links.

* Fix rubocop.

* Introduce reusable show uploaded files component.

* Implement showing lecture files.

* Add test that checks if only files of the current lecture are shown.

* Fix rubocop.

* Initialise uploaded files as empty array if nil.

* Add regression test for umlaut issue.

* Fix errors introduced by merge. Also, build one universal component to show uploaded files.

* Fix rubocop.

* Add missing td.

* Uploaded files controller can be referenced from lectures and courses.

* Remove unnecessary route.

* Fix tests and delete links for lecture page.

* Finished stories

* Fix rubocop.

* Fix one broken test.

* move add file btn into tabbar

* adjust file/link upload design

* adjust file form overview for links

* remove unused classes

* improve responsiveness

* fix table responsiveness

* remove create timestamp

* fix tab overflow

* fix course spec

* fix upload file spec

* fix lectures show spec

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Disable comprehension voting after the lecture has ended (#224)

Co-authored-by: LoWanda <34399700+LoWanda@users.noreply.github.com>
Co-authored-by: vxrahn <33007914+vxrahn@users.noreply.github.com>
Co-authored-by: FabianGalandi <33373230+FabianGalandi@users.noreply.github.com>

* Feature/#222 lecturer dashboard statistics (#228)

* Add channel for student statistics

* Add basic statistic app

* Add statistics to dashboard

* Implement statistics styling according to mockup, add live updating of statistics data

* Add test for student statistic broadcasting

* Fix line breaks

Co-authored-by: LoWanda <34399700+LoWanda@users.noreply.github.com>
Co-authored-by: Fabian Heseding <39628987+fabianhe@users.noreply.github.com>

* Improve React apps data loading (#231)

* Change react apps to receive beginning state via server side rendering instead of API request

* Adjust tests accordingly

* Refactor react app props

* Change comprehension colors (#232)

* Feature/#169 feedback submit visualized (#217)

* v1.19.2

* vv1.19.2

* [#169] Add migration for user feedback context

* [#169] Add migration for user feedback context

* [#169] Add user to feedback model

* [#169] Add visual feedback for submitting

* [#169] Remove notification disappearance

* [#169] Add prefill content and label if already submitted feedback

* [#169] Delete update in feedbacks controller

* [#169] Refactor position of notification

* [#169] Removed whitespaces in lectures.show

* [#169] Fixed Feedback Factory

* [#169] Fix index.html.erb due to test failure

* [#169] Fix lecture show due to test failures

* [#169] Fix lecture show again due to test failures

* [#169] Fix feedbacks.rb styling

Co-authored-by: Moritz Spranger <32243674+m0e33@users.noreply.github.com>

* Feature/#169 feedback submit visualized (#243)

* v1.19.2

* vv1.19.2

* [#169] Add migration for user feedback context

* [#169] Add migration for user feedback context

* [#169] Add user to feedback model

* [#169] Add visual feedback for submitting

* [#169] Remove notification disappearance

* [#169] Add prefill content and label if already submitted feedback

* [#169] Delete update in feedbacks controller

* [#169] Refactor position of notification

* [#169] Removed whitespaces in lectures.show

* [#169] Fixed Feedback Factory

* [#169] Fix index.html.erb due to test failure

* [#169] Fix lecture show due to test failures

* [#169] Fix lecture show again due to test failures

* [#169] Fix feedbacks.rb styling

* [#169] Hotfix for feedback controller

* [#169] Fix Rubocop Offenses

Co-authored-by: Moritz Spranger <32243674+m0e33@users.noreply.github.com>

* minor fixes for "add option to delete courses" (#225)

* add button to delete a course in the course settings
 * redirect to course view if the lecture does not exist
 * redirect to root view if the course does not exist
    * done for lecture, polls, questions, feedback
 * added test for redirection

* apply feedback
* add comments
* fix rubocop offenses

* apply feedback

* #164 add (optional )to enrollment key label

* minor adjustments and add missing test

* fix polls when course is deleted; typo fix

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>
Co-authored-by: grittaweisheit <44833037+grittaweisheit@users.noreply.github.com>

* Add course_id properly (#244)

* Add course_id properly

* Fix course id access

Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>

* implement full width dashboard properly (#226)

* implement full width dashboard properly

* wrap sections properly on small devices

* centralize application head

* add spaces and arrow to links suggested in the PR

* fix build

* make tabbar full width like in the design prototype

* Display comprehension items vertical aligned on small screens (#233)

Co-authored-by: LoWanda <34399700+LoWanda@users.noreply.github.com>
Co-authored-by: @vxrahn

* Fix comprehension disabled after lecture ended (#251)

* Fix issue (#250)

Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>

* Improvement/#210 unify behaviour when kicked from lecture (#211)

* make unjoined student unable to submit feedback

* kick kicked student when trying feedback or question

* fix rubocop offenses

* fix merge dev

* fix feedback

* fit redirect when kicked from lecture

* add kicking for qiúestions

* fix style

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>

* Feature/#175 calendar feed 3 (#227)

* Merge branch 'dev' of /Users/tam/Documents/5. Semester/SWTII/lecture-portal with conflicts.

* Add webcal url for every user for constant updates of the visited lectures slots.

Add calendar support with "icalendar" gem.
Add IcalController and "/ical" route.
Add hash_id to every user for non guessable urls because webcal calendar feeds need to be able to be accessed without authentification.

* beautify layout of the profile view

Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* add tests

Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* make tests run and lint

Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* remove calendar from schema.rb

Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* add hash_id to user factory, remove save_and_open page

* Remove not needed code snippets from previous merges.

Co-authored-by: Theresa Hradilak <34538290+phoeinx@users.noreply.github.com>
Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>
Co-authored-by: Marc  <35168157+ma-ro@users.noreply.github.com>

* Feature/#238 semantic headlines (#264)

* correct HTML semantics of alerts

* adjust heading level semantics

* Feature/#202 feedback setting (#263)

* add feedback enabled to lecture model

* make feedback setting available and used

* add notice for feedback when it is disabled

* add enabled validation to feedback controller

* add specs for feature setting in views

* migrate schema

* add spec for feedback controller feedback creation

* give feedback the hash back

* remove hash because it was not supposed to be there

Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>

* Add total numbers on bar chart and fix bug (#265)

Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>

* Feature/#259 remove lecture description (#269)

* remove description from lecture

* adjust everything to removed description

* Feature/#196 automatic lecture (de) activation (#272)

* Add "archived" status and adjust accordingly (To be checked)

* Fix tests according to new lecture status

* Add conditionals for lecture status

* Adjust tests to fit new lecture status logic, implement new interactions enabling conditions

* Add interactions enabled check to comprehensions

* Adjust tests to fit new lecture status logic

Co-authored-by: @SimonWiet 
Co-authored-by: @LoWanda 
Co-authored-by: @FabianGalandi 
Co-authored-by: @vxrahn

* Show edit/review buttons for active lectures too (#273)

* Display comprehension items vertical aligned on small screens

* Show edit and review buttons for active lectures too

* Feature/#230 student dashboard upvote update feed (#261)

* Add upvoting in student dashboard updates

* Fix serializing of questions in questions model and tests, add student and lecturer click to updates item

* Add styling for student question upvoting in lecture dashboard

* Check for already upvoted in Question and Update

Co-authored-by: Fabian Heseding <39628987+fabianhe@users.noreply.github.com>
Co-authored-by: SimonWiet <48257578+SimonWiet@users.noreply.github.com>

* Feature/#234 review archived lecture (#266)

* Add test for review of ended lectures.

* Small refactoring.

* Fix rubocop

* Remove remaining references to set_inactive.

* Remove tests that rely on a Start button.

* Run db migrations before asset compilation.

* Fix seed data by unique ids + fix until loop (#274)

* Fix seed data by unique ids + fix until loop

* Fix test to test the creation by validation behavior

* Fix that users hash_id is only assigned once and does not change by every validation.

* Fix rubocop

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Rename 'Leave' button for courses to 'Unenroll' (#276)

* unify back button design & position (#267)

* rename link text

* unify back buttons

* small review adjustments

* adjust space

* Update schema.rb

* adjust back button on users page

* fix merge

* adjust student view

* Fix not working lecture status scheduler (#277)

* Display comprehension items vertical aligned on small screens

* Make update lecture status method public for scheduler to call it

* Fix problem in lecture activation due to timezones

* Add check in after_initialize to prevent scheduler in testing/console

Co-authored-by: SimonWiet <48257578+SimonWiet@users.noreply.github.com>

* Feature/#278 lecture title to 142 chars (#290)

* Hotfix back link in edit.html

* [#278] Refactor lecture name length validates from 40 to 142

* Feature/#280 remove sign up when logged in (#289)

* Hotfix back link in edit.html

* [#280] Add check for signed in user on home.index

* [#280] Add else statement due to code review

* Redirect back to course overview instead of detail view after editing a lecture (#292)

* Add functionality and test

* fix linting issue

* Feature/#279 forbid access to course index (#291)

* Hotfix back link in edit.html

* [#279] Add redirect in courses/index and refactor tests

* [#279] Add test for redirect

* [#279] Fix style due to rubocop

* Improvement/#296 restyle student poll views (#297)

* remove show button from student poll index

* adjust headline for show of students own votes

* remove answer link from students poll show view

Co-authored-by: Joana Be. <33000454+JoeAtHPI@users.noreply.github.com>

* Enhancement/#302 remove comes with many features (#303)

* Hotfix back link in edit.html

* [#302] Removed sentence from home view

* Add check whether database exists (#310)

* Implement core and optional feature and tests (#271)

* Implement core and optional feature and tests

* make link name optional

* rename file

* Add test for optional link name

* Fix placeholders/label naming

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* Use time_select and date_select to get 24 hour format. (#275)

* Use time_select and date_select to get 24 hour format.

* Fix rubocop.

* Time selects in 5 minute steps.

* fix styles on mobile devices

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* change download targets to _self (#320)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Delete unused functions (#323)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>

* save file extensions and append it on download (#324)

* save file extensions and append it on download

* exec rubocop --auto-correct

* Change Add File Button (#330)

* Enhancement/#283 form styling (#313)

* move "back to overview" button next to the submit button

* fix "back to overview" button to not be shown when visiting the edit course page

* fix back button position in course creation and update

* fix back button position in lecture creation

* fix back button position in lecture update

* make poll creation dialog look good

* fix button position in poll update form

* fix button position in user creation form

* fix button position in user login form, make all devise links to outlined buttons

* fix button position in the password reset form

* fix button position in the registration update form

* Improve lecturer feedback design (#195)

* Improve lecturer feedback design

* Add requested changes

* Reset courses.scss to dev

* Reset courses.scss to dev

* Fix lecture feedback tab

Co-authored-by: Adrian Jost <22987140+adrianjost@users.noreply.github.com>
Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* Feature/#196 lecturer status updating tests (#327)

* Add tests

* Add test for lecture scheduler behavior

* Add reload

* Make tests more specific

* Add blocks to travel

* Fix whitespace

Co-authored-by: Fabian Heseding <39628987+fabianhe@users.noreply.github.com>

* Feature/#258 as a lecturer, when i'm in a course and click edit on a lecture, then back i'm not taken to the detail view of the lecture (#301)

* Add functionality and test

* fix linting issue

* Link back to home page when going back when creating a new course

* fix lint error

* Redirect to courses overview instead of home view

Co-authored-by: grittaweisheit <44833037+grittaweisheit@users.noreply.github.com>
Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>

* Feature/#260 display course description (#293)

* try cropping

* add home css to application and add overflow on home view

* remove course description in overview for lecturer

* adjust table col size

* change link to button and vice versa for specs

* add spec for course description display

Co-authored-by: Joana Be. <33000454+JoeAtHPI@users.noreply.github.com>
Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Bugfix/#298 polls orders on deployment (#309)

* add index to poll options and use sorted options for answer view

* add index to poll options and use sorted options for answer view

* add sort by created to polls index

* fix for loop

* adjust sorting in poll tables to index

* redo poll inex sorting because sorting by created at is better

* rename save_poll_options method to specify it processes params

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>
Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>

* Feature/#281 add defaults for lecture time (#312)

* v1.19.2

* vv1.19.2

* [#281] Add default times for lecture and dynamically adjusting duration

* [#281] Refactor default time with time_select and date_select

Co-authored-by: Marc  <35168157+ma-ro@users.noreply.github.com>
Co-authored-by: Jasperhino <33397387+Jasperhino@users.noreply.github.com>

* Feature/#254 add qr code (#288)

* add qr code to join lecture on enrollment key tab

* adjust gemfile

* try fixing tests

* fix old test failing due to check if course is joined

* rename uplod_new_file_spec.rb to upload_new_file_spec.rb and fix old test

* rename route to join lecture by url

* fix last test

* add comment for qr code gem

* dont hardcode qrcode url

* try adding test to check enrollment url; fix rubocop

* fix rubocop

* add and fix tests

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Enable polls, feedback according to current lecture status (#314)

* Enable polls, feedback according to current lecture status

* Adjust Ui to lecture status

* Redirect path when editing lectures to settings

* Remove console log

* Rename edit and view buttons

Co-authored-by: vxrahn <33007914+vxrahn@users.noreply.github.com>
Co-authored-by: Fabian Heseding <39628987+fabianhe@users.noreply.github.com>
Co-authored-by: @SimonWiet

* Fix bug of dejoining students after status change (#341)

Co-authored-by: @SimonWiet

* Feature/#326 lecturer code (#340)

* Add user secret key.

* Fix rubocop.

* Add note about secret key base.

* Update app/views/users/registrations/new.html.erb

Co-Authored-By: MartinBuessemeyer <39387258+MartinBuessemeyer@users.noreply.github.com>

Co-authored-by: MartinBuessemeyer <39387258+MartinBuessemeyer@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Bugfix/#328 remove resend password (#344)

* Remove 'Resend Password instructions' option and 'Forgot your password' buttons

* Add view test for sign-in page

Co-authored-by: Eric Ackermann <eric.ackermann.99@googlemail.com>

* Restyle start and stop button in polls for the lecture view (#347)

* move start/stop poll button below the title

* seperate words in css classes and ids with '-'

* fix accidental renaming

* reset canvas js

* change renaming mistake

Co-authored-by: grittaweisheit <44833037+grittaweisheit@users.noreply.github.com>

* Open polls close on lecture being archived and cannot be opened afterwards anymore (#352)

* Add functionality & tests

* fix lint

Co-authored-by: MichaelBuessemeyer <39529669+MichaelBuessemeyer@users.noreply.github.com>

* fix removing of students when key is added (#355)

* fix removing of students when key is added

* remove old code

Co-authored-by: Maximilian Mayer <maximilian_mayer@gmx.net>

* Feature/#331 restyle delete unenroll (#348)

* Restyle all "danger" buttons.

* Remove save_and_open

* Restyle remaining "danger" buttons.

* Feature/#197 updating lecture status in soft realtime (#358)

* Add channel for lecture status updating

* Update in soft realtime after lecture status change for lecture dashboard

* Update other pages after lecture status update in soft realtime

Co-authored-by: @vxrahn

* Feature/#345 differentiate created and stopped polls (#356)

* refactor poll is_activ to status

* adjust stop_start of polls controller

* add buttons

* fi duplicated start button

* merge with dev

* refactor poll lecture index view

* fix css class

* fix migrations

* fix spec

* really fix migration

* set date to fix test

* Feature/#342 multiple polls at a time (#362)

* remove check for only one poll running at a time

* fix rubocop complain

* remove old code and add tests for running more than one poll at a time

* Set line back to where it belonged (#365)

* Update lecture.rb (#373)

* Feature/#361 auto update poll list (#372)

* fix merge

* reload poll index for students every 3 seconds

* Update ParticipantsCount.tsx (#375)

Co-authored-by: grittaweisheit <44833037+grittaweisheit@users.noreply.github.com>

* Delete double view button (#376)

* Delete unnecessary table rows (#377)

Co-authored-by: grittaweisheit <44833037+grittaweisheit@users.noreply.github.com>

* Fix travis build problems (#380)

* Run precompiling assets against test db.

* Fix failing tests because date after 2020-02-02.

* Use a data type postgres understands.

* Compile assets for tests to same directory.

* Swap the actual database config against one that builds against sqlite in production.

* Do not force install of sqlite as it is a dependency for all environments anyway.

* Add comments

* Run deployment from dev instead of this branch.

* fix ordering of options in your vote view (#381)

* Restyle the poll list (Student + lecturer) (#359)

* Add functionality & test

* make linter happy

* Fix tests by changing fixture value back

Co-authored-by: lpfennigschmidt <49560512+lpfennigschmidt@users.noreply.github.com>

* Feature/#360 create polls in lecture created status (#364)

* Allow poll creation when lecture is in 'created' status

* Start lecture overview in 'settings' tab, if status is 'created'

* Adjust test

Co-authored-by: grittaweisheit <44833037+grittaweisheit@users.noreply.github.com>

* Feature/#379 seperate page to diplay joined students (#382)

* add student list tab

* add test for student list tab

* Feature/284 nothing here yet labels (#338)

* Add not yet label for file upload

* Add nothing here yet messages for questions and materials.

* Add tests for materials in course and lecture view.

* Remove not working tests for questions

* Fix merge issues.

* Make courses deletable again. (#371)

Co-authored-by: Christopher Aust <38725693+caustt@users.noreply.github…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready to merge This Pull can be merged. Someone probably just waited for the CI and added this as a reminder. Team RESTless This issue is assigned to the team of AB
Projects
None yet
Development

Successfully merging this pull request may close these issues.

As a lecturer, i want to be able to remove any file from a course that i am managing (Estimation 2)
2 participants