*** jelkner has joined #schooltool | 00:12 | |
*** jelkner has quit IRC | 00:13 | |
*** menesis has quit IRC | 01:48 | |
*** replaceafill has quit IRC | 04:41 | |
*** menesis has joined #schooltool | 10:49 | |
*** magespawn has quit IRC | 12:15 | |
*** menesis has quit IRC | 12:31 | |
*** menesis has joined #schooltool | 12:32 | |
*** replaceafill has joined #schooltool | 13:16 | |
*** menesis has quit IRC | 13:18 | |
*** menesis has joined #schooltool | 13:26 | |
*** yvl has quit IRC | 13:36 | |
th1a | hi menesis, replaceafill, aelkner. | 15:31 |
---|---|---|
replaceafill | good morning/afternoon | 15:31 |
aelkner | morning | 15:31 |
th1a | OK, let's talk a little about goals for the next release. | 15:32 |
th1a | The April release. | 15:32 |
th1a | I am hoping to get this reports update into a 2.3 update. | 15:33 |
*** replaceafill has quit IRC | 15:33 | |
th1a | Before Christmas. | 15:33 |
th1a | Beyond that, we have to get 2.4 done early, and we've got a number of things not entirely digested from the summer, | 15:34 |
th1a | so to us this isn't going to seem like a lot in 2.4. | 15:34 |
th1a | But it will be the big architectural change that yvl has put into motion. | 15:34 |
th1a | The more I look at JuJu the more it makes sense to push that at the same time. | 15:35 |
th1a | Unfortunately there doesn't seem to already be a lot of the relevant charms for are various pieces. | 15:35 |
*** replaceafill has joined #schooltool | 15:35 | |
replaceafill | (sorry, my laptop froze) | 15:36 |
th1a | np | 15:36 |
th1a | You know how to find the logs. ;-) | 15:36 |
replaceafill | :D | 15:36 |
th1a | So we also have per skill score systems, | 15:36 |
th1a | I'd like to get the year statuses in. | 15:36 |
th1a | Some fixes to report sheets. | 15:37 |
th1a | Maybe the read-only role. | 15:37 |
th1a | Those are the things on my board right now. | 15:37 |
th1a | Reports and imports going asynchonously. | 15:37 |
th1a | Oh! Also I have the usability review from Schwa. | 15:38 |
th1a | I'm not even going to get into that until we finish the reports, but there are some good ideas there. | 15:38 |
th1a | So that's probably more than we can get to right there. | 15:38 |
th1a | Then, like this year, the big drive for an October release, which I think I'll announce right now will just be released to the PPA in October like we did this year. | 15:39 |
th1a | The one long cycle, one short one works pretty well for us. | 15:39 |
th1a | menesis: Do you know where yvl is? | 15:40 |
menesis | menesis: no | 15:41 |
th1a | Anyhow, questions? | 15:41 |
th1a | That make sense? | 15:41 |
menesis | I haven't seen yvl's celery changes | 15:42 |
replaceafill | is schwa's review on their basecamp? | 15:42 |
menesis | and how to make that work in ubuntu | 15:42 |
replaceafill | i don't remember that email, maybe i have it already... | 15:42 |
th1a | replaceafill: it is on basecamp. | 15:43 |
replaceafill | ah ok | 15:43 |
th1a | menesis: You and yvl are going to have to get synced up on it. | 15:43 |
th1a | It will be a big update for you. | 15:43 |
menesis | true | 15:43 |
menesis | I saw that working on yvl's laptop | 15:43 |
th1a | It seems like a good fit for JuJu. | 15:44 |
menesis | and all the new dependencies are in Ubuntu | 15:44 |
menesis | about the short/long cycle | 15:45 |
menesis | that was only my fault | 15:45 |
menesis | that I haven't uploaded in time | 15:46 |
th1a | Well, we were still adding stuff. | 15:46 |
menesis | Done button changes came late | 15:47 |
menesis | but it was possible to make release on time | 15:47 |
th1a | Well, I need to leave more lead time. Anyhow... | 15:48 |
th1a | menesis: Would you like to go first? | 15:49 |
menesis | I have uploaded 2.3 to Raring today | 15:49 |
menesis | and renewed membership in my ubuntu teams, that have been expiring | 15:50 |
menesis | looked at trystack as you suggested, but they only offer ARM server as I see | 15:51 |
menesis | don't know what to do with that yet | 15:51 |
menesis | will only start reading about clouds/juju today | 15:52 |
th1a | I tried getting it running locally yesterday. | 15:52 |
menesis | btw, tomorrow is an All saints holiday in Lithuania | 15:52 |
th1a | https://juju.ubuntu.com/docs/getting-started.html | 15:53 |
menesis | will be away | 15:53 |
th1a | Yes, I remember menesis. Thanks. | 15:53 |
menesis | don't think there's anything else to report | 15:54 |
th1a | I got stuck with this: http://askubuntu.com/questions/134977/juju-stuck-in-pending-state-when-using-lxc | 15:54 |
menesis | th1a: what charm you planned to play with? | 15:55 |
menesis | service | 15:55 |
th1a | Wordpress with mysql was the example. | 15:55 |
th1a | I'm a little confused by the fact that there is no Apache charm. | 15:55 |
replaceafill | http://jujucharms.com/~gnuoy/precise/apache2 | 15:56 |
menesis | maybe apache is not required | 15:58 |
th1a | Perhaps not for wordpress. | 15:58 |
th1a | I guess apache just wasn't in the main repository. | 15:59 |
menesis | we use schooltool without apache | 15:59 |
th1a | Right, but we really want people to use Apache, don't we, to get port 80 and SSL? | 15:59 |
menesis | yes | 16:00 |
menesis | have to see it running | 16:00 |
menesis | maybe apache is implicit | 16:01 |
th1a | Well, my point is that with JuJu, we should be able to do: | 16:01 |
th1a | juju deploy schooltool | 16:01 |
th1a | juju deploy apache2 | 16:01 |
th1a | juju add-relation schooltool apache2 | 16:01 |
th1a | Then | 16:01 |
th1a | juju deploy openldap (which unfortunately doesn't seem to exist) | 16:02 |
th1a | juju add-relation schooltool-openldap | 16:02 |
th1a | etc. | 16:02 |
th1a | At least that's the way I'm understanding it at this point. | 16:02 |
menesis | yes I understand that's what we want to achieve | 16:03 |
th1a | OK. Cool. | 16:05 |
th1a | All right, thanks menesis. | 16:06 |
th1a | replaceafill? | 16:06 |
replaceafill | ok | 16:06 |
replaceafill | i finished the validation fix for the score student view | 16:06 |
replaceafill | also the student competency record view change | 16:07 |
replaceafill | both now use table formatters | 16:07 |
replaceafill | which makes them easy to modify | 16:07 |
replaceafill | (i added a couple of columns to a custom view for schooltool quiz) :) | 16:07 |
replaceafill | i also investigated the problem when deleting sections | 16:08 |
replaceafill | it's a problem with relationships, but i don't know how to fix it | 16:08 |
replaceafill | when you delete the section | 16:08 |
replaceafill | a subscriber in cando is called | 16:08 |
replaceafill | which is registered to react when the course changes | 16:09 |
replaceafill | since the section is "unrelated" from the course | 16:09 |
replaceafill | the course changes | 16:09 |
replaceafill | and the subscriber fires up | 16:09 |
replaceafill | i should probably file a bug and assign it to yvl | 16:10 |
replaceafill | he's better with relationship stuff :( | 16:10 |
replaceafill | i can only think of some "if ..." comparison which i'm not sure if it's appropriate | 16:11 |
replaceafill | i also have a question about jquery | 16:11 |
th1a | So they can't delete sections at all right now? | 16:11 |
replaceafill | th1a, correct | 16:12 |
th1a | OK. Well, bear in mind that yvl is off the rest of the week. | 16:12 |
replaceafill | ah | 16:12 |
replaceafill | ok | 16:12 |
replaceafill | i'll try my best to get a decent fix :) | 16:12 |
replaceafill | and add some nice XXX ;) | 16:13 |
*** magespawn has joined #schooltool | 16:13 | |
replaceafill | i'll save my jquery question for monday | 16:13 |
replaceafill | since it's not urgen | 16:13 |
replaceafill | t | 16:13 |
replaceafill | and | 16:13 |
replaceafill | i'm leaving for toronto next week | 16:14 |
replaceafill | wednesday | 16:14 |
replaceafill | i'm attending pycon canada | 16:14 |
replaceafill | giving a talk about schooltool | 16:14 |
replaceafill | i plan to work normally on the week though | 16:14 |
th1a | Right. | 16:14 |
replaceafill | the conference is during the weekend | 16:14 |
replaceafill | th1a, maybe we can touch base on friday about IEP UI? | 16:15 |
th1a | OK. Yes. | 16:15 |
replaceafill | cool | 16:15 |
replaceafill | that's it from me | 16:15 |
th1a | Thanks replaceafill. | 16:16 |
th1a | aelkner? | 16:16 |
aelkner | ok, still working on modifying yvl's catalog-based aggregate table | 16:17 |
aelkner | to include the layers checkboxes in the search | 16:17 |
aelkner | was hoping to ask yvl questions about the catalog logic, but i guess i'll have to figure it out on my own | 16:17 |
aelkner | i think i will be able to though | 16:18 |
aelkner | nothing else to report at this point | 16:18 |
th1a | OK. | 16:19 |
th1a | I guess that's it. Can you send yvl an email, aelkner? | 16:19 |
aelkner | yes, i'll try to get any answers i need via email | 16:20 |
replaceafill | ah!!! | 16:20 |
replaceafill | events provide interfaces!!! | 16:20 |
replaceafill | that's the solution | 16:20 |
replaceafill | (sorry for interrupting) | 16:20 |
replaceafill | th1a, maybe the fix is easier than i thought | 16:21 |
th1a | OK, good. | 16:21 |
th1a | Doesn't seem like it should be hard. ;-) | 16:21 |
replaceafill | :D | 16:22 |
th1a | OK, thanks guys. | 16:23 |
th1a | Happy Halloween and All Saints Day. | 16:24 |
th1a | Have a nice week and weekend! | 16:24 |
* th1a drops the bag of gravel. | 16:24 | |
replaceafill | thanks everybody | 16:24 |
aelkner | thanks guys, have a great weekend | 16:24 |
*** yvl has joined #schooltool | 16:28 | |
th1a | yvl: We're still on DST. ;-) | 16:30 |
yvl | right | 16:30 |
yvl | hi :) | 16:30 |
th1a | aelkner has some questions. | 16:30 |
replaceafill | hey yvl is here! | 16:30 |
* replaceafill too | 16:30 | |
yvl | gimme a sec to read the logs | 16:31 |
replaceafill | th1a, when do you change your time? | 16:31 |
replaceafill | last week of nov? | 16:31 |
th1a | Uh... soon? | 16:32 |
yvl | ok | 16:34 |
yvl | th1a, can we undrop the bag of gravel for 10 minutes? ;) | 16:34 |
th1a | yes | 16:34 |
* th1a picks up the bag of gravel. | 16:34 | |
th1a | Do we have aelkner? | 16:34 |
yvl | :D | 16:34 |
replaceafill | :| | 16:34 |
aelkner | ah, yvl's here | 16:34 |
yvl | ok, I'll just quickly update, and then we'll go with the questions :) | 16:35 |
yvl | there's (not finished) branch at bzr+ssh://bazaar.launchpad.net/~justas-pov/schooltool/reports/ | 16:35 |
yvl | if you guys are curiuos | 16:36 |
yvl | there's PDFPage | 16:36 |
yvl | we now have flourish:pdf directive (to register the PDF views) | 16:36 |
yvl | also, a small but important feature | 16:37 |
yvl | in zcml, you can prepend xml: before the template file name | 16:37 |
yvl | that sets the content_type of the template to text/xml | 16:38 |
yvl | and it is required for reports | 16:38 |
yvl | so there are viewlets that look like this: content_template="xml:templates/something.pt" | 16:38 |
yvl | also, I think we should move pdf templates to a separate folder "reports" | 16:39 |
yvl | hmm, what else... | 16:39 |
yvl | there are some interesting templates, like pdf_colors.pt | 16:40 |
yvl | it will contain the default color scheme | 16:40 |
yvl | pdf_default_page_styles.pt - it's like the page.css | 16:40 |
yvl | the pdfs themselves are split into many viewlets, much like our flourished pages | 16:41 |
th1a | yvl: If you could just send me the outputs of anything interesting you have, that would be helpful. | 16:41 |
th1a | The pdf's. | 16:41 |
yvl | nothing interesting for you, th1a :/ | 16:41 |
yvl | I have a pdf that almost looks like the one replaceafill made | 16:42 |
yvl | almost | 16:42 |
yvl | so it was just plumbing | 16:42 |
th1a | ok | 16:42 |
yvl | but it's shaping up pretty well | 16:42 |
yvl | it seems we'll end up with something we should be able to bake reports on rather quickly | 16:43 |
yvl | so feel free to look at the code | 16:43 |
yvl | for now, I'll be "remaking" section roster | 16:44 |
yvl | (as in - I'll do that Monday) | 16:44 |
replaceafill | yvl, i have a report request for you :) | 16:45 |
yvl | listening | 16:45 |
replaceafill | could you give us something to "translate" table formatters into reports :) | 16:45 |
yvl | I was thinking about that | 16:45 |
yvl | do you think that would be useful? | 16:46 |
replaceafill | well | 16:46 |
replaceafill | i just love table formatters :D | 16:46 |
yvl | :D | 16:46 |
replaceafill | and i know | 16:46 |
replaceafill | two va reports that will need it | 16:46 |
replaceafill | and they already use table formatters | 16:46 |
yvl | hmm, ok | 16:47 |
yvl | I'd guess it's some 4-12 hours worth of dev | 16:47 |
replaceafill | i've been going lately from "huge update in view class" to nice small table formatter components | 16:47 |
replaceafill | and the reuse is priceless :) | 16:48 |
yvl | allright then | 16:48 |
yvl | I think th1a won't mind | 16:48 |
replaceafill | i may be "abusing" them, but... | 16:48 |
replaceafill | th1a, please! | 16:48 |
th1a | It sounds like a good idea to me. | 16:48 |
replaceafill | it will save us time | 16:48 |
yvl | kk | 16:48 |
replaceafill | ah ok :) | 16:48 |
replaceafill | thanks! | 16:48 |
th1a | THe less re-writing between print and html the better. | 16:48 |
yvl | great | 16:49 |
yvl | so all in all it was more plumbing than I expected -- but not a tar pit | 16:49 |
yvl | btw, th1a | 16:50 |
yvl | are we going to just rewrite the existing reports | 16:50 |
yvl | or are we putting some amount of new ones in? | 16:51 |
th1a | We're going to write new ones, too. | 16:51 |
yvl | great | 16:51 |
yvl | I'd appreciate if you shared -- at least some abstract list -- of what the new reports could be | 16:52 |
* yvl is pretty sure they are obvious to th1a, but not so obvious to yvl ;) | 16:52 | |
th1a | Some abstract list. :-D | 16:52 |
th1a | No, I should write down the actual list. | 16:52 |
th1a | I was thinking about that yesterday. | 16:53 |
th1a | OK, I'll send that out today. | 16:53 |
yvl | thanks! | 16:53 |
yvl | and please add a short description for reports you guess I know nothing about :) | 16:54 |
th1a | Sure. | 16:54 |
yvl | section roster - obvious, report card... well, not so much | 16:54 |
yvl | allright then | 16:55 |
* yvl done :) | 16:55 | |
yvl | time for Q&A :D | 16:55 |
aelkner | ok, i have questions | 16:56 |
yvl | listening | 16:56 |
aelkner | AggregateNodesTableFilter has a filter routine | 16:56 |
aelkner | in it, you have a for catalog in self.catalog: index = catalog[self.search_index] | 16:56 |
aelkner | which basically means, iterate over node, skillset and skill catalogs and get the 'text' index | 16:57 |
aelkner | apply the query built from the contents of the search field | 16:57 |
yvl | right | 16:57 |
aelkner | now, that confuses me, the nodes catalog, for instance, is an attribute catalog | 16:58 |
aelkner | so it has indeces for label, description, etc. | 16:58 |
aelkner | then you added a 'text' and two layers-related indeces in the constructor | 16:58 |
yvl | yes | 16:59 |
aelkner | so why are you only interested in the 'text' index in the filter method | 16:59 |
aelkner | and how does work, i put in a search for the word 'virtual', and got a skill whose description had it | 16:59 |
aelkner | even though the title didn't, how did that happen? | 16:59 |
aelkner | how does the searchable text index work i guess is partly what i'm asking | 17:00 |
yvl | ok | 17:00 |
yvl | so there is a class called SearcheableTextnode | 17:00 |
yvl | in model.py | 17:00 |
yvl | it adapts a Node | 17:00 |
yvl | and is used to build a set of words, separated by spaces | 17:01 |
aelkner | ah, i see now | 17:01 |
yvl | text index indexes those words | 17:01 |
aelkner | that includes the layer titles i see | 17:02 |
yvl | yes | 17:02 |
aelkner | but not the __name__ | 17:02 |
aelkner | and what about the two indeces, 'layers' and 'layer_titles'? | 17:02 |
aelkner | where do they come in? | 17:02 |
yvl | they are not used at the moment | 17:03 |
aelkner | so should SearchableTextNode be changed to include the __name__ of the layers? | 17:03 |
yvl | but if one wanted to make the Layer column sortable -- anywhere -- layer_titles would be the index to use | 17:04 |
yvl | aelkner, definitely not | 17:04 |
yvl | you do not want to search for layer __name__ from the search box | 17:04 |
yvl | it is auto-generated | 17:04 |
*** menesis has quit IRC | 17:04 | |
aelkner | well, i need to change the filter method to include the layers that the user checked | 17:05 |
yvl | ah | 17:05 |
aelkner | query is built using: query = buildQueryString(self.request['SEARCH']) | 17:05 |
yvl | so here you can use the 'layers' index | 17:05 |
aelkner | and i noticed it took the contents of the search box and added an * to it | 17:06 |
yvl | yes?.. | 17:07 |
aelkner | so you're saying i won't be wanting to add the checked layers to query? | 17:07 |
yvl | I don't think so | 17:07 |
aelkner | but rather, have a separate call to the apply() method of the layers index? | 17:08 |
yvl | probably | 17:08 |
yvl | I actually don't remember the syntax | 17:09 |
yvl | but the principle is, that you need to get the intersection of doc_ids from search query | 17:09 |
yvl | and from layers query | 17:09 |
aelkner | i see the set() logic there, so that should be no problem | 17:10 |
yvl | right | 17:10 |
aelkner | i'm ust wondering what i need to pass to the apply() method if the user wants nodes that are | 17:10 |
aelkner | for any one of a list of layers | 17:10 |
aelkner | or do i need to take a different approach | 17:11 |
aelkner | for instance, i looked at the values_to_documents attrbute and say the two keys, 'cluster' and 'course' | 17:12 |
aelkner | saw | 17:12 |
yvl | I really don't remember now | 17:12 |
aelkner | do i want to write my own logic for looping through values_to_documents and compare to the list of layers | 17:12 |
yvl | let's table it, I'll check and get back to you | 17:13 |
yvl | there should be query or something | 17:13 |
yvl | probably | 17:13 |
replaceafill | yvl, isn't the {'any_of': ....} logic? | 17:13 |
yvl | yes | 17:13 |
yvl | something like this | 17:13 |
replaceafill | that should be applied | 17:13 |
th1a | yvl: I'd rather not table it until Monday. | 17:13 |
yvl | no, table it for 10 minutes ;) | 17:13 |
replaceafill | see zc/catalog/setindex.txt | 17:13 |
yvl | unles replaceafill remembers :) | 17:13 |
replaceafill | i think that's the doc | 17:14 |
aelkner | replaceafill, thanks, i looked at the code, but didn't think to look at the tests | 17:14 |
yvl | right, they have it documented! :D | 17:14 |
aelkner | how about that! that's a nice change | 17:15 |
th1a | Tests! | 17:15 |
aelkner | ok, much better, thanks | 17:15 |
aelkner | now i have a comment | 17:15 |
aelkner | yvl, you really got after me about a year back about using providedBy | 17:15 |
replaceafill | :D | 17:16 |
* replaceafill saw this one coming ;) | 17:16 | |
yvl | but you do notice the difference in usage ;) | 17:16 |
aelkner | so i've been using if ISomeInterface(object, None) s not None | 17:16 |
aelkner | to replace it | 17:16 |
aelkner | didn't notice a difference in the usage | 17:16 |
yvl | :/ | 17:17 |
yvl | (btw - yes, that case is a hack) | 17:17 |
aelkner | you mean that you should have done the adapt and test for is None? | 17:18 |
yvl | I mean the code should be such that you didn't have that problem | 17:18 |
aelkner | have what problem? | 17:18 |
yvl | of needing ISomething.providedBy | 17:18 |
yvl | 99% of the cases you want to use it indicate that the code should be redesigned there | 17:19 |
yvl | or refactored if you will | 17:19 |
yvl | a static filter of a catalog is somewhat of a gray area though | 17:19 |
yvl | hacks are hacks, but I didn't want to make an aggregating catalog | 17:20 |
yvl | and the filters are static anyway | 17:20 |
yvl | and it's not like you'll ever want to make anything pluggable there | 17:20 |
aelkner | what about the idea of simply changing the code as i suggested, using adapter and test for is not None? | 17:21 |
yvl | and it's not like when you change stuff catalog needs to be reindexed completely, so I would question the whole idea of plugability in filters | 17:21 |
yvl | well, there's a catch with that | 17:21 |
yvl | if some thing that is not ISomething is passed there, but you can adapt it to ISomething -- your test will pass | 17:22 |
yvl | persons become contacts, for example | 17:22 |
yvl | IIRC | 17:22 |
yvl | and None becomes a SchoolToolApplication | 17:23 |
yvl | ISchoolToolApplication.providedBy(None) -> False | 17:23 |
yvl | ISchoolToolApplication(None) is not None -> True | 17:23 |
yvl | what I'm saying -- I would avoid it for "is a" checks | 17:24 |
yvl | but if you need "can be adapted to" checks, it's ok | 17:24 |
aelkner | well, i've been doing that for a long time now, ever since you yelled repeatedly about using providedBy | 17:24 |
aelkner | and you didn't complain about the is not None logic | 17:24 |
aelkner | i've been it many, many times | 17:24 |
yvl | missed that completely somehow | 17:25 |
yvl | no problem, I'll review those later | 17:25 |
aelkner | ok, enough said, just thought i'd ask | 17:25 |
yvl | aelkner, do you remember where you used such expressions? | 17:25 |
yvl | thanks for bringing this up, aelkner! | 17:26 |
yvl | as in | 17:26 |
yvl | core? | 17:26 |
yvl | gradebook? | 17:26 |
yvl | cando? | 17:26 |
aelkner | um, i'm thinking gradebook mostly, but i'd have to check | 17:26 |
yvl | I probably missed some commits to gradebook | 17:27 |
yvl | (maybe even a lot) | 17:27 |
aelkner | gradebook/browser/gradebook.py | 17:27 |
aelkner | return interfaces.ISectionJournalData(section, None) is not None | 17:27 |
replaceafill | cando/browser/document.py | 17:28 |
replaceafill | if INode(self.context, None) is not None: | 17:28 |
yvl | well, now the journal data check is good and well | 17:29 |
yvl | you check if journal can be obtained from section | 17:29 |
aelkner | course/browser/section.py:1647 | 17:29 |
aelkner | if IEquipment(r, None) is not None | 17:29 |
yvl | the Equipment thing is more questionable | 17:30 |
aelkner | ok, grepping core and gradebook combined for this yields a lot less results than i expected | 17:30 |
yvl | you are asking there: if equipment can be deduced from this resource | 17:31 |
yvl | in our current data model, this will work fine | 17:31 |
yvl | if somebody makes a new resource though | 17:31 |
aelkner | i need to know if the resource is a location or equiptment | 17:31 |
yvl | some resource you can adapt to Location or Equipment | 17:31 |
aelkner | in the past, i would have used provideBy | 17:31 |
aelkner | but i stopped using that | 17:32 |
aelkner | because you told me it was a great sin | 17:32 |
replaceafill | :D | 17:32 |
aelkner | so you can see why i would tease you about using it yourself :) | 17:32 |
yvl | ;) | 17:33 |
yvl | ok, so the resources fall on gray line | 17:33 |
yvl | the journal data check is great | 17:33 |
yvl | my hacks are acceptable :P | 17:33 |
aelkner | :) | 17:33 |
aelkner | ok, you have spoken, thine will be done... | 17:34 |
yvl | YES! | 17:34 |
yvl | :D | 17:34 |
aelkner | ok, so that's all the questions i had | 17:34 |
aelkner | can i reach you at all for the rest of the week, friday? | 17:34 |
yvl | probably not :/ | 17:35 |
aelkner | ok, np, thanks for your answers | 17:35 |
yvl | I hope it helps | 17:35 |
replaceafill | yvl, i have a couple of questions | 17:36 |
yvl | and I wish I could explain clearly where to use the adaptation and where you should avoid it | 17:36 |
yvl | sure, replaceafill | 17:36 |
replaceafill | ok, we have a problem deleting sections now, right? | 17:36 |
replaceafill | http://bazaar.launchpad.net/~schooltool-owners/schooltool.cando/trunk/revision/124 | 17:36 |
replaceafill | could you explain the reason of the IRelationshipRemovedEvent subscriber there | 17:36 |
replaceafill | currently, when you delete the section | 17:37 |
replaceafill | that subscriber gets fired | 17:37 |
replaceafill | and the init_id utility fails to find the section anymore | 17:37 |
yvl | what if I said it was a bug? | 17:38 |
yvl | and an accident :) | 17:38 |
replaceafill | the subscriber? | 17:38 |
yvl | and that I should be more careful copy-pasting stuff in the future? | 17:38 |
replaceafill | :D | 17:39 |
yvl | yes | 17:39 |
replaceafill | i kind of felt it was like that | 17:39 |
yvl | no need to update on Remove event | 17:39 |
replaceafill | because i can't find a reason | 17:39 |
replaceafill | for it | 17:39 |
yvl | there is none :) | 17:39 |
replaceafill | cool, it should get fixed by removing it | 17:39 |
replaceafill | (i think) | 17:39 |
yvl | yes - thanks! | 17:39 |
replaceafill | np | 17:39 |
replaceafill | ok, second question | 17:39 |
replaceafill | i've been using some table formatters | 17:40 |
replaceafill | with custom renderHeaders method | 17:40 |
replaceafill | like the one in the app/browser/app/CSSFormatter | 17:40 |
replaceafill | (i'm not sure about the name) ;) | 17:40 |
replaceafill | the one that gives you "th.skill", "th.foobar", classes | 17:41 |
replaceafill | and so on | 17:41 |
replaceafill | do you mind if we add that to the default table formatter in schooltool.table.ajax? | 17:41 |
replaceafill | i think it doesn't hurt, right? | 17:41 |
replaceafill | and all our tables would have classes in their headers at least | 17:42 |
yvl | if you can point me to the code | 17:42 |
replaceafill | sure, hold on | 17:42 |
yvl | if you're talking about what I think you're talking about, then +1 | 17:42 |
replaceafill | app.browser.app.CSSFormatter | 17:42 |
replaceafill | i've used it in: | 17:42 |
replaceafill | http://bazaar.launchpad.net/~schooltool-owners/schooltool.cando/trunk/revision/133 | 17:43 |
replaceafill | CanDoGradeStudentTableFormatterBase | 17:43 |
replaceafill | and in virginia too iirc | 17:43 |
replaceafill | it's mostly when i need to apply widths | 17:43 |
replaceafill | to the columns | 17:43 |
replaceafill | that's the approach i use | 17:43 |
yvl | ah, ok | 17:44 |
yvl | feel free to do this in trunk | 17:44 |
replaceafill | great | 17:44 |
replaceafill | will do | 17:44 |
replaceafill | the other one | 17:44 |
replaceafill | is about visible columns | 17:44 |
replaceafill | i've been relying lately on invisible ones :) | 17:44 |
replaceafill | for sorting mostly | 17:44 |
replaceafill | i use one localeaware column | 17:45 |
replaceafill | which i don't show | 17:45 |
replaceafill | because i group stuff by it | 17:45 |
replaceafill | and visible_column_names is a standard zc.table parameter | 17:45 |
replaceafill | could we add it to trunk too? | 17:45 |
replaceafill | i think it's the only one missing from the renderTable call | 17:46 |
replaceafill | you can see CanDoGradeStudentTableBase in the link above | 17:46 |
replaceafill | oops | 17:46 |
replaceafill | i pasted the wrong link :( | 17:46 |
replaceafill | http://bazaar.launchpad.net/~schooltool-owners/schooltool.cando/trunk/revision/133/src/schooltool/cando/browser/gradebook.py | 17:46 |
replaceafill | sorry | 17:46 |
yvl | np | 17:47 |
replaceafill | i set visible_column_names in the Table class and pass it to renderTable | 17:47 |
replaceafill | not very important | 17:47 |
replaceafill | just curious that is not included in the default call | 17:48 |
yvl | there was no reason to include it many years ago I would think | 17:48 |
replaceafill | :) | 17:48 |
replaceafill | maybe there's no reason yet ;) | 17:48 |
* yvl shrugs | 17:48 | |
replaceafill | i'll let it go :) | 17:48 |
replaceafill | ok | 17:48 |
replaceafill | last one | 17:48 |
yvl | but feel free to add that into core | 17:49 |
replaceafill | i needed to create an input tag | 17:49 |
replaceafill | <input type="text" name="foo" /> | 17:49 |
replaceafill | and pass some parameters that i could get in jquery | 17:49 |
replaceafill | at first i was doing something like | 17:49 |
replaceafill | <input type="text" name="part1.part2" /> | 17:49 |
replaceafill | and splitting in jquery | 17:50 |
replaceafill | which is obviously fragile/wrong/sin | 17:50 |
replaceafill | :D | 17:50 |
yvl | bad replaceafill | 17:50 |
replaceafill | then i thought about jquery's data(...) | 17:50 |
yvl | yes: http://api.jquery.com/jQuery.data/ | 17:50 |
replaceafill | what do you think of a template | 17:50 |
replaceafill | spitting: | 17:50 |
replaceafill | <input type="text" name="foo" data-part1="..." data-part2="..." /> | 17:51 |
replaceafill | and having jquery use data(...) to get those attrs? | 17:51 |
yvl | or you could write a more cumbersome and ugly template :) | 17:51 |
replaceafill | :| | 17:51 |
yvl | one that on document.ready puts the .data on the element | 17:52 |
replaceafill | i wanted to take advantage of the cell_formatter | 17:52 |
yvl | $('foo').data('part1', 'PART') | 17:52 |
yvl | $('foo').data('part2', 'ANOTHER PART') | 17:53 |
replaceafill | hhmm | 17:53 |
replaceafill | a separate call using table.items | 17:53 |
replaceafill | right? | 17:53 |
yvl | probably | 17:53 |
replaceafill | yes, that's cleaner | 17:53 |
replaceafill | ok, i have get rid of some sins ;) | 17:54 |
replaceafill | thanks yvl | 17:54 |
* replaceafill done | 17:54 | |
yvl | :)) | 17:55 |
yvl | ok, hope it helped | 17:55 |
replaceafill | it did, thanks | 17:55 |
th1a | Anything else, gentlemen? | 17:55 |
replaceafill | nothing from me | 17:55 |
yvl | apologies for missing the meeting, 16:30 is baked as meeting time in my head | 17:57 |
th1a | np yvl. | 17:57 |
* th1a re-drops the bag of gravel. | 17:57 | |
yvl | see you guys Mon :) | 17:58 |
th1a | Have a good break. | 17:58 |
yvl | Happy Halloween | 17:58 |
yvl | :) | 17:58 |
aelkner | great break yvl | 17:58 |
yvl | thanks guys | 18:00 |
*** yvl has quit IRC | 18:00 | |
*** paulproteus has quit IRC | 18:02 | |
*** th1a_iPhone has joined #schooltool | 18:03 | |
*** paulproteus has joined #schooltool | 18:07 | |
*** th1a_iPhone has quit IRC | 18:08 | |
*** th1a_iPhone has joined #schooltool | 19:24 | |
th1a | th1a_iPhone, ping | 19:24 |
th1a | th1a_iPhone, ping | 19:25 |
th1a | th1a_iPhone, ping | 19:44 |
th1a | hm... | 19:44 |
th1a | th1a_iPhone, ping | 19:44 |
th1a | th1a_iPhone, ping | 19:45 |
th1a | th1a_iPhone, ping | 19:45 |
th1a | th1a_iPhone, ping | 19:45 |
th1a | th1a_iPhone, ping | 19:45 |
th1a | I'm a little unclear on when this times me out... | 19:45 |
th1a | Let's see... | 19:47 |
*** th1a_iPhone has quit IRC | 19:55 | |
th1a | replaceafill: What did we call the last old version of CanDo? | 21:50 |
th1a | CanDo 2011? | 21:50 |
replaceafill | yes | 21:51 |
replaceafill | from one of dwelsh's google doc: | 21:52 |
replaceafill | "CanDo2012 is going to look differently than CanDo2011." | 21:52 |
*** replaceafill has quit IRC | 22:11 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!