skandragon / thing

Apache License 2.0
8 stars 10 forks source link

Track classes limited to one (or more) specific tents/days/times #35

Closed Artimisia closed 11 years ago

Artimisia commented 11 years ago

How can I limit where (most critical), and possibly which days or times they are allowed to schedule classes?

skandragon commented 11 years ago

I just need the list of locations each track is allowed to be placed in. I've asked for this twice via email, but since I wanted to use the ticket tracker (which I love that you're using!) it makes a lot of sense to ask here.

Here's what I have now for tracks:

  TRACKS = {
    'Pennsic University' => %W(A01 A02 A03 A04),
    'Middle Eastern' => [ 'Touch The Earth', 'Middle Eastern Tent' ],
    'European Dance' => [ 'Dance Tent' ],
    'Games' => [ 'Games Tent' ],
    'Performing Arts' => [ 'Performing Arts Tent', 'New PA Tent', 'Amphetheater' ],
    'Cooking Lab' => [],
    'Scribal' => [],
    'Heraldry' => [],
    'Glass' => [],
    'Thrown Weapons' => [],
    'Archery' => [],
    'Parent/Child' => [],
    'First Aid' => [],
    'Bardic' => [],
    'Music' => [],
  }
Artimisia commented 11 years ago

We just got this figured out this afternoon. Here are changes/additions to what you have: Pennsic University - "A&S 1" through "A&S 16" plus "Battlefield", "Private Camp/Merchant Booth" (see other discussion) Cooking Lab - "Aethelmark Cooking Lab" Scribal - "Aethelmark 1", "Aethelmark 2", "Aethelmark 3", "A&S 2" Heraldry - "A&S 2" Glass - "A&S 5" Thrown Weapons - "Thrown Weapon" Archery - "Archery" Parent/Child - "A&S 8" First Aid - "A&S 1" Bardic - "A&S 9" Music - "A&S 9"

-Artis On Mar 3, 2013, at 8:46 PM, Michael Graff notifications@github.com wrote:

I just need the list of locations each track is allowed to be placed in. I've asked for this twice via email, but since I wanted to use the ticket tracker (which I love that you're using!) it makes a lot of sense to ask here.

Here's what I have now for tracks:

TRACKS = { 'Pennsic University' => %W(A01 A02 A03 A04), 'Middle Eastern' => [ 'Touch The Earth', 'Middle Eastern Tent' ], 'European Dance' => [ 'Dance Tent' ], 'Games' => [ 'Games Tent' ], 'Performing Arts' => [ 'Performing Arts Tent', 'New PA Tent', 'Amphetheater' ], 'Cooking Lab' => [], 'Scribal' => [], 'Heraldry' => [], 'Glass' => [], 'Thrown Weapons' => [], 'Archery' => [], 'Parent/Child' => [], 'First Aid' => [], 'Bardic' => [], 'Music' => [], } — Reply to this email directly or view it on GitHub.

skandragon commented 11 years ago

Here's what I have currently. Let me know if this is right before I nail it down and force people to only use these entries (plus the current "private camp / merchant" until we fix that)

  TRACKS = {
    'Pennsic University' => [
      'A&S 1', 'A&S 2', 'A&S 3', 'A&S 4', 'A&S 5', 'A&S 6', 
      'A&S 7', 'A&S 8', 'A&S 9', 'A&S 10', 'A&S 11', 'A&S 12', 
      'A&S 13', 'A&S 14', 'A&S 15', 'A&S 16', 'Battlefield'
    ],
    'Middle Eastern' => [ 'Touch The Earth', 'Middle Eastern Tent' ],
    'European Dance' => [ 'Dance Tent' ],
    'Games' => [ 'Games Tent' ],
    'Performing Arts' => [
      'Performing Arts Tent', 'New PA Tent', 'Amphetheater'
    ],
    'Cooking Lab' => [ 'Æthelmearc Cooking Lab' ],
    'Scribal' => ['Æthelmearc 1', 'Æthelmearc 2', 'Æthelmearc 3', 'A&S 2' ],
    'Heraldry' => ['A&S 2'],
    'Glass' => ['A&S 5'],
    'Thrown Weapons' => ['Thrown Weapons'],
    'Archery' => ['Archery'],
    'Parent/Child' => ['A&S 8'],
    'First Aid' => ['A&S 1'],
    'Bardic' => ['A&S 9'],
    'Music' => ['A&S 9'],
  }
Artimisia commented 11 years ago

That looks good! Will the Registrar be able to override all Track designations if needed?

-Artis Phone: (586)296-7818

Sent from my iPad

On Mar 3, 2013, at 9:17 PM, Michael Graff notifications@github.com wrote:

