IRC log of #schooltool for Tuesday, 2010-05-18

*** replaceafill has joined #schooltool01:03
*** ignas has joined #schooltool01:24
replaceafillaelkner, zyt?01:29
*** ignas has quit IRC02:03
*** replaceafill has quit IRC02:04
*** replaceafill has joined #schooltool02:17
*** th1a_ has joined #schooltool02:18
*** replaceafill has quit IRC02:24
*** replaceafill has joined #schooltool02:38
aelknerreplaceafill, ayt?02:51
replaceafillhey aelkner02:51
aelknerhey02:51
aelkner'tsup?02:52
replaceafilllisten, can we talk like in a hour? will you be around?02:52
aelkneryep02:52
replaceafilli have a few questions about the gradebook02:52
replaceafillbut i have to go out now02:52
aelknerok02:52
replaceafillwill ping you in about one hour, ok?02:52
aelknerright02:52
replaceafillthanks aelkner02:52
aelknernp02:53
*** replaceafill has quit IRC02:57
*** th1a_ has quit IRC03:08
*** povbot has joined #schooltool03:22
*** replaceafill has joined #schooltool03:55
aelknerhey replaceafill03:56
replaceafillhey aelkner03:56
replaceafilldo you have time?03:56
replaceafilljust like 3 questions03:56
aelkneri'm here, what's up?03:56
replaceafilldid you the latest bug i reported?03:56
replaceafillhttps://bugs.launchpad.net/schooltool.gradebook/+bug/58182503:56
aelkneri'd say using the title for the value is unnecessary and therefore incorrect, would you agree?04:00
replaceafillunnecessary?04:00
aelknerthe value is not visable to the user, right?04:01
replaceafillright04:01
replaceafillbut how can we identify the ScoreSystem uniquely?04:01
aelknerso it could be anything we want, an id for instance04:01
aelknerit's __name__ would probably work04:01
aelkneranything that makes it unique04:01
replaceafillbut correct me if i'm wrong here, some ScoreSystem are not persistent04:01
replaceafilli tried the __name__ attribute and I got some errors for some scoresystems04:02
aelkneryou could identify them a different way in and except clause perhaps?04:03
aelknerid(ss)04:03
aelknerif it isn't persistent, then its in code04:03
aelknerand each one will have a unique id04:03
aelknerso, your method for converting an object to the value04:04
aelknercan be used against all scoresystems in your list to match the one the user selects04:04
replaceafillthat brings me another question04:05
replaceafillif we do that (assigning id(ss)), will we break schooltool.gradebook.browser.report_card.ReportScoreSystem04:05
replaceafillthose __setattr__ and __getattr__ seem like they depend a lot of names of things04:06
replaceafillor probably i don't get them right04:06
replaceafilli mean, understand them04:07
replaceafill        rv = None??04:07
replaceafillrangevalue?04:07
aelknerso much code is needed to so such a little thing with z3c forms04:11
replaceafill:)04:12
aelknerok, so when adding a report activity using the add view04:13
aelknerthe score system you chose for that activity can either be an existing one or a generated one04:14
replaceafillgenerated one means RangedValuesScoreSystem, right?04:15
aelknerthat's what the vocabulary does, delivers the existing one and one null one with value 'ranged'04:15
aelknerthat causes that virtual object to create one04:15
aelknerso yeah, that one is set to self.context.scoresystem04:17
aelknerand has no __name__04:17
replaceafillsince it's an attribute of the ReportActivity04:18
aelknerbut why wouldn't 'ranged' which is nto what the user see be an ok value?04:18
aelknerright04:18
replaceafill'ranged' is messed up because the translation you get04:18
replaceafill    rangedTerm = UtilityTerm('ranged', _('-- Use range below --'))04:19
aelknerit shouldn't be translated04:19
aelknersee how it isn't wrapped with _()04:19
aelknerit's an id, not a use visable04:19
aelkneruser04:19
aelknerso as long as we don't set the option value to _('-- Use range below --')04:20
replaceafilllook at the init of UtilityTerm:04:20
aelknerot will never be aything but 'ranged'n04:20
replaceafill    def __init__(self, value, token):04:20
replaceafillthe token parameter is used as the value of the <option...> element04:21
replaceafilland in this case the token is translated in the view04:21
replaceafillso, the form gets the translated token back04:21
replaceafillit looks for the translated string in the vocabulary and doesn't find it04:22
aelknerwhy is the token translated in the view?04:22
*** ignas has joined #schooltool04:22
replaceafillz3c.form translates it because it sees the _(...)04:23
aelknerit is the add scoresystem view we're talking about, right?04:23
replaceafillno!04:23
replaceafillclass ReportActivityAddView(form.AddForm):04:23
aelknersorry, that's what i meant04:23
aelknermy bad04:23
replaceafillah ok04:23
replaceafillyep, that's the one04:23
aelknerwhat line of code are you refering to?04:24
replaceafill11904:24
aelknerso the second parameter is translated, but the first isn't04:25
replaceafillyes04:25
replaceafillthe first isn't showed to the user04:25
replaceafillthe second is and should04:25
replaceafilli think we need a vocabulary that handles tokens AND titles04:26
replaceafilltitletokenized something something :)04:26
replaceafillthe title is shown to the user04:26
replaceafilland can be anything04:26
replaceafillaccording to what i've read tokens should be ascii :)04:27
aelkneryeah, we can't change the option field because we use the macro which generated it itself04:27
replaceafill?04:27
aelknerthat could be the ticket04:27
replaceafillcan you rephrase that please?04:28
aelknernever mind, i was just saying that i forgot that we couldn't put what we want for the option field04:28
aelknerlike when you have your own page template and don't use form macros04:28
aelknerthat's why i don't like using form macros and zc3 forms because you're always having to hack everything04:29
replaceafilli guess we just don't use them well :P04:29
aelkneri'm used to making the buttons and other fields whatever way i like04:29
replaceafillat least me ;)04:29
aelknerwho could?04:29
replaceafill:))04:29
replaceafillwell, i'll keep digging on that bug04:30
replaceafillbut i had two other questions04:30
aelknerask away04:30
replaceafillok, i talked to th1a about the Salvadoran use case for the gradebook04:30
replaceafillhe recommended using report sheets (as we talked about today in the meeting)04:30
aelkneryep04:31
replaceafillthere will be three sheets, for three trimesters04:31
replaceafilltrimester, is that the right word?04:31
replaceafillthree month period04:31
replaceafill:)04:31
aelkneryes :)04:31
replaceafillah ok04:31
replaceafillso, they use three trimesters04:31
replaceafillbut at the end of each trimester they need a "trimester average"04:32
replaceafillcan report sheet calculate average?04:32
replaceafilldo you have the average column in report sheets?04:32
aelknerdeployed report sheets will work the same in the gradebook, so yes, the gradebook view will show the average04:33
replaceafillgreat04:33
replaceafilland finally, the teachers need the final grade, the average of the three trimesters04:33
replaceafillso th1a suggested a summary worksheet04:33
replaceafillif i recall correctly04:34
aelknersounds right04:34
aelknerin the preferences view, the user can create one04:34
replaceafillsummary worksheets work with linked activities, correct?04:34
aelkneryes04:34
replaceafillbut it's not possible to link activities in a report sheet, right?04:35
replaceafilljust regular worksheets04:35
replaceafillor at least i couldnt find it in the UI04:35
aelknerthere may be code to block report sheets in providing that list04:36
aelknerthat may or may not have been necessary, don't remember off hand04:37
replaceafillbut in "theory" it could be possible to create summary worksheets for the report sheets, correct?04:37
aelknerdefinitely04:37
aelknerthe only thing that distinguishes a report sheet is that it's deployed04:38
aelknerthat helps distinguish it when we need it to04:38
replaceafillah ok04:38
replaceafillwell, i'll look into that too then04:39
replaceafillthanks for the help aelkner04:39
aelknerno problem, always a pleasure :)04:39
replaceafilli feel like i'm bending the gradebook :P04:39
aelknerwell, if you make any decisions like opening up report sheets to linkage04:40
aelknerjust make sure th1a gives you the double-checked go-ahead04:41
replaceafillyes04:41
aelkneri mean, give him a chance to consider if he see any implications04:41
aelknerbut first make sure that you don't find any coding snags doing it04:41
replaceafillyes, i'm going to report a new bug about that too, so he can read it04:41
aelknercool04:41
replaceafillthanks man04:42
aelknernp04:42
*** th1a has quit IRC06:07
*** ignas has quit IRC06:17
replaceafillaelkner, u up? :)08:36
*** replaceafill has quit IRC08:48
*** yvl has joined #schooltool09:02
*** alga_ has joined #schooltool09:23
*** alga has joined #schooltool09:23
*** replaceafill has joined #schooltool10:00
replaceafillyvl, you around?10:20
yvlgood evening, replaceafill10:20
replaceafillgood morning, yvl :)10:21
replaceafilli'm using the schooltool.gradebook trunk10:21
replaceafilland i compiled the es_SV translations10:21
replaceafilland they work if i set up the lang in my browser10:21
replaceafillhowever, if i erase all my languages in the browser10:21
replaceafilland try to set up 'lang es_SV' in schooltool.conf in my instance10:22
replaceafillthe language variation (_SV) doesnt work10:22
replaceafilldo i have to do something extra to make the lang work from the schooltool.conf file?10:22
yvlhmm, let me check10:23
replaceafillif i set 'lang es' it works with the spanish (es) translations10:23
replaceafilli tracked it down to schooltool.app.main.setLanguage10:24
replaceafilland the lang == 'es_SV' is set correctly10:24
replaceafillmaybe i need to set up something in the OS...10:25
yvlwell, it looks like a bug10:25
replaceafill:(10:26
yvleither in .conf example or in code ;)10:28
replaceafilli bet on .conf :P10:28
* yvl too10:28
replaceafillah wonderful!10:29
replaceafillit's not es_SV, it's es-sv >:(10:30
replaceafill'lang es-sv' works10:30
replaceafill# Examples:10:30
replaceafill#   lang en_UK10:30
yvlyep10:31
* yvl tested that too10:31
replaceafillthat should be en-gb maybe10:31
yvlhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.410:31
replaceafill:|10:31
yvlcan you file a bug?10:32
replaceafillon the .conf template, correct?10:32
replaceafilli mean, the example is misleading10:32
yvlconf template, also ST book: http://book.schooltool.org/htmlhelp/translations.html10:33
replaceafillah10:33
yvlnot sure about what to do with deb-installed .conf's10:33
replaceafill:S10:34
yvljust subscribe menesis also ;)10:34
replaceafillah ok10:34
replaceafillyvl, https://bugs.launchpad.net/schooltool/+bug/58213610:48
yvlthanks :)10:49
replaceafillyvl, could you please check this ugly hack when you have time https://code.launchpad.net/~replaceafill/schooltool.gradebook/schooltool.gradebook_fix_581825/+merge/2548910:54
yvllooking...11:01
aelknerreplaceafill, why did the tests change to have a dash at the end of the score systems11:09
replaceafillaelkner, punycode encoding11:09
aelknermeaning?11:10
replaceafillsafer to use as tokens11:10
replaceafillor value=... attributes for <option ...> elements11:10
aelknerah11:10
aelknergot it, so since those tests are for values, the changes don't mean changes to what the user sees11:11
replaceafillyep11:11
aelknercool11:12
replaceafilli still see it like a hack11:12
replaceafillthat append at the beginning...11:12
replaceafill('ranged', 'ranged', _(...))11:12
aelkneryou often need to mix apples and oranges in an option field11:13
aelknermost of the time, you'll have a bunch of choices11:14
aelknerand 'none of the above' as the no-choice choice11:14
yvlwell ideally the ranged score system should be wired as utility...11:15
aelknerit's hacky if you do that, too11:16
aelknerthere's no way around it being hacky as it's a complicated problem11:17
replaceafilli thought persistent utilities were a bad idea11:17
aelkneri never said that11:17
replaceafillin plugins i mean11:17
aelknerthe scoresystems that users want to create11:17
aelknerare saved as persistent utilities11:18
aelkneri also evolved ones that were once in code to the same place, the site manager11:18
aelknertogether, they make up the choices for the user when creating a report activity11:19
aelknerexcept11:19
yvlactually this (I think) breaks the database if you turn off the gradebook11:19
aelknerif the user wants to dynamically create a ranged values score system11:19
aelknerwhich is NOT a persistent utility11:19
replaceafillyvl, yes, you lose references, right?11:19
yvlwell, you loose the code :)11:20
aelkneryes, that could be11:20
replaceafillbtw aelkner, we can delete persistent scoresystems, right?11:20
aelkneryou can hide them11:20
replaceafillthere's a Delete? checkbox11:20
yvlI'll rework the scoresystem storage (at some point) if nobody minds11:20
replaceafillaelkner, so, Delete? is actually Hide?11:20
aelkneryvl: better be sure to know what you're doing11:20
aelknerthere's a lot of ways the scoresytems are being used11:21
aelknerthat might be a bigger project than you think is all i'm saying11:22
yvlthat's also the part I'm not very fond of11:22
yvlyes11:22
yvlI know it won't be trivial :)11:22
aelknerwell, there are application needs that drive things like this11:22
replaceafillaelkner, if I Delete/Hide a scoresystem, it still appears in the report activity options11:22
aelknerthe vocabulary need to filter that11:23
aelknergood catch11:23
aelkneryvl: mostly, such a project would require extensive mind-share, not a solo-flyer11:25
yvlI'm certainly not planning to do "stuff" to gradebook's code and then just leave it :)11:27
aelkner:)11:28
yvland anyway, one of the goals would be to check if the way scoresystems are stored / used can be simplified11:29
replaceafill+        hidden = getattr(utility, 'hidden', False)11:30
replaceafill+        if not hidden:11:30
aelknerexactly11:31
replaceafill:)11:31
aelkneryvl: in theory, they need not be utilities, but changing them to be objects11:32
aelknerstored off o app['schooltool.gradebook'] would solve the plugin problem11:33
replaceafillis it me or pypi is down?11:33
yvlpypi is down :(11:33
yvlaelkner, yes, something like that11:33
aelknerbut that means lots of changes to lots of code where score systems are looked up and stored11:35
aelknerdoable, but large task11:35
aelknerthe advantage of utilities is getUtilitiesFor(..)11:35
aelknerone idea that wold allow plugins to install utilities to the site manager11:36
aelkneris enforcing an orderly remval of plugins with a AppRemove event like AppInit11:37
yvlI'm thinking more along the lines: here's a mechanism to get a "bucket" where you can store the plugin's data11:38
yvlplease use only this bucket for your data and not other places in ST11:38
yvlalso something to generate buckets for "multiple objects"11:39
yvllike "for every person - schoolyear pair create a something to store my additional data"11:39
yvland then leave it up to ST core to take care of the buckets11:40
yvlthe thing with "AppRemove"11:40
yvlis that it is code11:40
yvland when you remove plugin, you don't have the plugin code any more11:40
aelkneri was thinking, by orderly removal, forcing removal of plugin using a tool11:41
aelknerut i suppose that wold be a bit inconvenient11:41
yvlprecisely11:41
yvlI'd rather notify a plugin that it has been disconnected for a while11:42
yvland it's up to the plugin to make it's data "synchronised" with the rest of ST11:42
yvlthe plugin can the nuke the old data11:42
yvlor check if there are new schoolyears or something11:42
yvlor even ask users in some web page what they want to do with the old data :)11:43
aelkneryou have the 'what if' machine in full gear :)11:44
yvl[yay, pypi is up again]11:44
yvlaelkner, I've been tossing the unpluggable plugin idea for a while now, so... ;)11:44
aelkner:)11:45
yvlbut the most important part is that plugin developers should be clear about what they have to do11:45
yvland what they need not worry about11:45
*** Aiste has joined #schooltool11:46
*** yvl has quit IRC12:47
*** replaceafill has quit IRC12:48
*** aelkner has quit IRC13:06
*** aelkner has joined #schooltool13:06
*** ignas has joined #schooltool13:20
*** Aiste has quit IRC15:19
*** menesis has quit IRC15:44
*** menesis has joined #schooltool16:37
*** replaceafill has joined #schooltool17:14
*** mgedmin has joined #schooltool17:20
*** ignas has quit IRC20:03
*** mgedmin has quit IRC20:18
*** alga_ has quit IRC20:41
*** alga has quit IRC20:41
*** menesis has quit IRC20:50
*** alga has joined #schooltool21:55
*** alga_ has joined #schooltool21:55
*** jelkner has joined #schooltool22:13

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