IRC log of #schooltool for Monday, 2011-05-16

*** alga has quit IRC01:31
*** menesis has quit IRC01:53
*** aks has joined #schooltool06:03
*** aelkner has quit IRC08:03
*** aelkner has joined #schooltool08:22
*** Lumiere_ has joined #schooltool08:54
*** Lumiere has quit IRC08:55
*** Lumiere_ is now known as Lumiere08:55
*** Lumiere has joined #schooltool08:55
*** Lumiere has quit IRC09:26
*** Lumiere has joined #schooltool09:39
*** Lumiere has quit IRC09:44
*** aks has quit IRC09:48
*** Lumiere has joined #schooltool09:52
*** yvl has joined #schooltool10:04
*** alga has joined #schooltool10:13
*** aks has joined #schooltool10:20
*** menesis has joined #schooltool11:29
*** menesis has quit IRC13:51
*** menesis1 has joined #schooltool13:51
*** menesis1 is now known as menesis13:51
*** menesis has quit IRC14:03
*** aks has quit IRC14:21
*** menesis has joined #schooltool15:12
*** menesis has quit IRC15:17
*** menesis has joined #schooltool15:32
*** th1a has joined #schooltool15:44
*** replaceafill has joined #schooltool16:29
th1ahi replaceafill, aelkner, yvl, menesis.16:31
yvlgood morning! :)16:31
replaceafillgood morning/afternoon16:31
th1aI have to be somewhere for a meeting at 11:00, so we need to be a little quicker than ususal.16:33
th1a11:00 is in 90 minutes, so we have about 75 minutes.16:33
th1aso... aelkner?16:33
aelkneryeah, so i added the absences and tardies columns to the gradebook last week16:34
aelkneralso, i removed Term Grading from the journal16:34
th1aDo you understand yvl's feedback?16:36
aelknerfor term grading?16:36
aelknerbecause the question was why we did so which i'll need you to answer16:36
th1aI answered why we removed it.16:37
yvlth1a already did16:37
th1aJust sent the email.16:37
th1aBut there were some technical points, too, right?16:37
aelknersorry, catching up with the email...16:37
replaceafilltesting layers16:37
aelkneryeah, i'll put the classes back to allow me to evolve the term grading away16:37
aelknerbut i don't understand the part about separate test layer for including journal16:38
aelknerthe the journal package is loaded because of what's in setup.py16:38
yvlwhen you are testing a gradebook without journal, you need a functional zcml that does not include journal16:38
yvlhmm, it should not be included automatically16:40
yvloh, and it is no16:40
yvlsee gradebook/browser/ftesting.zcml16:40
yvl  <include package="schooltool.lyceum.journal" file="meta.zcml" />16:40
yvl  <include package="schooltool.lyceum.journal" />16:40
yvldo not include that and you will be fine16:41
th1aGot that aelkner?16:42
* th1a is trying to keep things moving...16:42
aelknersorry, trying to find the email that yvl says how he did a separate ftesting.zcml16:43
yvlI never said that16:43
yvlI say you should do it if you need to16:43
yvllet's discuss this after meeting16:44
aelknerok, so that's it for me16:44
th1aIt isn't clear to me why this is necessary either, btw.16:44
th1aWhat's next on your list, aelkner?16:44
aelknerXLS importer could use section id as a way to automatically link sections16:45
th1aAh, yes.  OK.  Good.16:45
*** Lumiere has quit IRC16:45
th1aThanks, aelkner.16:45
th1areplaceafill: I need your April invoice.16:45
th1aAnd you can go ahead...16:45
replaceafillth1a ah, will send it today16:45
replaceafilllast week i came back from eduJAM! 201116:46
replaceafillwas great getting together with people from the sugar community16:46
replaceafillmet people from deployments from nepal, rwanda, etc16:46
replaceafillyou can read if you're interested16:47
replaceafillth1a i updated the cambodia instance16:47
replaceafilland now i'm waiting for the feedback loop to happen16:47
replaceafillon my plate i only have the 9th and 12th grade exam reports16:48
replaceafillcould i give it a shot this week?16:48
th1aI was thinking you could take a break and do some CSS & JS work.16:48
replaceafillah, ok16:48
th1aWe don't want to run too far ahead of our feedback.16:48
replaceafillwe can talk specifics later today if you want16:48
th1aOK.  Let's move on for now, then.16:49
menesisI finished with various branches16:50
menesisstable ones16:50
menesisthere are now 1.6 branches for everything and trunk is open for development16:50
menesisAdded several builders to buildbot16:51
menesisfor 1.6, 1.5, and 1.4 - all series that we "support"16:51
menesisalso "versionator" builders for all of them16:51
th1aGood use of scare quotes.16:52
menesisto check that all dependencies are still there, and what is the status of packages versions16:52
menesisalso added debian unstable to versionator_trunk to help me see what needs to be done to sync oneiric with unstable16:53
menesisdone nothing for debian yet16:53
menesisapart from maintenance branches and buildbots16:53
menesisI finally merged Alan's intervention refactoring branch (test_coverage)16:54
menesisthere are two more merge requests pending16:55
menesiswill merge them this week16:55
th1aDoes that include Justas's timetable work?  I'd like to get that merged in the next two weeks.16:55
yvlno, but please let me merge that16:56
yvlwith my branch of UI remake first16:56
menesisno, timetables are not finished16:56
th1aOK, I'll leave that an open issue.16:58
menesisthat's all to report16:58
th1aBut we do need to merge that as soon as possible, or it will miss the next release.16:58
* yvl agrees16:58
th1aThis is the kind of thing one learns with experience.  ;-)16:59
th1aThanks, menesis.16:59
yvlworked on viewlet sorting last week16:59
yvlalso CSS16:59
yvlalso "test" page layout17:00
* replaceafill liked the sorting algorithm :)17:00
yvlwell at least it detects cyclic dependencies :)17:00
yvlit's not good enough, but good for now17:00
yvlI'm pretty happy with CSS and layout at this point actually17:01
yvlnow working on page templates in ST17:01
yvland respective content providers, viewlet managers and such17:01
yvlok, that's that17:03
th1aCool.  Thanks, yvl.17:03
aelknertalk about a quick around the table!17:03
th1aOnce we get the rough mockups a little closer we can get everyone in on that conversation.17:03
th1aOK, let's address this Javascript testing issue.17:03
th1aOne thing that is good is that we're narrowing things down to specifics.17:04
th1aSo we don't really have to ask "how do we test all possible Javascript"17:04
th1aBut rather, how do we test the specific Javascript elements which it is important for us to add.17:04
th1aAnd really, even narrowing that down to jquery-ui,17:04
th1athe MUST's within jquery-ui is just a few widgets.17:05
th1aSo we can do YAGNI with regards to our testing framework.17:05
yvljust to make sure we're on the same page17:06
th1aAlso, I think we need to be judicious about which JS actions are most mission critical.17:06
yvlYAGNI what?17:06
th1a"Sometime in the future we may try some tweaked Javascript Ajax technique, so we can't use this relatively lightweight testing framework.17:06
th1aSo, for example, we might start using jquery-ui accordions.17:07
yvlyou really like them :)17:07
th1aI kinda do.17:07
yvlthese are a good example by the way -17:08
th1aActually, I like that it lets you add things in a vertical stack instead of a row of tabs.17:08
th1aSo if someone wants 10, it doesn't break the page.17:08
yvlyou can have everything unrolled17:08
yvland have a small "wrapper" that rolls up everything and makes it an accordion17:08
yvlform the testing perspective, our functional tests will cover 99% of the feature17:09
th1aThis is not a testing problem because the page still works without JS, and what the JS does not change the database.17:09
th1aSo the worst bug is relatively minor.17:09
yvlwell, testing is also important for a user17:10
yvlif we make a mistake17:10
yvland some JS events get eaten up17:10
yvluser will never be able to unfold the accordeon17:10
yvland see the content17:10
replaceafillor change the dropdowns in the current gradebook17:10
th1aWell... that's sort of the question.17:10
yvlor save the grades17:10
yvldetails like that17:11
th1aLet's stay on accordions.17:11
th1aJust talk through a simple case.17:11
th1aI'm pretty much ok with automated testing to make sure the content is right and mostly manual testing to make sure accordions open and close.17:11
yvlwell, I see two things that need testing there17:12
yvlopen and close nicely, as in - library works as intended - which I do not want to test that strongly17:13
th1aThat might not be relevant if we have to have a JS testing framework anyhow that will make it easy to test the opening of the accordion, but I'm just giving you my perspective.17:13
yvlwe can assume the library works as we imagine it works17:13
th1aRight -- we don't have to write a jquery test suite!17:13
replaceafillif we use it correctly...17:13
yvlwe might break it.17:13
yvlwithout knowing it17:14
yvlif we use jquery that comes with Ubuntu17:14
yvlsomething will change at some point17:14
th1aOK.  Good point.17:14
yvlat any point, by the way17:14
yvlthen again - setting up proper tests with selenium will be pain17:15
th1aOK, let's stick a pin in that and move on for a minute.17:15
yvlrunning at least some selenium tests manually by developers - easier17:15
*** Lumiere has joined #schooltool17:15
th1aSo... then there is a middle category of things that might be slightly nicer in jquery-ui implementation but need to be looked at in a case by case basis.17:16
th1aEnhanced, buttons, tabs, that kind of thing.17:16
th1aIn those cases, the additional testing complexity may genuinely make it not worthwhile.17:17
th1a(not to mention the complexity complexity)17:17
th1aFor the sake of completeness, the third category is things we don't want or need in jquery-ui.17:18
yvlalso, overdone flashyness is not necessarily better for the end user17:18
th1aSo... the biggie at this point is... dialogs.17:18
th1aI want.17:18
th1aAnd they need to be tested.17:18
yvlall I can say is yes and yes17:19
th1aSo that's the real hairball.17:19
th1aAnd perhaps what replaceafill will work on this week.17:19
th1ayvl wants.17:19
yvlwell that may be the case :)17:19
yvlwhat I meant is - later17:19
yvlfirst, dialogs where?17:20
yvlconfirmation for deletion?17:20
yvlsome of the forms?17:20
yvlwhat about "relationship set up views"17:20
th1aI guess I need to know what the issues are with them, and I don't think anyone of us has enough experience with them to tell me.17:20
* yvl wants central and slim implementation in the end17:20
th1aI would like to use them in lots of ways.17:21
yvlplease, umm,  enumerate in email17:21
* yvl 's english is awful17:21
th1ayvl's english is fine.17:22
yvlI haven't done them personally, but I talked on this topic a lot17:22
replaceafilldo dialogs include "success confirmation messages like: your changes were saved successfully"?17:22
replaceafillbecause i think we should improve those17:22
replaceafillah ok17:22
yvlmaybe we can compose a list of what we want to do17:22
th1aTo be honest, I don't even think that is necessary yet.17:23
yvlwhat I would like to have17:23
yvlis types of things to test17:23
th1aBasically, I need to know the cost of including each type of jquery dialog.17:23
th1aIs adding a js confirmation dialog a two hour job?17:24
*** alga has quit IRC17:24
yvlit may be the first time :)17:24
yvlas for testing..........17:24
th1aThe main question is how hairy will it be to add modal forms.17:25
yvlstrangely, I think that may be the easiest part :)17:25
th1aThis is what I need to know.17:25
th1aIt isn't even starting to add them into specific places yet.17:25
yvlor at least - as easy as confirmation dialog displaying what you are deleting17:26
yvlreplaceafill, if you want, you can surely play with this!17:27
th1aSo I would propose that replaceafill does some prototyping with jquery-ui dialogs.17:27
th1aWithin SchoolTool.17:27
yvlof course17:27
yvlI would like to see this, ideally:17:27
yvla button onClick, that invokes a single JS function17:27
yvlpreferrably in library, not ours17:28
yvlthat renders the form - contents of a simple schooltool page17:28
yvllike http://schooltool/..../person/something/add_js.html17:28
yvlI think that should might turn out trivial17:29
yvlor not17:29
th1aTesting is definitely the hard part.17:29
yvlif the resulting code is 4 lines of js17:30
yvlauto-generated in one place in ST17:30
yvlwe might get away without testing17:30
*** Lumiere has quit IRC17:30
th1aWell, let's find out.17:30
th1areplaceafill:  Make sense?17:30
replaceafillyvl define: "preferrably in library, not ours"17:31
yvlin jquery17:31
yvlI'd like to avoid our own JS functions17:31
yvlit might be possible17:31
yvlit might be as easy as binding a single onClick call17:32
yvland then changing our form html to render <form></form> part17:32
yvlinstead of whole <html>17:32
replaceafillah! got it17:32
yvlwell, keep it as simple as possible17:33
replaceafilli'll ask if i get stuck :P17:34
th1aWe have two weeks until the UI sprint, which seems about right.17:34
th1aThe UI pre-sprint has begun...17:34
yvl(a week ago :P)17:34
th1aOne more issue to think about -- do we want to use some different version control paradigm to allow everyone to check in UI changes to a sprint branch?17:35
yvlgood point17:35
th1aI'm going to have to be able to run a single bleeding edge branch.17:35
th1aWe don't have to decide that now, but we'll have to figure something out.17:36
yvlyou might end up with 4 different branches and the wisdom to look at what where :/17:36
yvlbut maybe we can work out something more reasonable17:37
th1aWell... I want everyone to see what everyone else is doing as well...17:37
th1aOr we could just rely only on screenshots.17:37
th1aAnyhow, something to consider.17:37
replaceafill+1 on branches17:37
th1aAll right.  I think we're done then.17:38
th1aHave a great week, gentlemen!17:39
* th1a drops the bag of gravel.17:39
yvlthis is going to be fun! :)17:39
th1aI guess aelkner and yvl can finish sorting out the testing question.17:39
* th1a leaves.17:39
yvlsee you around, th1a17:39
aelknerso icreates gradebook_functional_layer17:39
yvlaelkner, can I take a small break?17:40
aelknerwhich is based on ftesting.zcml that has the journal incudes17:40
yvl7 min - out of coffee17:40
aelkneryvl, sure17:40
* yvl back17:50
menesisaelkner: I have reverted your stubs and removal of journal includes17:50
menesisbecause there are two cases: no journal, and journal17:50
menesisI left only a case when there is a journal17:50
menesisthe other case is not tested17:50
aelknerright, that was my point17:51
aelknerthe question is: how to create the other case?17:51
menesisremove journal from ftesting.zcml17:51
aelknerwhich would break the many tests that depend on the journal17:52
menesisand only include journal in tests that test journal integration17:52
aelkneragain, how?17:52
aelkneras i was saying above, icreates gradebook_functional_layer17:53
aelknerwhich is based on ftesting.zcml that has the journal incudes17:53
aelknerthat collects every test by loking for .txt files17:54
aelknereven if i were to create a new ftesting_no_journal.zcml17:54
aelknerand a functional layer for it17:54
replaceafillaelkner why dont you create a copy of, use ftesting_no_journal.zcml and pass the filenames of the tests to collect_ftests17:54
replaceafillcollect_ftests(layer=gradebook_functional_layer_with_no_journal, filenames=['THIS.txt'])17:55
menesisthe case with no journal is the default17:55
menesisftesting.zcml should not include journal17:55
aelknerand what would stop the other functional layer from picking up ThIS.txt?17:55
replaceafillaelkner ah!17:55
replaceafillno :(17:55
menesisI was just explaining why includes are still there17:55
menesisI don't think you need another layer17:56
yvlmenesis is right17:56
menesisa test checks that there is nothing (because journal is not available)17:56
menesisthen does registerAdapter(...Section...JournalData)17:56
menesisto register the needed adapters17:57
menesisand then checks if the data appears in report17:57
aelknerthe thing is:17:58
menesishm. okay you can't provideAdapters in ftests17:58
yvlwell you can :)17:58
aelknerright, that, too17:58
aelknerbut also, the tests click around the journal ui, so it needs to be theere17:58
yvllook at it this way17:59
yvlif gradebook is not hard-dependent on journal17:59
yvljournal does not exist and should not be used17:59
yvlso current tests are broken in my eyes17:59
yvlstub out whatever ui is necessary18:00
yvlremove clicking through unnecessary ui from tests18:00
aelknerget rid of extras_require inclusion of journal in
yvlI vote yes :)18:01
yvlmind - it's just a vote18:01
yvlmenesis has different opinion :)18:01
aelknerwell, let's have it out here18:01
aelknerup to this point, i think i have pointed out how things won't work as suggested18:02
aelknerso what to do?18:02
yvlmenesis convinced me to leave alone18:02
yvlremove inclusion of lyceum.journal from ftesting.zcml18:03
yvltests break18:03
yvlfix tests18:03
yvlwrite new tests where needed18:03
*** Lumiere has joined #schooltool18:03
yvlwhat breaks when lyceum.journal is removed?18:04
aelknerany tests that rely on journal data being loaded, then reports being run and expected journal data coming out18:05
aelkneralso, any journal views needed for loading journal data in18:05
yvlwell, the journal behaviour should be stubbed in my opinion18:06
aelknerhow could it be stubbed?18:06
yvlpersonally I would go with another testing layer for these tests18:06
yvladd simple views that can accept data where it needs to change18:07
yvland even store it temporarily wherever18:07
yvleven in app18:07
aelknerfirst, yvl and menesis need to agree ob the approach18:07
aelknerthen, someone needs to explain to me technically how to make that approach work18:07
aelknerso first things first, what approach?18:08
aelkneri assume that yvl and menesis are discussing this right now...18:11
yvlaelkner, can you remind me one thing18:19
yvljournal adds external activities, right?18:19
yvland the code of adding them is in journal?18:19
aelknerno, i put that in the gradebook18:20
aelknerthe journal does not depend on the gradebook18:21
aelknerso it is impossible to do:18:21
aelknerfrom schooltool.gradebook.interfaces import IExternalActivities18:21
aelknercando does, so it is18:21
*** alga has joined #schooltool18:22
aelkneri mentioned all of this in my email to the developers list last week18:22
yvlsorry, that's what happens when I try to work on many things at once18:22
yvlthings slip my mind sometimes18:22
yvlmy fault18:22
yvlmaybe the issue is not that burning18:23
yvlcan we pretend that all is fine, and do nothing18:23
yvland put this as a technical debt for now18:23
yvlas I really would like not to work on this now18:24
aelkneryvl, that's fine, just so you know the outstanding issue18:24
yvland Tom needs to know that it is18:24
aelkneri got all the external activity stuff to work, with tests18:24
yvlhe's a manager after all!18:24
aelknerthen i found that it failed with manual test18:24
aelknerbecause i didn't have the plug-in18:25
aelknerso i fixed those bugs in one of my commits18:25
aelkneronly problem, no way to create the problem in tests18:25
aelknerso the ISectionAttendanceData(section, None) that fixed the problem18:26
aelknerwill never return None because ournal is always there in tests18:26
aelknerthat's the only reason we need to have this discussion18:26
aelknerbut if menesis and you are ok with having that scenario untested, that's your call18:27
yvlI need to look at this more closely at some point18:27
yvlpreferably not now18:27
aelknerremember to refer back to email when you do18:27
aelkneri went through the trouble of writing them after all :)18:27
menesisaelkner: I am not happy but I was planning to sort this journal/gradebook/intervention separation myself18:27
yvlaelkner, can you please file a bug for me in Lauchpad?18:27
yvlaelkner, I read those!18:28
yvljust sometimes forget stuff :)18:28
aelknerno, i wasn't saying that you didn't read them18:28
yvla bug - because it may be reassigned to menesis, for example :)18:28
aelknerjust reminding you to refer back to them, that's all18:28
* replaceafill will file questions for yvl as bugs from now on :P18:28
aelkneri won't usually, but in this case i can file a bug18:29
yvlit's a technical debt that needs to be marked :)18:29
yvlthanks aelkner18:29
yvlapologies for the situation you got in :)18:29
aelkneryvl, i pushed the change to re-include the class definitions18:30
aelknerevolution now works for removing term grading container18:30
aelkneryvl, np on the situation18:30
yvlaelkner, a note on your last commit18:31
yvlyou don't need to add back ZCML18:31
yvlalso you probably do not need implementations of the methods in TermGradingData18:31
yvlthe important part is:18:32
yvlclass TermGradingData(Persistent):18:32
yvland class LyceumTermDataContainer(BTreeContainer):18:32
yvlclass contents are usually not that usefull18:33
yvlI tend to add other stuff for reference, like:18:33
yvl__parent__ = None18:33
yvl__name__ = None18:33
yvl__data__ = None # OOBTree18:33
yvlbut that is not important in this case18:34
yvloh, also most of imports in journal/ should be removed18:35
aelknerok, will do presently18:35
aelknerdon't go away because i can do that real fast18:35
yvlI don't remember if ITermGradingData is persisted18:36
yvlif not, it could be removed18:36
yvl(I think it's not persisted)18:36
aelknercool, will try removing18:36
aelknersubmitted bug for you, check it out please18:37
yvlthanks, aelkner18:40
aelkneryvl, i just pushed an update that removes ITermGrading and config18:43
aelknermanual test of evolution passed18:43
aelknercould you give me quick feedback?18:43
yvlplease also add a cooment in term.py18:46
yvlthat the module is obsolete18:46
yvland is there for an evolution script that actually removes these objects18:46
yvlotherwise it looks good from first glance18:47
aelknerare you saying doesn't do that?18:47
yvlno, just that18:47
yvlit would be good for other developers to know18:47
yvlwhy there is a file term.py18:47
yvlby looking at it18:47
aelknerthat i got, adding the comment and all, but what else are you saying?18:48
yvloh, I was just roughly typing the comment18:49
yvlthe module is obsolete18:49
yvlit is here for an evolution script that actually removes these objects.18:49
yvlor something like that :)18:49
aelknerright, will do18:49
yvlgreat :)18:49
aelknerand i'll update CHANGES.txt and submit the merge request18:49
yvlthank you18:50
yvlok, it's time to go home now18:50
yvlneed lunch! ;)18:50
aelknerok, have a good evening18:50
yvlhappy coding guys!18:50
yvl( replaceafill - keep us posted when something happens with jQuery - I like shiny things ;)))) )18:51
replaceafillyvl will look for you tomorrow, maybe we can talk a little18:51
yvlumm, I kind of have a Skype call with th1a18:52
yvlat default meeting time18:52
replaceafillah, ok18:52
yvlso we can chat before that18:53
yvlor email18:53
yvlor on Wed18:53
replaceafillwill try email18:53
yvlok then... hope to hear from you soon ;)18:54
*** menesis has quit IRC20:14
*** replaceafill has quit IRC20:24
*** menesis has joined #schooltool21:20
*** menesis has quit IRC21:25
*** menesis has joined #schooltool21:38
*** menesis has quit IRC22:35

Generated by 2.15.1 by Marius Gedminas - find it at!