IRC log of #schooltool for Friday, 2009-02-20

*** jstraw has left #schooltool00:32
*** fsufitch has quit IRC01:06
*** jstraw has joined #schooltool01:16
*** jelkner has joined #schooltool02:40
*** jelkner has quit IRC03:16
*** mgedmin has joined #schooltool10:01
*** alga has joined #SchoolTool12:43
*** ignas has joined #schooltool14:38
*** jstraw has quit IRC15:11
*** jelkner has joined #schooltool16:03
*** ignas has quit IRC16:11
*** ignas has joined #schooltool16:12
*** Guest86130 has joined #schooltool16:51
*** Guest86130 has quit IRC16:54
*** replaceafill has joined #schooltool17:58
aelknerignas: did you have a chance to read my note about report cards?18:10
ignasaelkner: still reading18:18
aelknerok, thanks18:20
*** mgedmin has quit IRC19:09
ignashmm, do we need templates?19:11
ignasas in global templates19:11
ignasok, i guess we do19:11
ignasthough I am still not sure what is the best way to do the "i want the same thing in different/terms school years, but i don't want it to change when it's set"19:12
ignasi mean - one way is the way you are planning to do with report card templates19:12
ignaswhich is - have global templates and populate terms/school years as you go19:13
ignasanother way is - set them up in terms/ years19:14
ignasand then add functionality to copy them to the next term/year19:14
ignasas for the hierarchy - I still don't like containers that contain "different" kinds of things19:15
ignasbut if you feel that it's better that way - well, it's your choice19:15
ignasfor evaluation storage - my advice was doing the refactoring at the same time with activities19:16
ignasand if you move both - activities from section __annotations__ and evaluations from student __annotations__19:16
ignasyou probably would gain more by storing evaluations and activities in the same place19:16
ignasas they are related19:16
ignasthe UI side does not depend on the way data is stored in the backend19:17
ignasas long as you have a class that can pick the data that is needed from the containers and assemble it to provide IGradebook interface19:17
ignaseverything works the way it used to19:17
ignashmm, ok, I have misunderstud the structure that you drew19:18
ignasit only concerns report cards and their templates, not the old gradebook19:18
aelknerignas: as for the template/deployment idea, it was thla's suggestion, and it sounded fine to me19:25
ignasidea is this19:26
ignasif you put ReportCardsContainer and put one kind of stuff in ['templates'] and a different kind of stuff in ['deployed'] you get a content management system19:27
ignasif you put ReportCards and have attributes templates and deployed19:27
ignasthat each are different typed containers for different things - it's data structures19:27
ignasone thing i still don't know is - whether something in gradebook['templates']['template1'] is the same thing that will be in gradebook['deployed'][an int id of a term]19:29
aelknermaybe i didn't use the clearest way of showing my data structure19:31
aelknerbut to answer your question19:31
aelknergradebook['deployed'][an int id of a term]['student1']['activity1]['section1']19:31
ignasyeah, in understand that19:32
ignasso items in 'deployed' are not copies of templates19:32
aelknermore like distributions i guess19:33
aelknerof course, i would need an event handler for students getting added/removed from sections19:34
ignaswell - i think schooltool.gradebook is not handling that19:34
ignasif you remove sutdents or sections - evaluations stay where they are19:34
aelkneryou mean currently?19:34
aelkneryeah, that's true19:35
ignasand that has some kind of special meaning as in - we don't want data entered into the system disappear as it is too important19:35
ignasor something like that19:35
ignasthough - imho if it's important - make backups19:35
aelkneryeah, an example of the benefit of the way evaluations currently work19:35
ignasmaking backups inside of ZODB does not make much sense19:35
aelknerwhen cando had problems with sections19:36
aelknerwhen the inheritance problem caused the assigned comps to crash the system19:36
aelknerdwelsh was able to remove all sections and recreate them19:36
aelknerand magically the evaluations were still there19:37
ignasstrange, because I think evaluations are stored not using section_id19:37
aelknerafter he recreated the comp assignment19:37
aelknerright, they're store using the competency id19:37
aelknerin the annotation of the student19:37
ignasahh, you retained competency_ids19:37
ignasand competencies were not removed together with sections19:38
aelknerright, sections were only refering to the comps19:38
ignasas for structures in19:38
ignasi'd suggest19:39
ignashmm, ok, maybe I am wrong again19:39
ignasyour primary reports will be:19:39
ignassection based19:39
ignasstudent based19:40
aelknerstudent based19:40
ignasand entry - section based19:40
aelknerno, also student based19:40
ignasso teacher will go to the report cards19:40
aelknerremember, the gradebook rows are sections for he student19:40
ignasand go through every student separately19:40
ignasi am assuming that teachers want to see "all the students for his section" (section based)19:41
aelkneryou make a good point19:41
ignasand students "all the sections for them" (student based)19:41
aelkneri think thla needs to way in on how data entry should work19:41
aelknerbut i think you're right about having the all students for this section view19:42
ignasit might be useful to have a double key of some kind19:42
ignaslike ['term_int_id']['student', 'section']19:43
ignasotoh - that does not change the way you access data much19:43
ignasyou still would have problems iterating finding all the evaluations for a specific section19:43
ignasso you'd either "get all members" => "get all evaluations for each member + section"19:44
ignasor "get all sections" => "get all evaluations for each section + student"19:44
ignasactivity being the root makes it more difficult19:44
ignasso either a section or a student must be the "top one"19:44
ignasand activity must be the last level19:45
ignasshould be19:45
aelkneri agree with that19:45
ignasor else you have to do (with the schema that you drew)19:45
ignasfor student in section: for activity in IReportCardEvaluations(student).activities(): for some_section in activity: if some_section == section: "get the grade"19:46
ignasand you want it reduced to at least19:46
ignasfor stedent in section: for activity in IReportCardEvaluations(student)[section.__name__]: "get the grade"19:47
ignasor something close to that19:47
ignasyou can hide most of it under ISectionReportCardEvaluations() and IStudentReportCardEvaluations() and change it later if it's too slow or for whatever other reason you have19:48
ignaswell, all I can suggest is - write a lot of functional tests so you can fix stuff when it breaks later19:49
ignasbecause it will, the task is pretty complicated ;)19:49
ignasfor anyone19:49
aelknersee, i think that the heirarchy of containers makes the task the simplest19:50
aelknerlike when i wrote the intervention system19:50
aelknerafter the heirarchy was worked aout19:50
ignaswell kind of19:50
ignasyou are using hierarchy in one place for the tight hting19:51
ignasin another place for the wrong thing19:51
aelknerthe task of writing it was not too complicated19:51
ignasthe [term_id][section_id][student_id]19:51
ignasis the right part of it19:51
ignasas everything under different term ids is "ISomething"19:51
ignasand everything under section_id is "ISomethingElse"19:51
ignasand everything under [student_id] is IEvaluationContainer or whatever19:52
ignaswhile app['schooltool.gradebook.reports'] contains19:52
ignas"IContainer" thingies19:52
aelknerwhat did you just say?19:53
ignasnot sure if we are even discussing the same thing ;)19:53
aelknerno, i thnk we are19:53
aelknerwe're talking about containers of containers, etc.19:53
aelkneri said how that make it easy19:54
aelknerit's like a file system19:54
aelknereasy to traverse19:54
ignasnow that's the problem19:54
ignasthis is application19:54
ignasnot file system19:54
ignasnot content management system19:54
aelkneryou're talking compsci theory19:54
aelknerapplication vrs CMS19:55
ignascomp sci does not teach that19:55
ignasuse containers like lists and dicts, you don't want to put different kinds of things in the same container19:55
ignasunless you are reimplementing a file system19:55
ignasor programming a CMS ;)19:55
aelkneri'm not, i'm putting caontiners in containers19:55
ignasIContainer is too abstract19:55
ignaswhich is why we have19:55
ignasand CourseContainer19:56
ignasnot BTreeContainer instances19:56
ignasso we define that CourseContainer contains(ICourse)19:56
ignasand CourseCourseContainer contains(ICourseContainer)19:56
aelknerwell, this is why i asked for your suggestions19:57
aelknerbut instead of just saying my idea is wrong19:57
ignasi am not saying your idea is wrong19:57
aelknercould you come up with a counter-proposal19:57
ignasonly the first step is the part i don't like19:58
ignasand I have suggesteds19:58
ignashaving an object with 2 attributes19:58
ignasand deployed19:58
aelknerof what type?19:58
ignasinstead of a BTreeContainer19:58
ignaseach of those will be Containers of some kind19:58
ignasand ReportEvaluationContainer for example19:59
ignasand from there - it's containers all the way ;)19:59
aelkneri see19:59
aelkneri just realized something20:00
aelknerevaluations are currently annotations20:00
aelknerusing the keyref of the activity as the key20:00
aelknerwhat i mean is20:00
aelknerthe worksheets that are annotated on the sections20:01
aelknercontain the activities20:01
aelknerso the heirarchy of the activities within the worksheets is stored in one place20:01
aelknerand the evaluations (again annotated on the student object)20:01
aelknerare stored by referring to the activities20:02
aelknerso my email was wrong20:02
aelknerwhen i deply the template20:02
ignasi have mentioned that i do it differently in lyceum.journal when you were driving ;)20:02
aelkneri need to copy the heirachy to one place20:02
ignasas it is easier to keep evaluations at the same place with the activities20:02
aelknerand i need a different heirachy for storing the evaluations20:02
ignasyeah, seems so20:03
aelkneri forgot about that point you made20:03
aelkneri guess i was trying not to crash :)20:03
ignasnah, you were trying not to cross the Patomac20:04
aelknerright, that was is20:04
ignasok, i must go home now, guess you have things to think about ;)20:04
aelkneryou think? :)20:04
ignashope, rather ;)20:05
aelknerare you gone for the weekend?20:05
ignassaturday is a work day here20:05
aelkneroh, cool, i'll see you then20:05
*** ignas has quit IRC20:07
*** replaceafill has quit IRC20:08
*** alga has quit IRC20:33
*** jstraw has joined #schooltool20:57
*** jcrowley has joined #schooltool21:18
*** elarson has joined #schooltool21:29
*** jelkner has quit IRC22:05
*** elarson has quit IRC22:05
*** jcrowley has quit IRC22:08
*** jstraw has quit IRC23:17
*** replaceafill has joined #schooltool23:34

Generated by 2.15.1 by Marius Gedminas - find it at!