Tinderbox Forum

Assigning in Class Presenters to Particular Dates and then moving Alias Notes to Container matching that date

I’m trying (unsuccessfully) to organize some in class presentations. In the course of each class, different students will take on particular roles, “Presenter, Convener, and Seeker”

I have a group of students in a container, and another container, containing sub-containers for each class session which have an attribute for $StartDate and $EndDate which records the class timings.

I started what I thought would be a straightforward task by creating attributes in the Student Notes specifying the date upon which each of them would preform a given role, e.g. $Convener 18/10/2020 $Presenter 21/09/2020 $Seeker 26/10/2020
and managed to export a nicely formatted list according to student. Hoorah!

But now, I’m stuck (and spent an hour or more) trying to develop a way of moving aliases of my student notes (or maybe creating new notes) in the appropriate class containers for two real purposes:

  1. to create an exportable list of roles for each class session (I think I can handle the export, it’s the note creation that I find tricky)
  2. to create alias? new? notes in the class session containers upon which I could potentially take notes and grade each student for his/her performance in these particular roles.

Any help you could offer would be much appreciated. I think one issue I’m having is simply matching the $Convener date with $StartDate because both of these values contain a time element as well, and secondly, I’m confused about how best to organize this movement/creation of particular notes.

I hope this explanation is sufficiently clear.

Thanks very much,

There are lots of moving parts here. Could you upload a small test file with the necessary minimal structure to show explore the problem and give a frame of reference?

SampleClassFile.tbx (88.6 KB)

I think this is more or less the basic problem. One issue is matching date only vs. matching date & time, but I think that shouldn’t be too hard a nut to crack. That is, I was lazy to specify the times for the student presentations (I have more than three students!) and only inserted the dates. I hope this clarifies what I’m hoping to do.

1 Like

Try this: SampleClassFile-1.tbx (111.1 KB)

Select a class and then the preview tab within the text pane. Also do the same fro the class Sessions container as that gives a list for all files.

V. busy here so limited time to explain, but:

  • I remade your prototypes folder by deleting yours and making one using a built in prototype then deleting it. The app-configured container then ensures all new children are set a prototypes, etc.
  • I gave user custom prototypes & templates a letter prefix reducing the chance of a $Name dupe between those files and an ordinary note in the main content.
  • The heavy lift here is done by an edict in the “pClass Name” prototype. It checks for a note of type student, that isn’t an alias, and whose relevant data matches the $StartDate of the class, i.e. $ConvenerDate/$PresenterDate/$SeekerDate.

That should give you something to go on. You can edit the templates if you need more report info, etc.

1 Like

I was doing something almost identical to this task yesterday. I was in a rush, and so I did this very quickly without automation.

In my case, I had organized students by groups rather than dates but like you I had the organizing info in a $sGroup attribute. What I did was:

  1. sorted student container by $sGroup in outline view
  2. (optional) turn off sort
  3. opened quickstamp tab in properties inspector and selected $sGroup
  4. selected first student in outline, the value of group attribute shows in quickstamp
  5. clicked down arrow, watching for when $sGroup value changes *
  6. selected all the students in $sGroup, click cmd-L to make aliases
  7. dragged those aliases to the class container

*- With date attributes, you’ll see through the noise to the part of the date that matters in a way TBX can’t without instructions.

This looks messy written here but it’s a basic process that went incredibly fast and that wouldn’t be possible as easily or quickly in other software.

Anyway, @mwra’s edict is a great model that, from personal preference, I’d probably use as a stamp, but I wanted to chime in to offer a word of support for quick-and-dirty manual procedures. In the rush of a semester, I’ve found they often work well enough for small tasks to make automation unnecessary, especially since course files aren’t something that will have a long life.

I just finished the task a couple of hours ago. Thanks again @mwra It was a very elegant solution that I would have never thought of myself. And once I managed my data, it worked like a charm! Bravo!

I think you are right @bcrane. It’s often faster not to automate. That’s a helpful workflow that I will try next time.

1 Like

In some ways, what I like about Tinderbox is that there are multiple ways to approach problems and find solutions. It is extremely helpful to learn how other people manage their data in similar concrete situations.

Well, if it’s any consolation I had a couple of false starts. The abstraction I missed at the start was I needed 2 attributes for each role. One for the date of the assignment and one for the name of the assignee. There are ways to do it with fewer ‘moving parts’ but it would get the same result at the expense of being able to see easily the mechanism.

BTW, in case anyone is wondering why two data with differing times man match, the == and `!=’ operators deliberately ignore the time element of the date/time attribute if both sides are dDate-type attributes. As you may guess that is because this type of comparison happens more frequently - i.e. same calendar day, as opposed to matching two full date-times. More on Date comparisons.

Lots happening overnight! Glad that this worked out.

A vital question that occurred to me, reading about the original problem, was: how many students and meetings do we have?

If we have a seminar with (say) 7 weekly meetings and 12 students, then it makes lots of sense to do this by hand — perhaps using ⇧⌥-drag to make aliases and drag them into the appropriate containers, or perhaps doing this in map view. This lets you adjust the assignment based on special knowledge and hunches that would be opaque to the automation.

If we have a survey course with 35 class meetings, 74 TA-led section meetings, and 478 students, then automation looks much nicer.

In the TBX solution above the original need of the alias was removed. That said, if a student does any role more than once, some tweaking would be needed. Still, it avoids alias-bloat just to be able to make a report. If per-lesson/per-student notes are needed, I’m not sure an alias would help as exporting/reporting using the student aliases would mean you gat their report for every class as aliases share their text.