Skip to content

Conversation

@pstaabp
Copy link
Member

@pstaabp pstaabp commented Jun 19, 2015

I guess I forgot to put in this pull request. Overall this updates the Problem Set Details views with many bug fixes. This includes:

  1. the ability for the maxAttempts for a problem to be changed.
  2. the value (weight) of a problem to be validated
  3. A new tab in the ProblemSetDetails view that has a way to add the description and set the headers. issue Homework Manger : Set Details #316
  4. Reworking the Student Overrides tab to make it clearer how to change the dates for multiple students at once.

This clears up issue #286

A couple of questions about issue #472:

  1. About mark all correct. Do you mean marking all problems correct for a given user in a given set? Or something else? I'm trying to brainstorm when to add that functionality
  2. Also about changing users seeds/score for individual problems; how would you suggest we add this? Once I implement "act like a user", then changing these things under a problem set may be a good way to go.

Thoughts?

pstaabp added 22 commits May 28, 2015 10:52
… same date/times as the regular problem set dates.
…tab was reloading all the user data on a render (like resizing the window).
… change the properties. Added the user data inside a scrolling table.
…from CourseManager and ProblemSetManager to better separate code. Also moved AssignmentCalendar to a view for reuse.
…3-feature/problem-set-details

Conflicts:
	webwork3/lib/Routes/Course.pm
	webwork3/public/js/apps/CourseManager/main-views/ProblemSetDetailView.js
	webwork3/public/js/apps/util.js
… MainView. This creates a new calendar called CourseCalendar, which has an AssignmentCalendar within it.
@goehle
Copy link
Member

goehle commented Jun 19, 2015

  • Mark all correct is used to mark that problem correct for all users. Its generally "safer" to do that than delete a problem, since deleting a problem and then renumbering can cause issues. So it should be something you can do when viewing the problems contained within a set.
  • Acting as a user could alter the Problem Set Detail view to have user specific data which can be altered (like seeds). That seems like a good way to do that since there are several ways to easily act as a user (including bringing up the user list in the sidebar)
  • You should probably add some checks so that gateway and jitar sets are not displayed in the problem set detail view until its able to support them. For jitar sets specifically the problem tree structure would probably be wiped out by the current Problem Set Detail.

@mgage
Copy link
Member

mgage commented Jun 20, 2015

If problem instances have a unique id in the database which does not depend on which set they are in or their order of appearance in the set then it should be possible to delete a problem. You can do that in the current webwork if you do not reorder the problems. If you reorder the problems then problem 7 would refer to one problem before the deletion and to another problem after the deletion and reordering. This causes confusion if some students do the problem before the change and others do it afterword. Not having a separate unique id for each problem in a course was the biggest flaw in the current database scheme.

@pstaabp
Copy link
Member Author

pstaabp commented Jun 20, 2015

So as a follow up

  1. The mark all correct can be made in a problem in the ProblemSetDetail view. This won't be difficult to implement. Alternatively, we can explore the addition of the separating the problem id from the problem number (this seems like a good idea anyway moving forward).
  2. My plan was to implement some "Act like a User" action. This will alter the interface and make it look more like a student view. I don't want to put that in this PR, but it is on the list of things to do.
  3. I'll add checks to make sure that JITAR and gateways aren't viewable (or better yet) or not destroyed in this PR.

@goehle
Copy link
Member

goehle commented Aug 20, 2015

I'll test it when I can. My classes have started so my available time has gone down considerably.

@pstaabp
Copy link
Member Author

pstaabp commented Aug 20, 2015

I understand. I'm ramping up right now. I wasn't sure if you were waiting from me.

…e server resulting in many put calls on a simple date change on the calendar.
@goehle
Copy link
Member

goehle commented Aug 28, 2015

Did you change something about how things set up with ww3? I'm having trouble getting it running via the fcgi pathway. The issue seems to be that the WEBWORK_ROOT environment variable is getting lost somehow.

@goehle
Copy link
Member

goehle commented Aug 28, 2015

I had to add the lines

BEGIN{
  $ENV{WEBWORK_ROOT} = config->{webwork_dir};
}

to WeBWorK3.pm before any of the WeBWorK includes in order to get the fcgi path to work. I dont know why it used to work or what has changed.

@goehle
Copy link
Member

goehle commented Aug 28, 2015

I'm also getting this error again

Uncaught TypeError: Cannot read property 'label' of undefined

when I load up the page. Last time it was caused by there being nonstandard permission level stuff. I got this error by changing a user to the TA permission level using the ww2 classlist editor.

@goehle
Copy link
Member

goehle commented Aug 28, 2015

After getting ww3 up and running:

  • Switching between different headers (hardcopy or set) doesn't change the content of the view/edit box. If I switch headers I get the message saying that the header was saved, but the view/edit box only shows the content of the headers from when the page was loaded.
  • If I go to Set Details, then go to Student Overrides, then go to Set Details and change a global date, when I go back to Student Overrides all of the students have the previous date as an override. This is almost certainly not the intended behaviour. If a global date is changed and a student date matches the global date, it should also be changed.

