-
Notifications
You must be signed in to change notification settings - Fork 242
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
Ta deletion #7304
base: master
Are you sure you want to change the base?
Ta deletion #7304
Conversation
for more information, see https://pre-commit.ci
Pull Request Test Coverage Report for Build 11966359745Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
@@ -1,15 +1,22 @@ | |||
# TA user for a given course. | |||
class Ta < Role | |||
has_one :grader_permission, dependent: :destroy, foreign_key: :role_id, inverse_of: :ta | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
revert this change
@role = record | ||
begin | ||
@role.destroy! | ||
flash_now(:success, I18n.t('flash.tas.destroy.success', user_name: @role.user_name)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
put this line in an else
block (look up the syntax for else
with begin
/rescue
) as this indicates that the code should only run if no error was triggered
Also, this is a good time to use head
to send an appropriate status code in the response. For DELETE, use :ok
for a success, :conflict
for the delete restriction error, and :bad_request
for other errors
compose.yaml
Outdated
@@ -1,138 +0,0 @@ | |||
services: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nothing in this file should be changed. This is the kind of thing you should be looking out for in your self-review.
@@ -43,5 +43,6 @@ en: | |||
one: Grader | |||
other: Graders | |||
user: | |||
deleted: "(deleted)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is more general. Please move this label to be under common/en.yml
, and name it deleted_placeholder
, since it isn't just the word "deleted" but the parentheses as well
@@ -42,5 +42,6 @@ en: | |||
help_html: The API key is used for authentication for the MarkUs API. See <a href="https://github.com/MarkUsProject/Wiki/blob/%{markus_version}/RESTful-API.md">MarkUs Wiki</a> for information on using the API. | |||
reset: Reset API key | |||
unavailable: Unavailable | |||
deleted: "(deleted)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is redundant; see above comment
create(:grade_entry_student_ta, ta: ta, grade_entry_student: student.grade_entry_students.first) | ||
|
||
sign_in instructor | ||
delete :destroy, params: { course_id: course.id, id: ta.id } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
similar to my above comment, use delete_as
instead of sign_in
+ delete
end | ||
|
||
it 'deletes associated grader permisison' do | ||
expect(GraderPermission.where(role_id: ta.id).count).to eq(0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can use exists?
here as well, instead of the .count
equaling 0
if include_creator | ||
data[:creator] = creator.display_name | ||
end | ||
data[:creator] = include_creator && creator ? creator.display_name : I18n.t('users.deleted') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't merge the include_create
check with the creator
check; keep the overall if
statement the way it was before, but then inside use just creator ? ...
This ensures that the :creator
key is not included at all when include_creator
is false, which is the existing (and intended) behaviour.
Also use creator.present?
instead of just creator
to be more explicit.
@@ -1458,3 +1458,21 @@ canvas { | |||
.jcrop-centered { | |||
display: inline-block; | |||
} | |||
|
|||
// For Actions row |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reviewed this and overall while I appreciate the desire to make the options look nice, I don't think this change is consistent with the rest of the MarkUs UI. Please instead follow the style of existing tables: use the tags table as a model (under an assignment's Settings -> Tags page).
@@ -36,6 +36,13 @@ class TATable extends React.Component { | |||
}); | |||
} | |||
|
|||
removeTA = ta_id => { | |||
$.ajax({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is correct, but for new methods prefer using fetch
instead of $.ajax
(we're slowly trying to move away from jQuery entirely).
See https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch, and note you can pass a method
configuration option
Proposed Changes
(Describe your changes here. Also describe the motivation for your changes: what problem do they solve, or how do they improve the application or codebase? If this pull request fixes an open issue, use a keyword to link this pull request to the issue.)
Added functionality to give instructors the ability to delete TAs from courses on the Users/Graders tab. This involved adding a delete button on the actions menu, along with a destroy function on the controller. NOTE: A Ta cant be deleted if they have a note
...
Screenshots of your changes (if applicable)
The new delete buttonAfter succesful delete
Associated documentation repository pull request (if applicable)
Type of Change
(Write an
X
or a brief description next to the type or types that best describe your changes.)Checklist
(Complete each of the following items for your pull request. Indicate that you have completed an item by changing the
[ ]
into a[x]
in the raw text, or by clicking on the checkbox in the rendered description on GitHub.)Before opening your pull request:
After opening your pull request:
Questions and Comments
(Include any questions or comments you have regarding your changes.)