IRC log of #schooltool for Thursday, 2008-11-06

*** replaceafill has joined #schooltool00:23
*** jelkner has quit IRC01:05
*** replaceafill has quit IRC01:05
*** replaceafill has joined #schooltool01:12
*** replaceafill has quit IRC01:14
*** jstraw has quit IRC01:21
*** replaceafill has joined #schooltool01:58
*** replaceafill has quit IRC02:23
*** aelkner has joined #schooltool02:25
*** replaceafill has joined #schooltool04:58
*** replaceafill has quit IRC05:07
*** aelkner has quit IRC06:26
*** aelkner has joined #schooltool06:27
*** yvl has joined #schooltool10:48
*** mgedmin has joined #schooltool13:10
*** th1a has joined #schooltool15:31
th1ayvl: ayt?15:33
yvlhi th1a15:35
th1ahi15:35
*** aelkner_ has joined #schooltool15:35
th1aCan you reproduce the paragraphing issue?15:35
th1aI presume you need to look for carriage returns in the text and split it into multiple paragraph objects?15:36
*** aelkner has quit IRC15:37
yvlyes15:38
yvlbtw, PDF reports already handle this...15:38
th1aSo you need to see the examples.15:39
yvljust to be sure;15:39
th1aaelkner_: ayt?15:39
yvlI will do the fix anyway, and Ignas will merge when he's available15:40
th1aWhat fix are you going to do... I'm a little confused now.15:41
yvlsplit the text by carriage returns and put those into separate <p> tags15:44
yvlit should do the trick15:44
th1aOK.15:45
*** ignas has joined #schooltool16:10
*** ignas changes topic to "´╗┐´╗┐SchoolTool development | IRC logs at http://source.schooltool.org/irclogs/ | SchoolTool Dev meetings Mon, 14:30 UTC (16:30 EET, 9:30 EST) | Use http://paste.lisp.org/new/schooltool for pasting | Write more unit and functional tests! Yes, you! | Build Status: http://source.schooltool.org/buildbot | User stories wanted for tjTalk module http://www.launchpad.net/tjtalk"16:14
*** fsufitch has joined #schooltool16:42
aelkner_yvl: ayt?17:12
fsufitchaelkner_: hi17:16
fsufitchmary is here, and she's asking if u remember her17:16
aelkner_of couse i do17:17
aelkner_what's she up to?17:17
aelkner_are you playing bridge or something?17:18
fsufitchno, we're in class ;)17:18
aelkner_i used to chat during class, but it was always with someone next to me :)17:19
fsufitchwell im chatting with her... and you17:19
fsufitchremember drodge?17:19
fsufitchhe's in this class too17:19
aelkner_steve?17:19
aelkner_now i know you're not paying attention to your class :)17:20
fsufitchwe got lab time...17:21
fsufitchnobody's working really17:21
fsufitchno wait, there's 2 people who are working17:21
fsufitchalso by using irssi, i *look* like i'm working17:21
aelkner_i bet you do17:22
fsufitch:)17:23
fsufitchclass is almost over thouhg17:24
fsufitchi g2g17:24
*** fsufitch has quit IRC17:25
*** replaceafill has joined #schooltool17:42
replaceafillaelkner_, ping17:43
replaceafillth1a, ping17:46
th1ahi replaceafill.17:46
aelkner_hey there17:46
replaceafillhi th1a17:46
replaceafillhi aelkner_17:46
replaceafilljust wanted to let you know that the integration works17:46
replaceafill(i think...)17:46
replaceafilljelkner defined yesterday the ui stuff17:47
replaceafillwhere the buttons go17:47
replaceafilletc17:47
replaceafillso aelkner i'll send you the diff by the weekend17:47
replaceafillfor u to check17:47
aelkner_ok17:48
aelkner_do you have tests?17:48
aelkner_or will you, that is17:48
replaceafillyes, the thing is that i've testing the views using browser.open()17:49
replaceafillcause i didnt know where the buttons and options go17:49
replaceafillbut know ill change the test to use clicks and stuff17:49
th1areplaceafill: One thing I definitely want to get into the April release is pulling scores into the gradebook from the attendance journal.17:50
replaceafill:O17:50
replaceafillth1a, that sounds interesting17:52
th1aThat should be easy to do now, right?17:52
replaceafillwell, maybe is the same logic17:53
replaceafillbut i dont know :)17:53
th1aJust passing a score.17:53
replaceafillyes17:53
th1aSo if everything works correctly, the gradebook side should be ready to go and we just need to add a few calculations to the journal.17:54
replaceafillyes17:54
replaceafilli hope it works correctly :)17:54
replaceafillthat's why i was asking jelkner for some testing data17:55
replaceafillbecause the tests fill some grades and students17:55
replaceafillbut i wanted to test it on many of them17:56
replaceafillignas, ping18:08
ignasreplaceafill: pong18:10
replaceafillhi ignas just wanted to ask you about Choice fields18:10
ignasyes18:10
replaceafillif you use the source attribute in a Choice field, you can pass the name of the source, right?18:10
replaceafillor just an ISource instance?18:11
ignasi think the name of the source works too18:12
ignascan't recall where I did it18:12
ignasbut there should be an example in schooltool18:12
replaceafillreally?!? cool18:12
replaceafilli'm getting a componentlookuperror if i use the name18:13
ignasyou can pass a name of a vocabullary like:         vocabulary="schooltool.gradebook.categories",18:13
ignasor name of the source         source="schooltool.basicperson.grade_class_source",18:13
ignasand register the source like this:18:13
ignas  <utility18:13
ignas     factory=".vocabularies.gradeClassVocabularyFactory"18:13
ignas     provides="zope.schema.interfaces.IVocabularyFactory"18:13
ignas     name="schooltool.basicperson.grade_class_source" />18:13
replaceafill:O!!!18:14
replaceafillthe factory must provide ivocabularyfactory!18:14
ignasthe factory looks like this18:14
replaceafillthat's the error18:14
ignasdef gradeClassVocabularyFactory():18:14
ignas    return GradeClassSource18:14
ignaswhile the source is a source18:14
replaceafilli understand now :)18:15
ignasmaybe there is a better way to do it, but this way works and I am too lazy to read the documentation18:15
replaceafill:D18:15
replaceafillthanks ignas18:16
ignasnp ;) that's what I am here for18:17
th1aaelkner_: ayt?18:45
aelkner_th1a: yes18:53
th1aDid you get the email about adding the nurse and special ed person, aelkner_?18:56
aelkner_i'm looking at it now18:57
aelkner_i'm thinking of recommending them to add those people to the admin group along with the guidance counselor18:58
th1ano no no18:59
th1aI think you need to manage this just for the intervention system.19:00
aelkner_the intervention system leverages the groups19:00
aelkner_but it also uses the logic of knowing who teachers the student19:00
th1aThose people aren't administrators.19:01
th1aWe would have to add new roles.19:01
th1aWhich I'd rather not do.19:01
aelkner_yeah, we don't have nurse as a group19:01
aelkner_so how would i recognize the nurse as a nurse?19:02
th1aActually, I'm a little unclear on exactly what they want.19:02
th1aHow does it work right now?19:03
aelkner_they want the nurse and the special ed person to appear in the list of people19:03
aelkner_that one can send a message to19:03
th1aWho is in the list now?19:04
aelkner_1) all teachers of the student19:04
th1aThese are people you select to get all relevant messages in the thread?19:04
aelkner_no19:04
aelkner_when one goes to add a message or a goal19:04
aelkner_a list of people come up that you can check on19:04
aelkner_teachers have no prefix19:05
th1aPrefix?19:05
aelkner_but admin people have ADMIN: (i think)19:05
aelkner_parents have PARENT: (that one for sure)19:05
th1aOK.19:05
aelkner_advisors have ADVISOR:19:05
aelkner_so the want NURSE: and SEL:19:05
th1aAll teachers aren't included then.19:06
aelkner_all teachers of the student19:06
aelkner_a shorter list19:06
th1aThis should be configurable through the web by the site manager.19:06
th1aAdd a list of people to show up by default in addition to the above.19:07
aelkner_hmm19:07
aelkner_that's an idea19:07
aelkner_but what abotu schooltool's use of group membership for various things19:07
aelkner_isn't that the paradigm that we want19:08
th1aWell... it is a whole bees nest.19:09
th1aI don't think at this point we'd get it right for the general  case --  a way that would work the way we want across components for the range of support roles like this.19:10
aelkner_i hate bees...19:10
th1aFor example, a lot of this stuff is more relationship based -- a guidance counselor should have access to the students they counsel, but not necessarily all students, etc.19:10
th1aThe nurse gets these emails at SLA but generally doesn't get elevated access to student data.19:11
aelkner_good points19:11
ignasif or rather when i will refactor relationships - we should be able to make queries for "all users that are teachers of any section"19:11
ignasor all "advisors of anyone"19:11
ignasat the moment such queries are prohibitively expensive :/19:11
ignasthus we can only do them per person - like "is he teaching any section"19:12
th1aThat will be helpful.19:12
ignasoh, and - if you really want to you can override "teachers" crowd definition and have it check for a prefix19:13
ignasquite easily19:13
ignaslike - 3-4 lines of python and 3-4 lines of zcml in overrides.zcml19:13
th1aaelkner_: You don't have any management pages for interventions at this point, do you?19:14
aelkner_not yet19:15
th1aPerhaps you should make a management page that lets you add persons to that list.19:16
aelkner_what list?19:16
th1aof people that show up on the checklist.19:17
aelkner_for all students?19:17
th1ayes -- isn't that what they want?19:17
aelkner_they want what they have plus a nurse and a special ed category19:18
th1aRight.19:18
aelkner_what they have is dynamically created19:18
th1aYes.19:18
aelkner_from the teachers that teach the student19:18
th1aI know.19:18
th1aI'm saying, let the administrator create a list that would be appended onto that.19:19
aelkner_i see19:19
aelkner_with the label specified for each person19:19
aelkner_so the admin chooses a person and a label to go with that person19:19
aelkner_and that info gets stored somewhere19:20
th1aI wouldn't worry that much about the label.19:20
aelkner_they do19:20
aelkner_it's essential to them19:20
th1aOK...19:20
aelkner_they need NURSE: to show up before the nurse's name19:20
th1aDo that then.19:21
aelkner_ignas: where would you recommend i store this info19:22
aelkner_as an annotation of the app object?19:23
ignasreading19:25
ignasnot sure I understand what the problem is19:26
ignasyou want to show roles for persons19:26
ignaswhen displaying a person?19:26
aelkner_no, the rols sytem is not useful in this case19:26
ignasso what user visible changes do you want to get19:26
aelkner_th1a: suggests creating a custom list of people and prefixes19:27
aelkner_to be displayed in the intervention system19:27
aelkner_forget the roles that schooltool defines19:27
aelkner_we have no nurse19:27
th1aWe just want to be able to create a list of arbitrary persons who should always show up as options to get emails.19:27
ignaswhere?19:27
ignasin interventions?19:28
th1ayes.19:28
aelkner_when adding intervention messages and goals19:28
ignasso - you add a list of persons to the intervention package then19:28
ignaseither as a list of persons19:28
ignasor as an object that has relationships with persons19:28
aelkner_it doesn't need to be complex19:28
ignasit's a global registry, but - it's not a part of application19:29
aelkner_actually the less complexity the better19:29
ignasit's a part of interventions19:29
ignaswell - to you relationships is complex, and user names are easy19:29
ignasto me - it's the other way19:29
ignasbecause I am keeping users being removed in mind...19:29
aelkner_ok, fair enough19:30
aelkner_but how does one say19:30
ignasso app['schooltool.intervention.emailers.list']19:30
aelkner_"Jane is a nurse"19:30
ignaswell - if it's not a list that you want19:30
aelkner_keep going19:30
ignasbut rather - getting emails and showing up on that list19:31
ignasis a property of a user19:31
ignasthen you might think of having a "role" as a demographics field19:31
ignasand filtering through all the users to find the ones you want to show there...19:31
th1aHm...19:31
ignasthe next option is19:32
ignasadd a Nurses group19:32
ignasor add an Intervention dudes group19:32
ignasto schooltool groups container19:32
ignashardcode that group19:32
ignasput people into that group19:32
ignasand show all the members of that group19:32
ignasin the list of email getting persons19:32
aelkner_that's what i wanted from the start19:32
th1aI think it is more of a "gets intervention emails" property on the person.19:32
aelkner_prefix?19:33
ignasth1a: well - if we had SQL queries then we could do it, but as we want it efficient with an object database, we might as well start from the "index of all the people who are getting emails"19:33
th1aThe interventions package could create an intervention dudes group.19:33
th1aThat would work.19:33
ignasaelkner_: if you are using an up to date schooltool, you can create the group on app startup even19:34
aelkner_first, i don't have an up to date school19:34
aelkner_but i can always patch their data19:34
th1aYes.19:34
aelkner_so that's not the issue19:34
ignasyeah, you can create the group manually19:34
aelkner_second19:34
aelkner_one group for intervention dudes would not be enough19:35
aelkner_we need the dud to have a prefix19:35
aelkner_or dudette19:35
th1aWell, that's a separate problem.19:35
th1aThat's just something that needs to be added to the demographic schema.19:35
aelkner_look19:35
aelkner_think of it simply19:35
aelkner_we need a list19:35
aelkner_ex/19:35
aelkner_1) NURSE: Jane19:35
th1aI'm not looking at it complexly.19:36
aelkner_2) SEL: Bob19:36
aelkner_3) COUNSELOR: Karina19:36
aelkner_etc.19:36
aelkner_so a list of tuples19:36
aelkner_role (prefix), userid19:36
aelkner_it's that simple19:36
th1aOr just add "title" to the schema.19:36
aelkner_what schema?19:37
th1aThe demographic schema.19:37
aelkner_ah ha19:37
aelkner_intervention title19:37
th1aMore like job title.19:38
th1aIt is generally relevant.19:38
aelkner_but remeber19:38
aelkner_the reason Bill shows up as ADVISOR: Bill19:38
aelkner_in the list for adding a message for student Bob19:39
aelkner_is the Bill is one of Bob's advosors19:39
th1aRight, but if you're adding him to the list because he is an advisor you don't have to use his title.19:39
aelkner_right19:39
th1aIf you're adding him as a member of the dudes, then you use his title.19:39
aelkner_but if we have this new title field19:39
aelkner_and we put NURSE there19:39
aelkner_we could have that automatically add that person to the lsit19:40
aelkner_so no, title, no appearance on any lists19:40
th1aHm?19:40
aelkner_unless for other reason, i.e., the person is the student's advisor or teacher19:40
th1aWe just need a title field anyhow.19:41
th1aIt is relevant beyond interventions.19:41
aelkner_i could see that19:42
aelkner_i would need logic for applying the title field19:42
aelkner_when do i interpret the presense of a title19:42
aelkner_to mean add them to the list19:42
th1aThe title doesn't determine who is on the list.  The group membership does.19:43
th1aIf you are a dude.19:43
aelkner_walk me though how Jane the nrese gets into the list19:43
aelkner_nurse19:43
th1aAdd Jane to the Intervention Dudes group.19:43
ignasi'd still add 3 groups19:43
th1aWhich?19:43
ignasNurses, Advisors, Counselors19:43
ignasand add people to these groups19:44
ignasor do Advisors and Counselors depend on the student19:44
th1aI don't want to get into that.19:44
ignasth1a: why?19:44
th1aI don't think it is necessary.19:44
ignasemm, it's simpler, not necessary19:44
th1aBecause it is complicated.19:44
ignasother options are more complicated from the code side19:44
ignasif you have tuples19:45
ignasyou must store them somewhere19:45
ignasyou must manage them somehow which you need UI for19:45
ignasyou must update them if people get removed19:45
th1aAdvisors and counselors depend on the student.19:45
th1aAlso, I don't have the slightest idea of how these things are handled in different countries.19:45
ignasth1a: i see19:45
th1aIn the US, you often have a counsellor assigned to each grade.19:46
th1aFor example, so that's something that has to be managed.19:46
th1aIt is not something to open up now.19:46
ignaswell - when we will have grades we will have counselors for grades instead of students19:46
ignasmy point is - adding groups is an isolated solution19:47
ignasit will not affect persons19:47
ignasit will not affect schooltool_2008.1019:47
ignasit will not affect anything except intervention package19:47
ignasi can't understand how it makes it more complicated19:48
th1aI'm thinking about what will be most generally useful for different schools using the intervention system.19:48
aelkner_i always like using the groups19:48
th1aThey may want entirely separate kinds of people to get these emails, so hard coding "nurses" for example doesn't help.19:49
ignasth1a: we will change it when we will see the problem19:49
ignasth1a: we have SLA for that reason, so they could tell us what is that is useful to them, and we would not drift into "general" solutions19:49
ignasand then we generalize the solutions19:50
ignaswhen we expand the horizons19:50
th1aI'm not sure what we're arguing about.19:51
th1aDo you want to use the group titles to generate the prefixes?19:51
ignasabout the implementation of the list of people who get emails19:51
th1aYes, but I don't know why you want three groups instead of one.19:51
th1aWhat's the advantage?19:52
ignaswe have 1 prefix from group title - Nurses, other prefixes are generated by role, or at least that's what I understand19:52
ignasth1a: i did not know that advisors and counselors are relationship with student based, not global group based19:52
th1aAt SLA, this is global.19:52
aelkner_wiat19:53
aelkner_adisors are neither19:53
aelkner_part od the demos for a student19:53
th1aCounselors are global.19:53
aelkner_is advisor1 and advisor219:53
aelkner_that's it19:53
th1aThe change in question concerns two global people.19:53
ignasaelkner_: yeah, it's relations based, the relationship is described as a demo field19:53
aelkner_so you mean relationship in the abstract19:54
ignasaelkner_: yes19:54
aelkner_not the schooltool.relationship sense19:54
th1aThe feature request is "we need the nurse and the counselor to show up on this dynamically generated list every time"19:54
aelkner_right, with NURSE: and SEL: as prefixes19:55
aelkner_so, if we add the two groups19:55
ignasth1a: yep, and i find it easier to add code, than to change and add new data structures19:55
ignasbecause we can change the code any time we want, and data structure modifications require evolution19:56
aelkner_yes, i would wnat to use the existing data structure19:56
aelkner_and just add the two groups19:56
aelkner_and use them them in the code19:56
ignasso if we will decide we don't want groups or want more groups - we just stop using it, and tada it's as it was before19:56
ignasand if we want to have groups instead of a simple list - we must remove the list and move it's members to groups19:57
ignaswhich is not about just changing code19:57
th1aHere is what I'm proposing:19:57
th1a1) make an intervention dudes group which is created when you initialize the interventions package;19:57
th1a2) add job title to demographics, which we need anyhow.19:58
th1a3) interventions form appends the members of dudes with their job titles to the list of possible email recipients.19:58
ignashere is the problem - intervention then works only with persons who have job titles (a.k.a. either I add it to basic person and to simple person, or intervention does not work)19:59
ignasso it depends on the implementation of the person object19:59
th1aIf there is no title then it just doesn't use a title.19:59
th1aSo you are saying just make two groups and use the title of the group?20:00
ignasdoable I guess20:00
ignasgroup titles are simpler20:00
ignasnow i am thinking whether job title is better20:00
ignasand how to do the "no title - show no title" properly20:01
th1aIt is kind of absurd to not have job title somewhere.  We'll need it.20:01
ignasth1a: any change that requires everyone to change their code is complicated20:01
ignasaelkner_: can you pull off a view lookup for job title in your code?20:02
ignasaelkner_: i mean - i'd make job title a view, that would show an empty string for IPerson20:03
ignasand a proper job title for SLA Person20:03
ignasso everything will work without SLA person and I could update basic person to have a job title20:03
ignaslater whenever I want without making people not use intervention while I am doing it20:03
ignasand no - if ISLAPerson.providedBy(person): return person.job_title is not a good solution20:04
aelkner_why can't leverage what we got as much as possible?20:05
ignasaelkner_: because the solution that tom wants does not add much code20:05
ignasaelkner_: and is a bit better than the group one20:06
ignasso you still add a group20:06
ignasbut only 1 group20:06
ignasthat anyone can be in, without restricting people to some specific roles20:06
ignasit will be a "function" based group20:06
ignasinstead of "role" based group20:06
ignaswhich is a good thing in this case20:07
aelkner_so are we agreeing to th1a's plan:20:08
aelkner_1) have an interventions group20:08
aelkner_2) membership causes the peson to appear in the email list20:08
aelkner_3) add a job title to intervention.demos20:08
aelkner_4) if present, use it as prefix20:09
aelkner_?20:09
ignasyes20:09
th1aYes.20:09
aelkner_ok, it's a plan20:09
ignasbut instead of having the if check - you have a job title view in the right layer, or for the right person class20:09
aelkner_can i change the subject?20:09
aelkner_oops20:09
th1aI think if we have a sprint early next year it is going to have to be about the final rationalization of persons.20:10
aelkner_yeah to that20:10
aelkner_but for now, i'm just going to add job title to intervention deoms20:10
*** ignas has quit IRC21:12
*** replaceafill has quit IRC21:15
*** mgedmin has quit IRC21:20
*** mgedmin has joined #schooltool22:54
*** mgedmin has quit IRC23:42

Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!