Skip to content

Conversation

@JohnDamilola
Copy link
Collaborator

No description provided.

@JohnDamilola JohnDamilola self-assigned this Apr 14, 2025
import pmss

school_config_paths = learning_observer.paths.get_school_config_files()
school_rulesets = [pmss.YAMLFileRuleset(filename=path) for path in school_config_paths]

Choose a reason for hiding this comment

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

We should be transitioning toward the .pmss files for individual schools. Specifically so we can define things like:

roster_data {
  roster_source: google;
}
roster_data[school="middletown_high"] {
  roster_source: canvas;
}
roster_data[school="eastside_west"] {
  roster_source: schoology;
}

We will default to using the Google as our roster source unless the user's school matches "middletown_high" and uses canvas or "eastside_west" and uses schoology.

CSS-like files (like pmss) allow us to define attribute selectors (searching the internet for this term should provide more information) to define these specific rules for different contexts. The yaml files do not have this ability to specify.

Recall that CSS stands for cascading style-sheets meaning that there is some hierarchy of information (this is the cascading portion of the name).

Choose a reason for hiding this comment

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

Abstract this in your mind model to include more context beyond just the school the teacher is at.

Example:
Middletown High uses Canvas for their source. Mr. Johnson at Middletown High teaches an after school program (course id = 12345) where the roster actually comes from a different source like Google. The PMSS file might look something like:

roster_data[school="middletown_high"] {
  roster_source: canvas;
}
roster_data[course_id="12345"] {
  roster_source: google;
}
// OR it might look like:
roster_data[school="middletown_high"][course_id="12345"] {
  roster_source: google;
}

There is another aspect of CSS called specificity where we apply the most specific rules to a given user.

Mr. Johnson when teaching regular classes will use the roster source of Canvas since that's what the school uses, but when he is teaching the after school class, the roster will come from Google instead.

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