Skip to content

Issue-814 Issue-466 Issue-1145#1160

Open
morozov-av wants to merge 7 commits intoRunestoneInteractive:mainfrom
morozov-av:issue-814
Open

Issue-814 Issue-466 Issue-1145#1160
morozov-av wants to merge 7 commits intoRunestoneInteractive:mainfrom
morozov-av:issue-814

Conversation

@morozov-av
Copy link
Contributor

#1145 isue Implement sorting functionality in AssignmentList with localStorage persistence
#814 On assignment page view - add creation date and allow sort on that
#466 On assignments allow the instructor to set a day/time for it to be make visible

…ted components

issue-814 Rename created_date to updated_date in assignments and related components

issue-814 Implement visibility management for assignments with new dropdown component

issue - 814 Add local date handling methods and update DateTimePicker to support local time

issue-814 Refactor date handling to use canonical UTC methods and improve date formatting in assignment components

issue-814 Add DateTimePicker component and update assignment forms to use it

issue-814 Add created_date and visible_on fields to assignments

issue-814 Rename created_date to updated_date in assignments and related components
@morozov-av morozov-av requested a review from bnmnetp as a code owner February 24, 2026 17:51
@bnmnetp
Copy link
Member

bnmnetp commented Feb 25, 2026

@ascholerChemeketa if you have time, a second set of eyes on this one would be great!

@ascholerChemeketa
Copy link
Contributor

It looks like it works wrt blocking opening LTI links when an assignment is closed. I am not sure that is desired however.

Didn't someone recent want to be able to have students launch an LTI assignment that they couldn't see in Runestone. i.e. Open for work, but only via the LTI link.

What is the intent of RS visibility vs LMS visibility? The existing LTI 1.3 code assumes "RS owns grades; LMS owns dates". Having due date managed by LMS and sync'd to RS, but visibility dates managed independently sounds like a recipe for confusion.

A couple of notes re: UI in the assignment builder:

  1. Default for open/close visibility time shouldn't be current time. That is almost never the desired time. I would recommend 12:00 AM for default open time and 11:59 PM for default close time. If I want "open now", setting to 12:00 AM same day will be fine. If I am trying to set it for the future, 12:00 AM is more likely correct than whatever random time it is now. If 11:59 PM is not the default for close there needs to be an easy option to set "end of day".
  2. I found it confusing to just see open/closed status for an assignment set to "Visible during period". Ideally I would see the range at the top level. At the very least there should be a signal that there is a range governing that assignment.

@morozov-av
Copy link
Contributor Author

image

Hi @ascholerChemeketa !
Thank you for the review! It's nice to get feedback from another perspective and a fresh set of eyes. I completely agree with both UI points and have already fixed them - feel free to take another look. If you have any other suggestions, I'm always happy to hear them

Regarding the backend handling of this data, I probably don't have a complete understanding of how exactly it should work. I only tried to find and identify all the places where visibility is controlled and rewrite them with the new logic. So if you think something is done incorrectly @bnmnetp @ascholerChemeketa - I'm asking for your help. At the moment, I want to focus fully on Parsons exercises

@pearcej
Copy link

pearcej commented Feb 26, 2026

I think it would be useful to be able to launch an assignment in Runestone that is not visible. I thought we used to be able to do this, but it would be especially useful for quizzes or tests or even peer instruction questions. I agree that having two places to set visibility is not ideal. I use Moodle with 1.3 LTI, and I am having to make quizzes and peer instruction questions available in real-time in Runestone. I think it would be better to either have this synchronized or settable in Runestone.

One side-effect of the current situation in Moodle is that I import my Moodle class from a previous term because I have a lot of assignments. For Runestone reading assignments even if I change the due date in Runestone (due to snow dates or whatever), it does not change in the Moodle calendar. I have not had time to dig into why this is, but it seems at least tangentially related to the coordination of Runestone and LMS settings.

@bnmnetp
Copy link
Member

bnmnetp commented Feb 26, 2026

@pearcej So, the visible from ... to setting is meant to address the use cases you are talking about:

  1. PI assignments
  2. exams

We have to balance the fact that the vast majority of users of Runestone do NOT use LTI. So although LTI users find pain in having to manage some things in both places, most users only manage things on the Runestone side. I'm not sure if there is a good solution to this.

@morozov-av
Copy link
Contributor Author

morozov-av commented Feb 26, 2026

image image

@bnmnetp Theoretically, we can add one more additional field to control LTI visibility (the screenshots show only the UI, this hasn't been implemented yet for sure, just proposal). If it's really important and necessary, I can work on it

P.S BTW, if you want to hide this setting from most users, we can put it behind a flag. It could be a table entry or flag-based control. I don't know how you currently handle this on the Runestone backend. It can be implemented in many ways and then simply enabled per user on demand

@pearcej
Copy link

pearcej commented Feb 26, 2026

I like this solution a lot.

@ascholerChemeketa
Copy link
Contributor

That checkbox looks like a good idea.

I think something should go into the LTI docs indicating that visibility in Runestone and LMSs is not synchronized automatically. If there is enough demand we can look to add that.

Semi-related thought:
The more dates/times associated with an assignment, the more it would be nice to be able to bulk adjust dates/times. Possibly on copy, definitely in the assignment builder. During/after copying a whole set of assignment from a previous course to a new one, it would be REALLY nice to have a way to change all the dates by a specified delta.

Should I open as a new issue?

@bnmnetp
Copy link
Member

bnmnetp commented Feb 26, 2026

We already adjust the deadline when we copy an assignment. But a new issue to adjust the visibility dates on copy would be good.

@bnmnetp
Copy link
Member

bnmnetp commented Feb 26, 2026

The problem with the checkbox proposed by @morozov-av is that visibility is used for grading purposes as well as whether to show the assignment in the chooseAssignment page.

With LTI 1.1 we just detected that the course was using LTI and had a message that said the assignment needed to be launched from the LMS.

I though we discussed this for 1.3 and there was some reason not to do the same thing, but now I can't recall. @ascholerChemeketa maybe your memory is better than mine?

@ascholerChemeketa
Copy link
Contributor

I don't remember why, but I can't think of any compelling reason why they should have to go back to the LMS to access an assignment. Quite common for students to use a link to get into the book, then go to the assignments page and check on what they need to do. Or to switch from one assignment to another while working in the book.

I think you identified the real issue: accepting work vs visible. I don't know that there is a way to have one set of dates work for both when people want to have hidden assignments that generate grades.

I think there is also a good use case for assignments that are not open but also not hidden. Quite common in an LMS to publish major assignments so students can see due dates, even if those assignments can't be accessed until later.

@bnmnetp
Copy link
Member

bnmnetp commented Feb 26, 2026

I don't understand (or remember) a use case for having a hidden assignment still generate a grade.

@ascholerChemeketa
Copy link
Contributor

Jan said in this thread:

I think it would be useful to be able to launch an assignment in Runestone that is not visible. I thought we used to be able to do this, but it would be especially useful for quizzes or tests or even peer instruction questions.

Presumably anyone doing that would want grades recorded.

@pearcej
Copy link

pearcej commented Feb 26, 2026

Indeed. I have only recently been using Runestone for timed assessments - launching an assignment that is hidden in Runestone would be useful.

@bnmnetp
Copy link
Member

bnmnetp commented Feb 26, 2026

Yes, but The reason that others have expressed that desire is so they don't have to make the assignment visible and then invisible again. But with this new feature you can easily make the exam visible during the time you want to have them do the exam.

I think that solves the problem I've been hearing about.

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.

4 participants