Here's what I have currently. Let me know if this is right before I nail it down and force people to only use these entries (plus the current "private camp / merchant" until we fix that)

TRACKS = { 'Pennsic University' => [ 'A&S 1', 'A&S 2', 'A&S 3', 'A&S 4', 'A&S 5', 'A&S 6', 'A&S 7', 'A&S 8', 'A&S 9', 'A&S 10', 'A&S 11', 'A&S 12', 'A&S 13', 'A&S 14', 'A&S 15', 'A&S 16', 'Battlefield' ], 'Middle Eastern' => [ 'Touch The Earth', 'Middle Eastern Tent' ], 'European Dance' => [ 'Dance Tent' ], 'Games' => [ 'Games Tent' ], 'Performing Arts' => [ 'Performing Arts Tent', 'New PA Tent', 'Amphetheater' ], 'Cooking Lab' => [ 'Æthelmearc Cooking Lab' ], 'Scribal' => ['Æthelmearc 1', 'Æthelmearc 2', 'Æthelmearc 3', 'A&S 2' ], 'Heraldry' => ['A&S 2'], 'Glass' => ['A&S 5'], 'Thrown Weapons' => ['Thrown Weapons'], 'Archery' => ['Archery'], 'Parent/Child' => ['A&S 8'], 'First Aid' => ['A&S 1'], 'Bardic' => ['A&S 9'], 'Music' => ['A&S 9'], } — Reply to this email directly or view it on GitHub.

skandragon commented 11 years ago

Not currently, without changing the track it falls under as well.

One easy way to do this might be to provide a list of options that are track-specific, but have a checkbox that says "override" which makes all locations from all tracks available. Would this work, or would locations be from outside any normal track? If so, we could make a "special locations" track that no coordinator nor class is ever placed in, but contains the special locations, or we could allow it to be filled in. Filling in in dangerous, as usual. Pull-downs are much safer if locations can be defined (or quickly added.)

Artimisia commented 11 years ago

Here is what happens. The track coordinator has filled all his track's spaces for a given day - but the instructor is only available that day. As the Registrar - I can schedule the class in another tent because I know that there is an opening. I don't want the Track Coordinator to schedule in the other locations, but I need to.

Maybe-since the Track designation is only used for allowing Track Coordinators to have access to schedule the class (right?)- I can just change the track to "Pennsic University" or which ever Track has access to a specific needed location, then schedule the class.

I like your "override" list of all the regular locations so long as only the Registrar can override and use it. This documents when special arrangements are made. I cannot think of an occasion where I would override to a location that is not on our list, or is a Private Camp/Merchant Booth (which removes it from the Track Coordinator anyway).

Off to sleep. I will check in in the early morning.

-Artis Phone: (586)296-7818

Sent from my iPad

On Mar 3, 2013, at 9:52 PM, Michael Graff notifications@github.com wrote:

Not currently, without changing the track it falls under as well.

One easy way to do this might be to provide a list of options that are track-specific, but have a checkbox that says "override" which makes all locations from all tracks available. Would this work, or would locations be from outside any normal track? If so, we could make a "special locations" track that no coordinator nor class is ever placed in, but contains the special locations, or we could allow it to be filled in. Filling in in dangerous, as usual. Pull-downs are much safer if locations can be defined (or quickly added.)

— Reply to this email directly or view it on GitHub.

skandragon commented 11 years ago

Sounds perfect, and fairly easy to implement. I'll see what I can get done yet tonight.

skandragon commented 11 years ago

Tasks:

skandragon commented 11 years ago

I'm going to open another ticket for limiting based on times of day, as this is entirely new (and somewhat difficult) functionality.

Artimisia commented 11 years ago

Let's make this a lower (not high - medium to low) priority. At this moment - none of my tracks will have a "time of day" limit (if they do - I will work with the Track Coordinator to be sure they "obey the time rules" that I set-up with them).

This will be of use longer term, but is not at all critical now. Thanks On Mar 4, 2013, at 8:22 PM, Michael Graff notifications@github.com wrote:

I'm going to open another ticket for limiting based on times of day, as this is entirely new (and somewhat difficult) functionality.

— Reply to this email directly or view it on GitHub.

skandragon commented 11 years ago

This now does everything but one hard step. I cannot prevent someone from modifying the form data directly, and changing the location to whatever they want. This is extremely unlikely to occur, and we will have a global "check all data for consistency" script which will detect this. It would require a coordinator to intentionally modify the form HTML code and submit it maliciously. I don't think that is likely.

skandragon commented 11 years ago

Oh, as a side effect, the location drop-downs now update when the track is changed (or initially set), and will change when 'override' is clicked. So, it is now possible to, in one go, set the track, approve a class, and fully schedule it.

skandragon commented 11 years ago

Close this, and move last remaining issue to #42