One subtle issue is when you mark correct for all students it also sets student overrides for every problem parameter for that student. Its not the worst but it means that future global changes to things like weight will not be reflected in the problem. The issue may be getting a "mergedUserProblem" from the DB and then putting that into the database with "putUserProblem". You should really use "getUserProblem" because it will have null fields for things which are not overridden. The same is true for sets. Keep an eye out and make sure you aren't using "putUserSet" with a set object generated by "getMergedSet".

@goehle
Copy link
Member

goehle commented Aug 31, 2015

I'm getting errors that look like

User 'set_id:Orientable' has no PermissionLevel record -- assuming no permission. at /opt/webwork/webwork2/lib/WeBWorK/Authz.pm line 247.
User 'set_id:Algebra_Practice' has no PermissionLevel record -- assuming no permission. at /opt/webwork/webwork2/lib/WeBWorK/Authz.pm line 247.

when I visit the problem page. Those "proctor" users were added by WeBWorK3. I think its not adding a permission record (with permission set to proctor)

@pstaabp
Copy link
Member Author

pstaabp commented Aug 31, 2015

Getting these fixed, but a couple of questions/comments:

  • I changed the WeBWorK3.pm (which is new) because of the way that dancer runs tests on get/put/post commands to the server. I had tested the new setup on a couple of machines, but I guess yours is setup a bit differently.
  • About the set headers: do you have 2 different set headers (screen and hardcopy) selected? If they are the same, you'll get the same file in both. If you make changes in the screen version, is it reflected in the output?
  • I have a fix for the student overrides, but it's a bit strange in that it will say that a student's value has been updated (when it hasn't). However it generally doesn't mess with the db. See the next item below.
  • About the getMergedSet/getMergedProblem/getUserSet/getUserSet: on the client side, there are userSets and userProblems and when fetching it calls the getMerged version. I think it would be hard to change this. On the back end to update a userSet, I update only parameters that differ from the globalSet. I didn't think to do this for the userProblem but will.

@goehle
Copy link
Member

goehle commented Aug 31, 2015

  • I do have different screen and hardcopy headers and I get them both rendered correctly. The issue is if I change either of them the render doesn't change as well.
  • That is fine on the client side. In some sense it should maybe be the database layer which handles how overrides are actually stored, but in our setup its the object layer. The only reason I mentioned it is that there are cases where non-overriden values are showing up in the user tables.

@pstaabp
Copy link
Member Author

pstaabp commented Aug 31, 2015

On the set headers, are you getting errors in the network console of the browser (or in the dancer log)?

@pstaabp
Copy link
Member Author

pstaabp commented Aug 31, 2015

about the gateway quiz. What did you do to recreate it? I just did the following:

  • created a new problem set in the Problem Set Manager (called it gw)
  • went to the Problem Set Details view for gw
  • changed the type to proctored gateway
  • gave a password 1234
  • went to the Problem List Details sidebar and added a problem from a problem group
  • checked that the set_id:gw user was created in both COURSE_user and COURSE_permission
  • adjusted the dates to make it open and visible
  • went to ww2
  • clicked on "take the quiz gw"
  • added the proctor id and password (not sure why the proctor id was needed)
  • went into the quiz. (I have a error about something being numeric from gateway.pm, but this is probably because a field in the database should be numeric.)

@goehle
Copy link
Member

goehle commented Aug 31, 2015

You shouldn't need the proctor id in that case. Was adding permissions something that wasn't happening earlier and was fixed?

@pstaabp
Copy link
Member Author

pstaabp commented Aug 31, 2015

I had the permission problem fixed a couple of weeks ago. Any idea why it's asking for the proctor_id?

@goehle
Copy link
Member

goehle commented Aug 31, 2015

  • Depending on how things are set up, it may not have added permissions to proctor users that were created before the permissions thing was fixed.
  • I'm trying to test stuff but a lot of features have stopped working. There are js errors like
SyntaxError: unreachable code after return statement jquery.truncate.js:195:4
SyntaxError: unreachable code after return statement underscore.js:15:4

I did pull develop (with jitar) into ww3 so that may have caused issues.

@pstaabp
Copy link
Member Author

pstaabp commented Aug 31, 2015

I just noticed those two errors in firefox about unreachable code. Those are in libraries, so I won't worry about those.

I'll pull ww3 in again and do more testing to see if I can reproduce your errors.

@goehle
Copy link
Member

goehle commented Aug 31, 2015

OK. For more specific things to test

  • When I change the type of homework to proctored gateway quiz it doesn't save the change.
  • When I change the password it doesn't save the change.
  • The headers aren't showing up in the view/edit box at all.

@goehle
Copy link
Member

goehle commented Oct 9, 2015

I'm still having trouble with the set headers, but this pull is too unwieldy. It fixes enough stuff and has enough improvements that I'm just going to merge it.

goehle added a commit that referenced this pull request Oct 9, 2015
@goehle goehle merged commit c821627 into openwebwork:ww3 Oct 9, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants