*** menesis has joined #schooltool | 00:04 | |
*** alga has quit IRC | 01:57 | |
*** replaceafill has quit IRC | 02:16 | |
*** fsufitch has joined #schooltool | 03:20 | |
*** fsufitch has left #schooltool | 03:20 | |
*** menesis has quit IRC | 03:28 | |
*** aks has joined #schooltool | 06:13 | |
*** alga has joined #schooltool | 09:32 | |
*** aks is now known as aks_afk | 09:49 | |
*** aks_afk is now known as aks | 10:18 | |
*** menesis has joined #schooltool | 11:18 | |
*** ignas has joined #schooltool | 14:07 | |
*** menesis has quit IRC | 14:08 | |
*** aks has quit IRC | 14:30 | |
*** menesis has joined #schooltool | 14:47 | |
*** fsufitch has joined #schooltool | 16:05 | |
*** asharma_ has joined #schooltool | 16:57 | |
fsufitch | aelkner, ping | 17:05 |
---|---|---|
*** replaceafill has joined #schooltool | 17:41 | |
*** alga has quit IRC | 17:47 | |
fsufitch | replaceafill, ping | 17:48 |
replaceafill | fsufitch pong | 17:48 |
fsufitch | so, remember how you told me to use __setattr__ and __getattribute_ to make the transparent courseinfo attributes? | 17:49 |
replaceafill | yes | 17:49 |
fsufitch | that doesn't work, because when the object is edited by z3c.form, it's done via an adapter or proxy of some sort, which overrides setattr and getattr itself | 17:50 |
fsufitch | the __setattr__ in CurrentCourseInfo never even gets called | 17:50 |
fsufitch | so i had to do the property way | 17:50 |
fsufitch | http://bazaar.launchpad.net/~schooltool-developers/schooltool/schooltool.courseinfo/view/head:/src/schooltool/courseinfo/courseinfo.py starting at line 135 | 17:51 |
fsufitch | it's not exactly pretty, but it works | 17:51 |
replaceafill | check schooltool.basicperson.browser.person.PersonAddFormAdapter | 17:51 |
replaceafill | but either way is fine :) | 17:52 |
replaceafill | the important part is that you have tests for all of this | 17:52 |
fsufitch | ahh that | 17:52 |
fsufitch | yes, i do :) | 17:52 |
fsufitch | now im off to get some food | 17:53 |
fsufitch | ttyl! | 17:53 |
*** asharma_ has quit IRC | 18:23 | |
*** asharma_ has joined #schooltool | 18:46 | |
*** jelkner has joined #schooltool | 18:47 | |
jelkner | th1a: are you here, boss? | 18:48 |
jelkner | replaceafill, asharma_ has a question about respect | 18:55 |
jelkner | she says in nepali there are different forms that show different levels of respect | 18:55 |
jelkner | she is wondering how much respect we ST folks like to give people ;-) | 18:56 |
replaceafill | ¬¬ | 18:56 |
asharma_ | replaceafill, in Nepali there are different ways you address people and that depends on how much respect you show them. | 18:57 |
asharma_ | When I was looking through the files Abhishek sent me, the degree of respect in those files are different from how I translated the sphinx file | 18:58 |
* replaceafill is still waiting for the question... | 19:06 | |
th1a | asharma: One thing to keep in mind in this process is that if there are very technical words in the SchoolTool interface or documentation that cannot be translated, it suggests that we should also be using different words in the english. | 19:07 |
th1a | So please let me know where that comes up. | 19:08 |
replaceafill | is it me or schooltool.org is down? | 19:10 |
th1a | It is. | 19:10 |
th1a | Ticket filed... | 19:10 |
th1a | We need to move. | 19:11 |
fsufitch | replaceafill, http://www.downforeveryoneorjustme.com/schooltool.org | 19:16 |
fsufitch | :) | 19:16 |
replaceafill | :O | 19:16 |
fsufitch | very useful site | 19:16 |
replaceafill | bookmarked :D | 19:16 |
*** replaceafill has quit IRC | 19:35 | |
*** ignas has quit IRC | 19:38 | |
*** aks has joined #schooltool | 19:45 | |
*** replaceafill has joined #schooltool | 19:51 | |
*** aks has quit IRC | 19:52 | |
*** menesis has quit IRC | 19:55 | |
fsufitch | replaceafill, ping | 19:56 |
replaceafill | fsufitch pong | 19:56 |
fsufitch | in zope, does an interface automatically adapt itself, or would i have to define an adapter for that? | 19:56 |
replaceafill | you want to adapt an interface? | 19:56 |
fsufitch | er, no | 19:57 |
replaceafill | :) | 19:57 |
fsufitch | i meant does it automatically adapt objects that implement that interface | 19:57 |
fsufitch | ICourseInfo(courseinfo), when courseinfo implements ICourseInfo | 19:57 |
replaceafill | it returns the object directly | 19:57 |
fsufitch | and i *don't* have to define a new adapter for that | 19:57 |
fsufitch | right? | 19:57 |
replaceafill | ah | 19:58 |
replaceafill | hhmm im not sure | 19:58 |
fsufitch | well, i'll try it | 19:58 |
replaceafill | i think you have to | 19:58 |
fsufitch | dammit lol | 19:59 |
replaceafill | :D hold on, let's find out ;) | 19:59 |
fsufitch | it's an adventure! | 20:00 |
replaceafill | fsufitch maybe you want ICourseInfo.providedBy(courseinfo) ? | 20:02 |
fsufitch | huh? | 20:02 |
fsufitch | well... i guess that could work | 20:02 |
replaceafill | in case you want to know if courseinfo provides ICourseInfo | 20:03 |
fsufitch | right | 20:03 |
replaceafill | although I remember yvl said we should try to avoid providedBy calls | 20:03 |
fsufitch | hmm why? | 20:03 |
fsufitch | see, what i'm trying to do is to not write redundant code | 20:04 |
fsufitch | and both Course and CurrentCourseInfo need to be able to have a redirect view to PublishedCourseInfo | 20:04 |
fsufitch | there are adapters for ICourse -> IPublishedCourseInfo and ICurrentCourseInfo -> IPublishedCourseInfo | 20:05 |
fsufitch | so i can just adapt whatever the context is to IPublishedCourseInfo | 20:05 |
replaceafill | right | 20:05 |
fsufitch | but if it was not able to adapt (the published course info does not exist), i need to redirect instead to a "not found" view | 20:05 |
fsufitch | and i don't want to define two "not found" views | 20:06 |
fsufitch | wait... i could just use the view i'm already in | 20:06 |
fsufitch | just don't redirect and just say not found instead | 20:06 |
* replaceafill thinks fsufitch needs aelkner ;) | 20:06 | |
fsufitch | i think aelkner has been afk :-/ | 20:07 |
fsufitch | besides, it's not like i can't solve this, it's that i'm not satisfied with the elegance of that solution :) | 20:07 |
aelkner | fsufitch, hey | 20:10 |
fsufitch | aelkner, hi! | 20:10 |
replaceafill | fsufitch check zope.interface.interface.InterfaceBasePy | 20:10 |
replaceafill | __adapt__ :) | 20:10 |
replaceafill | if self.providedBy(obj): | 20:10 |
replaceafill | return obj | 20:10 |
replaceafill | :D | 20:10 |
fsufitch | sweet, so it just works | 20:10 |
replaceafill | :D | 20:11 |
aelkner | ah, yes, adapting to oneself :) | 20:11 |
fsufitch | aelkner, so, now that that is answered, design question: | 20:11 |
fsufitch | i'm making a redirect view to redirect to the PublishedCourseInfo, registered for both Course and CurrentCourseInfo (so they can both have the "POS Course" button) | 20:12 |
fsufitch | if the PublishedCourseInfo lookup fails, should i register a different view to tell the user "not found" and redirect to that, or just make the redirect view have a template saying "not found" that gets rendered if the redirect fails? | 20:12 |
fsufitch | the latter option requires one fewer tag in courseinfo/browser/configure.zcml :) | 20:13 |
aelkner | you don't need a POS Course for ICourse | 20:14 |
aelkner | I think dwelsh agreed the user can click on Course Info first | 20:14 |
aelkner | then you can register POS Course against ICurrentCoureInfo | 20:14 |
fsufitch | ... oops | 20:14 |
fsufitch | i failed to read the CourseInfo Tasks email properly | 20:14 |
fsufitch | the one *i* wrote | 20:14 |
fsufitch | duh... | 20:15 |
aelkner | :) | 20:15 |
aelkner | btw, i sent you an email with a couple of review comments | 20:15 |
fsufitch | ok | 20:15 |
fsufitch | 1) if an adapter returns none, instead of returning none on adapting, it crashes with a TypeError | 20:15 |
fsufitch | it's an adapter "feature" | 20:15 |
fsufitch | that's why i use '', so i don't have to catch TypeError, since a TypeError could mean something different other than the adapter simply not finding the information | 20:16 |
aelkner | no, it's better to catch the error | 20:18 |
aelkner | returning '' has no meaning | 20:18 |
fsufitch | hmm | 20:18 |
fsufitch | well catching a TypeError could obscure a TypeError bug inside the adapter | 20:19 |
aelkner | and as i explained, your UI should never be looking for ICourse(currentcourseinfo) if courses is empty | 20:19 |
fsufitch | ok | 20:19 |
aelkner | your view code need not have a bug that creates a CurrentCourseInfo wth no courses | 20:20 |
fsufitch | it doesn't :) | 20:20 |
aelkner | about your point about catching bugs in an adapter | 20:20 |
fsufitch | and actually a CurrentCourseInfo with no courses should never even make it into the database | 20:21 |
fsufitch | since "title" is required, and it needs courses to get its title | 20:21 |
aelkner | so you see my point | 20:21 |
fsufitch | yeah | 20:21 |
fsufitch | actually now i think about it, the '' is actually a placeholder from when that restriction was *not* in place | 20:21 |
aelkner | but understand that returning None in an adapter is the same as failing witin the adapter | 20:21 |
aelkner | unfortunately, zope doesn't tell you the difference | 20:21 |
fsufitch | ^^ that's what i was trying to solve, trying to tell the difference myself :) | 20:22 |
aelkner | you can't, so don't try :) | 20:22 |
fsufitch | :( | 20:22 |
aelkner | i spent hours once trying to figure out why i couldn't adapt using one of schooltool core's adapters | 20:22 |
aelkner | i saw the adpater existed, the code looked good, the registration and everything | 20:23 |
aelkner | it was not until i pdb stepped that i saw that it had a bug that raised an exception | 20:23 |
aelkner | which results in the adapter returning None, or as you say a TypeErro xception | 20:23 |
aelkner | that's just the way zope works with adpaters | 20:24 |
aelkner | you need them to be well coded and unit tested | 20:24 |
fsufitch | right | 20:24 |
aelkner | and otherwise, just trust them :) | 20:24 |
fsufitch | ok :) | 20:24 |
aelkner | so anyway, adapting ICourse(info with no courses) should fail, so you can unit test that | 20:25 |
fsufitch | will do | 20:25 |
aelkner | grep schooltool core for Exception | grep txt to see examples of testing for exceptions | 20:25 |
aelkner | unless you already have done that before | 20:25 |
fsufitch | what about for an adapter like IPublishedCourseInfo(currentcourseinfo)? | 20:26 |
fsufitch | in that case it's possible that it is *not* found | 20:26 |
aelkner | that's ok, from time to time (not always because assumptions are good to make most of the time) | 20:27 |
aelkner | you can code an adapter call as follows: | 20:27 |
aelkner | published = IPublishedCourseInfo(currentcourseinfo, None) | 20:27 |
aelkner | if published is None: | 20:27 |
aelkner | ... | 20:27 |
fsufitch | wait, a multiadapter? | 20:27 |
aelkner | to handle that case gracefully | 20:27 |
aelkner | no | 20:27 |
aelkner | adapting with the interface is always single adapting | 20:28 |
fsufitch | oh, you can always add a final argument to adapters that works as if this was a .get() call? | 20:28 |
aelkner | the second parameter is fallback | 20:28 |
fsufitch | oh wait, right | 20:28 |
fsufitch | you're right | 20:28 |
aelkner | like dictionary get | 20:28 |
fsufitch | i was being silly | 20:28 |
fsufitch | yes | 20:28 |
aelkner | np | 20:28 |
fsufitch | yay! that's the solution i was actually looking for | 20:28 |
fsufitch | i didn't know that worked | 20:28 |
aelkner | oh, and re: your discussion wth replaceafill regarding providedBy | 20:29 |
aelkner | definitely don't use it | 20:29 |
aelkner | yvl forbids it | 20:29 |
replaceafill | fsufitch zope.interface.interface.InterfaceBasePy.__call__ ;) | 20:29 |
aelkner | also, yes adapting to oneself wrks like a charm | 20:29 |
aelkner | replaceafill has fond the code that explains why :) | 20:29 |
aelkner | you can also take ones word for t like i did with yvl :) | 20:30 |
fsufitch | hehe | 20:30 |
fsufitch | okay | 20:30 |
aelkner | regarding the second point in my email | 20:31 |
aelkner | do you see what i meant | 20:31 |
fsufitch | yeah | 20:31 |
fsufitch | when i pass course_id in the url, i should just be passing the name | 20:31 |
fsufitch | though, by default, course_id == __name__ | 20:32 |
aelkner | right | 20:32 |
fsufitch | that's why i got confused | 20:32 |
aelkner | you can call it name in the view code | 20:32 |
aelkner | it's clear enough | 20:32 |
fsufitch | oh, and i forgot to utest new adapters, i need to do that | 20:33 |
fsufitch | :) | 20:33 |
aelkner | good thinking | 20:33 |
fsufitch | oh, and btw, i talked to dwelsh, and since none of the attributes of courseinfo are required anymore, he prefers i remove the add view altogether, and have courseinfo objects auto-vivify themselves upon adapting the ICourse | 20:34 |
aelkner | hmm | 20:35 |
fsufitch | and clicking the "Course Info" button just leads to the display view | 20:35 |
aelkner | an empty display view?! | 20:35 |
fsufitch | since the only required attributes are course_id, and title, both of which can be grabbed from the originating course | 20:35 |
fsufitch | well, why not? | 20:35 |
aelkner | yeah, as i think about it, it seems ok | 20:36 |
aelkner | and dwelsh already signed off on it, so ... | 20:36 |
fsufitch | makes it less confusing for the user too, since having both "add" and "edit" terms for something that is essentially an extension on Course can be confusing | 20:36 |
fsufitch | or so dwelsh said | 20:36 |
aelkner | he has a point | 20:36 |
aelkner | and these usability issues are top priority | 20:37 |
fsufitch | so, i guess i'm just going to code auto-vivification in the ICourse -> ICurrentCourseInfo adapter | 20:37 |
aelkner | right | 20:37 |
fsufitch | brb | 20:38 |
th1a | aelkner: I'm writing this script for dwelsh. | 20:42 |
th1a | I just need the url pattern for finding the report he needs if I have the section, year, etc. | 20:42 |
aelkner | th1a, ok, looking... | 20:43 |
fsufitch | back | 20:45 |
aelkner | fsufitch, i imagine you gathered that by making this auto-vivify assumption, you make the code a lot safer | 20:47 |
fsufitch | aelkner, yup | 20:47 |
aelkner | since the adapter always will set up the call to add(course) | 20:47 |
fsufitch | yup | 20:47 |
fsufitch | and CurrentCourseInfo can't be created any other way | 20:47 |
aelkner | th1a, fsufitch how does the user request this cando report again? | 20:47 |
aelkner | i can't even find any rml files in cando | 20:48 |
fsufitch | er... i'm not sure which report you're talking about | 20:48 |
th1a | The section archive ones. | 20:48 |
th1a | SHould I be asking replaceafill about this? | 20:48 |
th1a | Was this a replaceafill project? | 20:48 |
aelkner | so from ISection, 'Archive' ? | 20:48 |
aelkner | yes | 20:49 |
replaceafill | th1a what report do you need? | 20:49 |
th1a | The question is what dwelsh needs. | 20:49 |
aelkner | replaceafill, how to request the section archive | 20:49 |
aelkner | th1a is righting a loop script for all sections | 20:49 |
aelkner | and need to request the archive for each section | 20:49 |
aelkner | righting, duh, writing | 20:50 |
* replaceafill looks... | 20:50 | |
fsufitch | competency gradebook should have a "VA Section Report" button, according to configure.zcml | 20:50 |
aelkner | trying to type fast enough to simulate speech speed leads to many typing mistakes | 20:50 |
fsufitch | it's sectionreport.html | 20:50 |
aelkner | that would be it | 20:50 |
aelkner | no rml template? | 20:50 |
fsufitch | sectionreport.html for the competency gradebook | 20:50 |
aelkner | is this not a pdf? | 20:51 |
* fsufitch shrugs | 20:51 | |
fsufitch | i'm just saying what's in the configure :) | 20:51 |
fsufitch | no, the only pdfs are student report, and student certificate | 20:51 |
fsufitch | *student competency record | 20:51 |
th1a | OK, I'll double check with dwelsh. | 20:52 |
fsufitch | ok | 20:52 |
fsufitch | because this is definitely a HTML report | 20:52 |
replaceafill | if it's the section archive what you want you need "src_archive" | 20:52 |
aelkner | not necessary, i think VA Section Report sounds like the right link | 20:52 |
replaceafill | gradebook.SectionArchiveSCRView | 20:52 |
th1a | This is something people are downloading, so I'm confused about it being html. | 20:53 |
fsufitch | hmm | 20:53 |
fsufitch | gradebook/scr_archive exists | 20:53 |
replaceafill | th1a it's a pdf | 20:53 |
th1a | scr_archive is? | 20:53 |
fsufitch | should be scr_archive.pdf :) | 20:54 |
fsufitch | yes | 20:54 |
fsufitch | there is no link to it from the UI apparently? | 20:54 |
replaceafill | th1a yes | 20:54 |
fsufitch | unless it's in a template or something | 20:54 |
th1a | so, ...section/scr_archive ? | 20:54 |
fsufitch | ...section/gradeCompetencies/scr_archive | 20:55 |
fsufitch | it's on the gradebook, not on the section | 20:55 |
fsufitch | and wait, there is an interface link to it | 20:55 |
aelkner | fsufitch, you beat me to it :) | 20:56 |
fsufitch | grep powah :D | 20:56 |
replaceafill | nah! i wanted the user typing the full url... ¬¬ | 20:56 |
th1a | Basically I'm getting all the necessary id's from the .xls export. | 20:56 |
aelkner | replaceafill, why scr_archive with no .html after it? | 20:57 |
replaceafill | because it returns a pdf... | 20:58 |
fsufitch | why no .pdf after it? :) | 20:58 |
aelkner | it should have .pdf then | 20:58 |
replaceafill | run it and you'll see :) | 20:58 |
fsufitch | ohhh | 20:58 |
replaceafill | aelkner it generates a name for the pdf | 20:58 |
fsufitch | @property filename | 20:58 |
replaceafill | :) | 20:58 |
fsufitch | that's neat | 20:59 |
replaceafill | wait what!!!! no pdf!!! | 20:59 |
replaceafill | >:P | 20:59 |
fsufitch | note to self: use that other times | 20:59 |
fsufitch | the way i solved that problem in pybookbuilder before was by | 20:59 |
th1a | So... do I need the .pdf in the url? | 20:59 |
fsufitch | when the user needed to download a file at some/path/here, i would redirect them to some/path/here/thefile.png or whatever, to make sure they had the filename | 21:00 |
fsufitch | no, no pdf in url | 21:00 |
replaceafill | th1a you visit the url and you'll get a pdf with a generated name | 21:00 |
replaceafill | for download | 21:00 |
replaceafill | return "%s_%s_%s_%s.pdf" % (sy, state_course_code, local_course_code, section.__name__) | 21:01 |
replaceafill | yikes... | 21:01 |
fsufitch | :) | 21:02 |
replaceafill | the use case there was that dwelsh wanted to be able to visit many sections and save their individual pdfs | 21:02 |
th1a | eh? | 21:03 |
th1a | What's up with all the codes? | 21:03 |
replaceafill | :) so dwelsh can tell every pdf apart | 21:04 |
th1a | OK, someone has to give me a full description of what I have to do to generate the right url. | 21:04 |
replaceafill | 2010-2011__6670_1.pdf -> school year, no state course code, local: 6670, section id: 1 | 21:04 |
replaceafill | th1a just to to the section | 21:04 |
th1a | Oh, that's bullshit. | 21:05 |
replaceafill | and add '/gradeCompetencies/scr_archive | 21:05 |
aelkner | th1a, what do you have in a variable during your loop? | 21:05 |
aelkner | the section traversal? | 21:05 |
aelkner | if so, just add what replaceafill just said | 21:05 |
th1a | I was assuming that year, term, course, section, ID's would do it. | 21:05 |
replaceafill | you can use those to build the url, can't you? | 21:06 |
aelkner | the section knows all that, so all you need to the gradeCompetencies traversal adapter and then the view | 21:06 |
th1a | nobody is explaining this to me in an understandable way. | 21:06 |
th1a | I don't have the state course code. | 21:06 |
aelkner | answer my first question, then i'll explain | 21:07 |
aelkner | you have a loop, right | 21:07 |
replaceafill | th1a you dont need that!!! | 21:07 |
th1a | I don't have anything except those id's. | 21:07 |
th1a | I mean, I could take a completely different approach. | 21:07 |
* replaceafill thinks only one of us should explain this to th1a | 21:07 | |
th1a | I'm just trying to generate urls from id's. | 21:07 |
th1a | If I can't do that, I have to start over. | 21:07 |
aelkner | i see, you generated a list of ids by visiting container views? | 21:07 |
th1a | I'm using the xls export. | 21:08 |
aelkner | i agree you should be able to get this done from the ids | 21:08 |
aelkner | you have year id, term id, section id, right? | 21:08 |
th1a | Yes. | 21:08 |
aelkner | localhost/schoolyears/yead_id/term_id/sections/section_id | 21:09 |
aelkner | i beleive that gets you to the section, don't hold me to it unless i grok the config again | 21:09 |
th1a | But do I have to generate this crazy filename then? | 21:10 |
aelkner | you add /gradeCompetencies/scr_archive | 21:10 |
th1a | I guess that I can do some kind of mechanized browser session to grab the right link. | 21:10 |
aelkner | the whole thing (sorry) should be: | 21:11 |
aelkner | localhost/schoolyears/yead_id/term_id/sections/section_id/gradeCompetencies/scr_archive | 21:11 |
replaceafill | th1a can i speak? :) | 21:11 |
th1a | I didn't tell you to be quiet. | 21:11 |
replaceafill | ok thanks :) | 21:11 |
aelkner | yeah, who's stopping you | 21:12 |
replaceafill | aelkner you :) | 21:12 |
th1a | OK boys. | 21:12 |
replaceafill | th1a if you visit a url like that ^ | 21:12 |
aelkner | speak up, my good man! | 21:12 |
replaceafill | you'll get a download dialog to save the file, right? | 21:12 |
th1a | oh... | 21:12 |
th1a | Huh? | 21:12 |
replaceafill | i have no idea about what you're doing btw | 21:13 |
replaceafill | but | 21:13 |
th1a | I was just going to be using httplib | 21:13 |
replaceafill | ok | 21:13 |
replaceafill | you can do that | 21:13 |
replaceafill | just check the headers of the respoonse | 21:13 |
th1a | I wasn't going to do any simulated browsing at all. | 21:13 |
aelkner | oh | 21:13 |
aelkner | so httplib allows you to save the response as a file? | 21:14 |
replaceafill | i'd use urllib | 21:14 |
aelkner | with a simple call or something? | 21:14 |
replaceafill | urllib2 to be precise | 21:14 |
replaceafill | and check for Content-Disposition | 21:15 |
aelkner | th1a, is that what you're using? | 21:15 |
th1a | I haven't gotten that far yet. | 21:15 |
replaceafill | that header should bring a "filename=..." part | 21:15 |
th1a | I didn't know the url! | 21:15 |
th1a | But yes, probaby urllib2 | 21:15 |
replaceafill | ok, clear as mud then? | 21:16 |
replaceafill | :P | 21:16 |
aelkner | so replaceafill, the above url would be correct, right? | 21:16 |
replaceafill | yep | 21:16 |
th1a | I'll need to do basic auth? | 21:16 |
aelkner | yeah, that's the rub | 21:17 |
aelkner | how does one do that? | 21:17 |
th1a | It seems to be in urllib2. | 21:17 |
replaceafill | th1a i think you need to handle the session | 21:17 |
replaceafill | yep | 21:17 |
replaceafill | you can authenticate building the url, http://localhost/auth/login.html?username=foo&password=bar, but you need to save the cookie for future requests | 21:18 |
th1a | I don't HAVE TO, right? | 21:19 |
replaceafill | th1a why don't you go selenium :P | 21:19 |
replaceafill | ah! you have to give this to somebody else (dwelsh) :) | 21:19 |
th1a | End users have to be able to do this. | 21:19 |
th1a | Not just him. | 21:19 |
th1a | The other users. | 21:19 |
replaceafill | right, then python can do it | 21:20 |
replaceafill | aelkner "speak up, my good man!" lol | 21:22 |
aelkner | i wasn't wanting to speak :)))) | 21:24 |
replaceafill | :D | 21:24 |
aelkner | i'm just listening because i would have more questions than answers | 21:24 |
aelkner | another question, how to get the password from the user at the command line without it appearing in the command session | 21:25 |
th1a | Can I include the auth data just when requesting the pdf? | 21:25 |
replaceafill | th1a i think you'd be redirected to the auth form | 21:25 |
aelkner | userid should be a secret, too | 21:25 |
th1a | aelkner: That's not a requirement as far as I'm concerned. | 21:25 |
th1a | So I do need to keep the cookie then... hm. | 21:26 |
th1a | Maybe I can just use mechanize then. | 21:26 |
replaceafill | aelkner, can't you just include USER='' and PASSWORD='' in the script? | 21:26 |
replaceafill | and make the user to write the right credentials | 21:26 |
replaceafill | before running the script | 21:26 |
aelkner | you mean, the user edits the script to fill in those values? | 21:27 |
replaceafill | right | 21:27 |
aelkner | and only the user can see that file? | 21:27 |
aelkner | that could work | 21:27 |
* replaceafill goes to lunch | 21:31 | |
* th1a goes to lie down. | 21:32 | |
fsufitch | aelkner, ping | 21:36 |
fsufitch | nevermind, figured it out :) | 21:42 |
fsufitch | aelkner, so, course_id appears to be not required in schooltool.course.interfaces, so as part of your point number 2) i'm making it not required for courseinfo either | 21:47 |
fsufitch | so it appears that title is the only required attr, and that one is transparent to Course | 21:47 |
fsufitch | auto-vivification committed, along with the fixes you wanted :) | 21:54 |
fsufitch | next task: unit test overhaul to match the new adapters | 22:00 |
fsufitch | but no time today, i have to go to class | 22:00 |
*** menesis has joined #schooltool | 22:05 | |
replaceafill | menesis do you have the versions.cfg files in launchpad? | 22:06 |
replaceafill | schooltool.org is down :( | 22:06 |
replaceafill | and buildout fails | 22:06 |
*** fsufitch has quit IRC | 22:08 | |
menesis | :( | 22:10 |
menesis | replaceafill: yes, versions.cfg files are in https://launchpad.net/schooltool.release project | 22:10 |
replaceafill | excellent, thanks! | 22:10 |
*** menesis has left #schooltool | 22:11 | |
*** menesis has joined #schooltool | 22:11 | |
menesis | http://bazaar.launchpad.net/~schooltool-owners/schooltool.release/trunk/files | 22:11 |
menesis | download versions.cfg and edit buildout.cfg, change extends line to | 22:12 |
menesis | extends = versions.cfg | 22:12 |
menesis | downloads are also on schooltool.org... | 22:13 |
replaceafill | i hope my eggs cache works ;) | 22:14 |
menesis | have to use all branches | 22:14 |
menesis | yes buildout cache helps in this situation | 22:15 |
menesis | if you have a line in ~/.buildout/default.cfg | 22:16 |
menesis | extends-cache = /home/menesis/.buildout/extends | 22:16 |
menesis | then the files that are extended are also cached | 22:16 |
replaceafill | ah, btw, cando's Makefile has an incorrect rule | 22:17 |
replaceafill | build: bin/test | 22:18 |
replaceafill | should be: | 22:18 |
replaceafill | build: .installed.cfg | 22:18 |
replaceafill | or you get: | 22:18 |
replaceafill | make: *** No hay ninguna regla para construir el objetivo `bin/test', necesario para `build'. Alto. | 22:18 |
replaceafill | :D | 22:18 |
menesis | buildout works for me from the cache. if not, can try -N or -o (offline) flags | 22:18 |
* replaceafill hopes menesis' spanish is great | 22:18 | |
replaceafill | yes, the cache also works here :) | 22:19 |
menesis | there is an error while updating schooltool docs part | 22:19 |
menesis | have to comment out default.css line in buildout.cfg | 22:20 |
replaceafill | cando still doesnt have 'docs' :) | 22:20 |
menesis | yes but I tried another random branch | 22:21 |
menesis | all makefiles earlier had build: bin/test line | 22:21 |
menesis | but buildbot sometimes failed | 22:21 |
menesis | so I used .installed.cfg as a build stamp | 22:22 |
menesis | haven't built cando in a while | 22:22 |
menesis | but of course now that schooltool.org is down everything may have problems | 22:23 |
replaceafill | :) | 22:23 |
*** asharma_ has quit IRC | 22:23 | |
menesis | don't know what else can I do now | 22:28 |
menesis | waiting for an answer from admin who has access to the server | 22:29 |
menesis | hope its hard drive is not totally broken | 22:30 |
replaceafill | :| | 22:30 |
replaceafill | cando + schooltool_trunk break cando's skin | 22:37 |
replaceafill | because of the removal of ++resource++bugs.gif | 22:37 |
replaceafill | :/ | 22:37 |
*** alga has joined #schooltool | 22:40 | |
menesis | I have uploaded the Book to http://schooltool.pov.lt/book/ | 22:42 |
menesis | also, finally, uploaded developers documentation to http://schooltool.pov.lt/docs/ :) | 22:50 |
*** jelkner has quit IRC | 23:03 | |
*** jelkner has joined #schooltool | 23:05 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!