th1a | If I break a wrist I'll have to type one handed for a while. | 00:04 |
---|---|---|
*** aelkner has quit IRC | 00:50 | |
*** th1a has quit IRC | 00:50 | |
*** th1a has joined #schooltool | 00:57 | |
*** aelkner has joined #schooltool | 01:07 | |
replaceafill | aelkner little fix pushed to trunk, ""Moved username column to person table container view"" | 01:11 |
*** replaceafill has quit IRC | 03:15 | |
*** replaceafill has joined #schooltool | 04:43 | |
*** yvl has quit IRC | 05:08 | |
*** aks has joined #schooltool | 06:14 | |
*** aks has joined #schooltool | 06:14 | |
*** replaceafill has quit IRC | 07:20 | |
*** menesis has joined #schooltool | 11:20 | |
*** menesis has quit IRC | 12:41 | |
*** ignas has joined #schooltool | 13:25 | |
*** menesis has joined #schooltool | 13:39 | |
*** aks has quit IRC | 14:23 | |
*** menesis has quit IRC | 14:56 | |
*** menesis has joined #schooltool | 15:01 | |
*** replaceafill has joined #schooltool | 15:27 | |
*** ignas has quit IRC | 15:52 | |
th1a | replaceafill: Can you update the test server? | 16:28 |
replaceafill | th1a ok | 16:28 |
th1a | hi replaceafill, aelkner, menesis, yvl? | 16:30 |
replaceafill | test server updated with my changes and aelkner's | 16:31 |
th1a | I'm still seeing that preferences link. | 16:31 |
aelkner | morning all, where's yvl? | 16:31 |
th1a | Probably getting coffee. | 16:32 |
replaceafill | th1a ah right, i didnt include it in my branch | 16:32 |
replaceafill | will take it out | 16:32 |
replaceafill | gone | 16:33 |
th1a | Thanks. | 16:34 |
replaceafill | th1a i changed the links for submit buttons in the group view | 16:34 |
replaceafill | and styled them | 16:34 |
th1a | Why is Groups in the sidebar? | 16:34 |
replaceafill | oh, my bad, isn't supposed to be there? | 16:35 |
th1a | No. | 16:35 |
th1a | It is redundant. | 16:35 |
th1a | Use a much smaller button for Add/Delete. | 16:35 |
* menesis hi | 16:36 | |
replaceafill | th1a ah you mean Groups shouldn't be in the sidebar in the groups view, correct? | 16:36 |
replaceafill | but it should in the person view | 16:36 |
th1a | Shouldn't be in the sidebar at all. | 16:36 |
replaceafill | ah ok | 16:36 |
th1a | It is in the accordion. | 16:36 |
replaceafill | yes | 16:36 |
th1a | Related groups is from all years, correct? | 16:36 |
*** yvl has joined #schooltool | 16:37 | |
th1a | "Delete" should be "Remove" I think. | 16:37 |
replaceafill | Groups link gone | 16:37 |
yvl | crap | 16:37 |
yvl | netsplit | 16:37 |
yvl | morning guys! | 16:37 |
th1a | netsplit? | 16:37 |
th1a | Good evening, yvl. | 16:38 |
* yvl was all alone :/ | 16:38 | |
yvl | no th1a , no replaceafill, no aelkner... | 16:38 |
th1a | How long does it stay dark this time of year in Vilnius? | 16:38 |
yvl | dark? | 16:39 |
yvl | you mean sunrise/sunset? | 16:39 |
th1a | Yes. | 16:39 |
yvl | sun rises something like 4-5 AM | 16:39 |
yvl | and it get's dark around 11-12 PM | 16:39 |
th1a | Nice. | 16:39 |
* yvl agrees | 16:40 | |
th1a | yvl: How did things go today? | 16:40 |
yvl | it turned out to be a heavy plumbing day after all | 16:40 |
th1a | I figured. ;-) | 16:40 |
yvl | :) | 16:40 |
yvl | I made a LinkIdViewlet | 16:41 |
yvl | and bound preferences modal dialog with it | 16:41 |
yvl | in the sidebar | 16:41 |
* replaceafill updates the server with yvl's changes | 16:41 | |
yvl | then there was something else... | 16:41 |
yvl | ah, right | 16:41 |
yvl | aelkner's report links | 16:42 |
yvl | aelkner, you did quite well! | 16:42 |
aelkner | i tried :) | 16:42 |
yvl | for one, you made a small typo | 16:42 |
aelkner | i saw that just now | 16:42 |
yvl | Floursh....Manager | 16:42 |
aelkner | yep | 16:42 |
yvl | so, I added a small method for debugging | 16:43 |
yvl | <tal:block define="providers context/schooltool:content"> | 16:43 |
yvl | <p tal:content="python:list(sorted(providers.get_providers(direct=True, adapted=True).items()))" /> | 16:43 |
yvl | </tal:block> | 16:43 |
replaceafill | serve updated | 16:43 |
yvl | it's not convenient now, but that at least renders you | 16:43 |
yvl | the content providers that are available | 16:44 |
aelkner | cold you explain that part please | 16:44 |
yvl | sure | 16:44 |
yvl | context/schooltool:content | 16:44 |
yvl | gets you to the available content providers | 16:44 |
yvl | for the context and the view the template is for | 16:44 |
yvl | and instead of using some provider, like this: context/schooltool:content/schooltool.person.FlourishInfo | 16:45 |
yvl | you call get_providers | 16:45 |
yvl | that looks up every single content provider that is available inside that template | 16:46 |
yvl | now, there are two parameters | 16:46 |
yvl | direct and adapted | 16:46 |
yvl | direct means - show me providers that are registered with flourish: directives | 16:46 |
yvl | or implement flourish.interfaces.IContentProvider to be more precise | 16:46 |
yvl | our mechanism currently allows to use old content adapters, like we were doing with PersonInfo at the very beginning | 16:47 |
yvl | it basically looks up zope-style content providers | 16:47 |
th1a | replaceafill: Can you check in the TODO.txt file? | 16:47 |
yvl | and proxies them to behave like flourish content providers | 16:47 |
th1a | add it. | 16:47 |
replaceafill | th1a ah ok | 16:47 |
yvl | you can put flags like direct=False, adapted=True to see what old-style content providers are available | 16:48 |
yvl | or you can put both to true, to get the whole available set | 16:48 |
aelkner | where is this small template you listed above? | 16:49 |
yvl | get_providers returns a dict, hence the .items() part | 16:49 |
yvl | aelkner, this is just a snippet I just came up with | 16:49 |
aelkner | not yet committed? | 16:49 |
yvl | I put it temporarily into some template | 16:49 |
yvl | when I want to look at the list of adapters | 16:50 |
replaceafill | th1a added | 16:50 |
th1a | replaceafill: Thanks. | 16:50 |
yvl | I probably should add some handy debug shorcut | 16:51 |
yvl | was too busy, so just did the basics | 16:51 |
yvl | aelkner, | 16:51 |
yvl | just put it somewhere in some template | 16:51 |
yvl | and probably use .keys instead of .items | 16:52 |
yvl | here's an example of what is available in main.pt in flourish package: | 16:52 |
yvl | [u'', u'actions', u'breadcrumbs', u'header_navigation', u'label', u'link', u'page_content', u'page_navigation', u'page_refine', u'page_related', u'schooltool.Actions', u'schooltool.ActionsMenu', u'schooltool.CSS', u'schooltool.CalendarEvent', u'schooltool.CalendarPortlet', u'schooltool.Header', u'schooltool.JavaScript', u'schooltool.ManageMenu', u'schooltool.MenuBar', u'schooltool.NavigationMenu', u'schooltool.ReportLinks', u'schooltool.SchoolYearMenu', u' | 16:52 |
yvl | schooltool.person.Info', u'secondary_navigation', u'title'] | 16:52 |
yvl | you can see old providers, like schooltool.CSS fall in | 16:53 |
yvl | and here's a list of our new providers only: | 16:53 |
yvl | [u'', u'actions', u'breadcrumbs', u'header_navigation', u'label', u'link', u'page_content', u'page_navigation', u'page_refine', u'page_related', u'secondary_navigation', u'title'] | 16:53 |
yvl | you know, I'll definitely add some shortcut tomorrow | 16:54 |
yvl | ok, moving on | 16:54 |
yvl | I didn't finish fixing report links yet | 16:54 |
aelkner | yvl, can we talk about this more after the meeting? | 16:55 |
yvl | sure | 16:55 |
yvl | basically I'd like for report:reportLink to stay in report namespace | 16:55 |
yvl | and not do the flourishReportLink or whatever directives | 16:55 |
yvl | so I'll finish that after this meeting | 16:56 |
yvl | did most of the grunt work already | 16:56 |
aelkner | looking forward to seeing it :) | 16:56 |
yvl | it should pick up the already registered report link directives | 16:56 |
yvl | aelkner - just so you know | 16:57 |
yvl | you made quite an impression today ;) | 16:57 |
aelkner | how so? | 16:57 |
th1a | In figuring out the weirdness? | 16:57 |
* yvl was pleasantly surprised with the code | 16:57 | |
yvl | yeah | 16:57 |
th1a | Good news. | 16:58 |
aelkner | even a broken clock is right twice a day :) | 16:58 |
th1a | I can cancel my conference call with the Indian outsourcing company. | 16:58 |
yvl | you're not a broken clock, aelkner ;) | 16:58 |
yvl | so... further plans | 16:58 |
yvl | basically I'll do more plumbing | 16:59 |
yvl | I want to do json serialization | 16:59 |
replaceafill | yvl table formatters!!! | 16:59 |
replaceafill | :) | 16:59 |
yvl | and little js moving here and there | 16:59 |
yvl | for the preferences modal dialog | 16:59 |
yvl | and the date picker widget | 16:59 |
th1a | You can do some wizardry too. | 16:59 |
* yvl looked a bit into that | 17:00 | |
th1a | Promising? | 17:00 |
th1a | Or Pain? | 17:00 |
yvl | well, hard to tell | 17:00 |
yvl | I mean - it is promising | 17:01 |
yvl | but I'm not sure if we end up needing jquery wizzards at all in most cases | 17:01 |
yvl | want to experiment a bit first | 17:01 |
*** dadeng_ has joined #schooltool | 17:01 | |
yvl | I mean - do some plumbing in that direction, then it'll be easier to see | 17:01 |
th1a | The main thing is that the timetable thing was never a real wizard because you couldn't go back/cancel. | 17:02 |
th1a | So if we could get those features without too much pain, it would be nice. | 17:02 |
* yvl agrees | 17:02 | |
th1a | OK. | 17:03 |
th1a | aelkner: Do you need things to do? | 17:03 |
aelkner | depends if i'm going to be blocked waiting for yvl or working with him | 17:04 |
* yvl should finish the work in ~2 hours after the sprint | 17:04 | |
yvl | maybe 1h | 17:04 |
yvl | if I'm lucky :D | 17:04 |
yvl | it's one of those cases where writing code is faster than explaining what I'm doing ;) | 17:05 |
aelkner | so perhaps i will be able to continue on after that with the actual table rendering for that view | 17:05 |
aelkner | yvl, that's fine, i can wait for the code befreyou explain | 17:05 |
yvl | cool | 17:05 |
aelkner | just as long as you don't go away right away | 17:06 |
th1a | aelkner: One quick little outstanding task on the TODO is making sure all the accordion sections have "This person has no..." messages when empty. | 17:06 |
yvl | (btw, how do you guys like link id="LinkIdViewlet-page_refine-person-settings-links-preferences-"? ;) ) | 17:06 |
th1a | e.g., contacts to now. | 17:06 |
replaceafill | yvl :| | 17:06 |
aelkner | yvl, haven't had a chance to look at it, but will be interested | 17:07 |
th1a | contacts DO now. | 17:07 |
aelkner | is the preferences button wired to the modal dialog now? | 17:07 |
yvl | yes, manually | 17:07 |
yvl | sorry for interruption, th1a | 17:07 |
th1a | np | 17:08 |
th1a | anyhow, aelkner, you can do that if you need to keep busy. | 17:09 |
th1a | replaceafill: How are relationship views coming? | 17:09 |
replaceafill | i have a few questions for yvl | 17:09 |
replaceafill | yvl http://69.164.203.135:6660/persons/alvaro/groups.html | 17:09 |
replaceafill | the old model used checkboxes, right? | 17:09 |
replaceafill | with a submit button below | 17:10 |
yvl | yes | 17:10 |
replaceafill | and used a table formatter for that | 17:10 |
replaceafill | so, every column in the formatter used only (item, formatter) as usual | 17:10 |
* yvl listens | 17:11 | |
replaceafill | i couldnt find a way to insert the appropriate "Delete" "Add" button withouth knowing the whole set of items | 17:11 |
replaceafill | in the column | 17:11 |
replaceafill | so, i attached the view to the formatter :( | 17:11 |
replaceafill | and in the column i could do: | 17:11 |
replaceafill | if item in formatter.view.availableItems() | 17:12 |
replaceafill | and such | 17:12 |
replaceafill | this felt wrong :( | 17:12 |
replaceafill | also | 17:12 |
replaceafill | yesterday i found that our table formatter really uses a zc.table table formatter for rendering | 17:12 |
yvl | yes :D | 17:13 |
replaceafill | so i tried to implement this without our table formatter | 17:13 |
replaceafill | yvl http://bazaar.launchpad.net/~replaceafill/schooltool/flourish/revision/2910 | 17:14 |
replaceafill | dont like it either :( | 17:14 |
yvl | ah, thank you for the code | 17:14 |
* yvl looks | 17:14 | |
replaceafill | yvl loot at the XXX at the bottom of group.py | 17:14 |
replaceafill | and i used the @Lazy decorator for the items and school years list | 17:15 |
yvl | replaceafill, I am somewhat curious | 17:16 |
yvl | why didn't you use a column in the same way the CheckBoxColumn is used/ | 17:16 |
yvl | ? | 17:16 |
replaceafill | yvl what do you mean? | 17:17 |
yvl | ok, let me put it this way | 17:17 |
yvl | why do you need the view? | 17:17 |
yvl | to get an unique button key, right? | 17:17 |
replaceafill | yes | 17:17 |
yvl | cool | 17:18 |
yvl | if you looked at implementation of CheckBoxColumn | 17:18 |
yvl | in table/table.py I think | 17:18 |
yvl | it has an id_getter parameter | 17:18 |
yvl | you could write a SomethingButtonColumnOrOther that behaves this way | 17:18 |
yvl | also | 17:19 |
replaceafill | yvl but the submit needs a value too | 17:20 |
yvl | you can look at contact/browser/relationship.py | 17:20 |
replaceafill | with the string "Delete" or "Add" | 17:20 |
replaceafill | depending if the item is in the relationsihp or not | 17:20 |
yvl | you do have two talbes now, right? | 17:20 |
replaceafill | yes | 17:20 |
yvl | for two separate sets of items | 17:20 |
yvl | related | 17:20 |
yvl | and available for relation | 17:21 |
replaceafill | yes | 17:21 |
yvl | populate one with buton column that says Delete | 17:21 |
yvl | and other that says Add | 17:21 |
replaceafill | two different columns? | 17:21 |
yvl | add title to you ActionColumn | 17:21 |
yvl | yes | 17:21 |
replaceafill | duh! | 17:21 |
replaceafill | :D | 17:21 |
yvl | ActionColumn(title="Add"..) :) | 17:22 |
replaceafill | duh moment ;) | 17:22 |
yvl | and for the form key | 17:22 |
yvl | grep for IUniqueFormKey | 17:22 |
yvl | it's messy IIRC | 17:22 |
yvl | and you probably can't use it out-of-the-box | 17:23 |
replaceafill | ah ok | 17:23 |
yvl | but the adapter generates unique keys for this exact case | 17:23 |
replaceafill | is it possible to get the items back from the key? | 17:23 |
replaceafill | i mean, when handling the request parameters | 17:24 |
yvl | well, yes, but you don't need to | 17:24 |
yvl | you have a list of items and their unique keys | 17:24 |
yvl | go through that list | 17:24 |
yvl | and look if any of them are in request | 17:24 |
replaceafill | the reverse of what i've done | 17:24 |
replaceafill | right | 17:24 |
replaceafill | last question yvl | 17:25 |
replaceafill | do you think we should stick to the old edit relationship view | 17:25 |
yvl | you might want to look at contact/browser/relationship.py | 17:25 |
replaceafill | i mean with all its logic | 17:25 |
replaceafill | and methods | 17:25 |
replaceafill | because here, i tried to simplify, but was not happy with the result :( | 17:26 |
yvl | well, we do need some common view for this | 17:26 |
yvl | but | 17:26 |
yvl | I'm not sure if you want to inherit any of our views directly | 17:26 |
yvl | I remade it from scratch in contact/browser/relationship.py | 17:27 |
replaceafill | ah ok, i'll look at that module | 17:27 |
yvl | it's not pretty | 17:27 |
yvl | but the thing is, we don't have a decent base now | 17:27 |
*** dadeng_ has quit IRC | 17:27 | |
yvl | so if it's easier to write from scratch - do that | 17:28 |
replaceafill | ok thanks yvl | 17:28 |
th1a | I guess this is the week we come back to earth and fix the plumbing. | 17:30 |
th1a | OK, so you have things to do too, replaceafill? | 17:31 |
replaceafill | yes | 17:31 |
th1a | Can I push my TODO changes directly to trunk? | 17:32 |
th1a | merge? | 17:33 |
yvl | you should be able to | 17:33 |
yvl | if you do a checkout you can commit directly | 17:33 |
th1a | As opposed to a branch? | 17:33 |
yvl | let's say yes | 17:34 |
yvl | if you just did the | 17:34 |
yvl | bzr branch XXXXXXX/schooltool/flourish | 17:34 |
yvl | then you can just do the | 17:34 |
yvl | bzr bind lp:~schooltool-owners/schooltool/flourish | 17:34 |
yvl | and it will be considered a checkout | 17:34 |
yvl | then just use bzr up | 17:34 |
th1a | ah. | 17:34 |
yvl | and bzr ci | 17:34 |
th1a | bzr up! | 17:35 |
th1a | up does what? | 17:35 |
th1a | update? | 17:35 |
yvl | yes | 17:35 |
th1a | upload? | 17:35 |
yvl | update | 17:35 |
th1a | pulls or pushes? | 17:35 |
yvl | its same as bzr update | 17:35 |
yvl | pulls | 17:36 |
th1a | kk | 17:36 |
yvl | bzr ci | 17:36 |
yvl | is same as bzr commit | 17:36 |
yvl | please be careful not to merge other changes | 17:36 |
th1a | I will. | 17:36 |
yvl | like thos to buildout.cfg you might have made | 17:36 |
yvl | bzr commit TODO.txt should do the trick | 17:36 |
yvl | and bzr diff | 17:37 |
th1a | I have a clean branch. | 17:37 |
yvl | go to the root folder, where setup.py and Makefile is | 17:37 |
yvl | create a TODO.txt file | 17:37 |
yvl | bzr add TODO.txt | 17:37 |
yvl | bzr commit TODO.txt | 17:37 |
th1a | replaceafill added it already. | 17:37 |
replaceafill | yes | 17:38 |
yvl | ah, ok then | 17:38 |
yvl | so bzr st or bzr status shows if you have changes | 17:38 |
yvl | bzr diff shows the changes themselves | 17:38 |
yvl | just a reminder | 17:38 |
th1a | OK, see if you get the changes. | 17:39 |
aelkner | replaceafill, is this in trunk? i just merged and i don't see it | 17:39 |
yvl | got them | 17:39 |
replaceafill | th1a me too | 17:39 |
aelkner | replaceafill, never mond | 17:39 |
aelkner | i see it now | 17:39 |
th1a | Make sure and note there when you start something. | 17:39 |
th1a | Things that are unassigned any of you can do. | 17:40 |
yvl | please don't forget to do bzr up before modifying | 17:41 |
yvl | conflicts are a b*tch | 17:41 |
replaceafill | :D | 17:41 |
aelkner | sounds like a movie line :) | 17:42 |
menesis | FYI I made "flourish" series so you can use lp:schooltool/flourish shortcut | 17:42 |
yvl | :D | 17:42 |
yvl | thanks menesis ! | 17:42 |
yvl | gravel time, th1a ? :) | 17:44 |
*** asharma has joined #schooltool | 17:48 | |
th1a | Sorry, dwelsh called me. | 17:48 |
* th1a drops the bag of gravel. | 17:48 | |
* yvl takes a break, then - on to report links | 17:49 | |
aelkner | yvl, so an hour or so, and then we look at some code together? | 17:49 |
yvl | sure, aelkner | 17:49 |
aelkner | cool, thanks | 17:49 |
* replaceafill goes to get some breakfast | 17:51 | |
th1a | replaceafill! | 17:51 |
th1a | One thing. | 17:51 |
th1a | Make sure both tables' columns are aligned. | 17:51 |
th1a | In the relationship view. | 17:52 |
replaceafill | th1a ah yes | 17:52 |
replaceafill | th1a question | 17:52 |
replaceafill | do you want the group titles to be links? | 17:52 |
replaceafill | like in the accordions? | 17:52 |
th1a | Yes... | 17:52 |
replaceafill | school year titles? | 17:52 |
th1a | I guess theoretically it would be nice for these to be popups since you don't necessarily really want to leave the page. | 17:53 |
th1a | But we'll leave that for now. | 17:53 |
replaceafill | :) | 17:53 |
th1a | That sounds like a good way to never finish the project. | 17:53 |
replaceafill | :)) | 17:53 |
th1a | Well, maybe for the sake of consistency the years could be links. | 17:54 |
th1a | Why not. | 17:54 |
replaceafill | ok | 17:54 |
* th1a goes to run some errands. | 18:20 | |
th1a | I think we got the sprintiest part of the sprint done before everyone started switching over to summer mode. | 18:20 |
replaceafill | :) | 18:20 |
replaceafill | hey! after and before take multiple values!!! | 18:46 |
* replaceafill was wondering how to set viewlets positions taking into account plugins :) | 18:49 | |
yvl | :D | 18:49 |
replaceafill | yvl, that's the way, correct? | 18:49 |
yvl | yes | 18:49 |
replaceafill | i set two values | 18:49 |
replaceafill | one for the plugin and one for core | 18:49 |
yvl | it should work | 18:49 |
replaceafill | nice! | 18:49 |
yvl | and ignore unknown values | 18:50 |
yvl | if it does not work, it's a bug | 18:50 |
* replaceafill disables intervention to test ;) | 18:50 | |
replaceafill | yay! | 18:51 |
aelkner | replaceafill, are you working with plugins? | 18:51 |
aelkner | i thought we were working on the flourish branch of core which is a mass undertaking in itself | 18:52 |
aelkner | is this something for cambodia? | 18:53 |
replaceafill | made a small commit to flourish trunk and flourish.intervention trunk | 18:53 |
replaceafill | aelkner no, we have plugin packages for flourish | 18:53 |
replaceafill | flourish.gradebook, flourish.journal, flourish.intervention | 18:54 |
replaceafill | aelkner if you look at the testing instance you will see the tabs at the top | 18:54 |
replaceafill | another small push to flourish trunk, "Fixed self-closing div and removed jstree from person view template" | 18:59 |
yvl | allright | 19:12 |
yvl | aelkner, report links work now | 19:12 |
yvl | I sent you an email with the diff that is probably worth looking at | 19:13 |
yvl | that's the essence of changes I made | 19:13 |
aelkner | yvl, one sec | 19:15 |
yvl | sure | 19:15 |
yvl | let me got some coffee | 19:15 |
* replaceafill thinks we should use the subtitle viewlet for "Student Reports" | 19:17 | |
replaceafill | to get "<h1>Tom Hoffman</h1> <h2>Student Reports</h2>" | 19:18 |
aelkner | yvl, sorry, i know you need to go after we talk, so i didn't mean to hold you up | 19:18 |
aelkner | i was having an important phone call | 19:18 |
yvl | I understand | 19:18 |
aelkner | looking at code now... | 19:18 |
yvl | aelkner, if it's ok, look at the diff I sent you | 19:20 |
yvl | it's easier to see what files I changed | 19:20 |
yvl | and I can explain the changes file-by-file | 19:20 |
aelkner | ok, i looked over the diff quickly, go ahead | 19:21 |
yvl | or - doh! - http://bazaar.launchpad.net/~justas-pov/schooltool/flourish/revision/2885 | 19:21 |
yvl | same diff, highlited properly | 19:21 |
aelkner | the diff as file is not so bad actually | 19:21 |
yvl | thanks :) | 19:21 |
yvl | so, src/schooltool/basicperson/browser/flourish.zcml | 19:21 |
aelkner | the diff viewer is color | 19:21 |
yvl | right! | 19:21 |
yvl | I removed "flourish" report link registration there | 19:22 |
yvl | as I also removed the directive itself | 19:22 |
yvl | it now uses all the registrations we have already | 19:22 |
yvl | for example persons now have... | 19:23 |
yvl | [server is booting up] | 19:23 |
yvl | * Student Detail Report | 19:23 |
yvl | * Student Report Card | 19:23 |
yvl | next, src/schooltool/report/browser/flourish.zcml | 19:24 |
yvl | and src/schooltool/report/browser/report.py | 19:24 |
yvl | flourish.page.Page | 19:24 |
yvl | can have it's own content_template | 19:24 |
yvl | so I removed FlourishReportsInfo, and set the template directly | 19:25 |
yvl | viewlets for "schooltool.skin.flourish.page.IPageContentManager" | 19:25 |
yvl | are intended to be registered | 19:25 |
yvl | when you want to put more things on the same page | 19:25 |
yvl | say, plugins can add their own info on somebodys home.html | 19:26 |
yvl | or such | 19:26 |
yvl | src/schooltool/report/browser/templates/f_report_links.pt : | 19:26 |
yvl | I fixed the typo | 19:26 |
yvl | also, used context/schooltool:content convention | 19:26 |
yvl | I strongly prefer it to provider: | 19:27 |
yvl | src/schooltool/report/configure.zcml | 19:27 |
yvl | made the old report links manager specific to SchoolToolLayer | 19:27 |
yvl | src/schooltool/report/meta.py : | 19:27 |
yvl | (and meta.zcml | 19:28 |
yvl | ) | 19:28 |
yvl | removed flourishReportLinks directive | 19:28 |
yvl | and made reportLinkDirective to register for IDefaultBrowserLayer | 19:28 |
yvl | and IReportLinkViewletManager | 19:28 |
yvl | this makes the report links common to both SchoolToolLayer and FlourishLayer | 19:28 |
yvl | finally, I also needed to src/schooltool/report/report.py | 19:29 |
*** menesis has quit IRC | 19:29 | |
yvl | IFlourishReportLinkViewletManager inherit from IReportLinkManager | 19:29 |
yvl | so the essence of the changes | 19:29 |
yvl | is that reportLink directives register for common things | 19:30 |
yvl | but there are two different report link manager implementations | 19:30 |
yvl | one renders for old SchoolTool look | 19:30 |
yvl | the other - FlourishReportLinkViewletManager - | 19:31 |
yvl | renders for our new look | 19:32 |
yvl | it has a f_report_link_manager.pt template you added | 19:32 |
yvl | so if you, say, want the report links to render as a table | 19:32 |
yvl | you should change f_report_link_manager.pt to render a table | 19:32 |
aelkner | ok, i'll take this moment to ask something | 19:33 |
yvl | sure | 19:33 |
* yvl is done | 19:33 | |
aelkner | oh, good timing then :) | 19:33 |
aelkner | first off, yay on not needing a new directive, so much is saved there | 19:34 |
aelkner | i know that i need the table in the report links viewlet manager, but how about the viewlets | 19:34 |
aelkner | that are registered against the base interface? | 19:35 |
aelkner | here's the thing | 19:35 |
aelkner | the old skin manager/viewlet relationship was simple | 19:35 |
aelkner | manager rendered the shell | 19:35 |
aelkner | the zope manager base rendered the viewlets | 19:36 |
aelkner | the vewlets themselves were only responsible for rendering a link fro themselves | 19:36 |
aelkner | now i will need something else | 19:37 |
aelkner | i need access to the viewlets first | 19:37 |
aelkner | they need to have a new property called type which i will have to add to reportLink directive | 19:37 |
aelkner | but anyway, i need to gather in all the viewlets and sort them by type | 19:37 |
aelkner | and then display the table with heading/subheadings as per the guidelines | 19:38 |
yvl | ah, that hopefully shouldn't be too hard | 19:38 |
aelkner | i just need the line of code to get the viewlets into a variable | 19:38 |
yvl | so | 19:39 |
yvl | if you look at f_report_link_manager.pt | 19:39 |
aelkner | the manager class can have a table() property that does the work of gathering the viewlets | 19:39 |
yvl | you can see it uses view/viewlets | 19:39 |
aelkner | so i can just say self.viewlets? | 19:39 |
yvl | the FlourishReportLinkViewletManager is the said view | 19:39 |
yvl | view is the self - the manager | 19:39 |
yvl | so in the manager, yes, you can say that | 19:40 |
aelkner | cool, that helps | 19:40 |
aelkner | no line of code needed then :) | 19:40 |
aelkner | so for adding the type to reportLink | 19:40 |
aelkner | you inderstand what th1a wantes there, right? | 19:40 |
aelkner | you and i could work out a list of possible types right here | 19:41 |
aelkner | for instance: | 19:41 |
aelkner | pdf, xml, csv, ...? | 19:41 |
yvl | I see | 19:41 |
yvl | also xls | 19:41 |
aelkner | right | 19:42 |
aelkner | so the table will group the subheaded sections according to type | 19:42 |
aelkner | what would the sub-heading look like for a given type? | 19:42 |
aelkner | PDF reports | 19:43 |
aelkner | CSV reports | 19:43 |
yvl | probably | 19:43 |
aelkner | the type uppercase with reports after it? | 19:43 |
yvl | actually I would ask th1a about the naming | 19:43 |
aelkner | i could start with that until th1a suggests otherwise | 19:43 |
yvl | I think yes | 19:43 |
aelkner | your thoughts on the directive? | 19:43 |
aelkner | is type a good name for the new attribute? | 19:43 |
yvl | not very | 19:44 |
yvl | type is reserved in python | 19:44 |
yvl | file_type | 19:44 |
yvl | or report_type | 19:44 |
aelkner | funny i 'felt' your hesitation half way around the world :) | 19:44 |
yvl | :D | 19:44 |
yvl | teamwork! :D | 19:44 |
aelkner | file_type seems appropriate | 19:44 |
yvl | let's go with that | 19:44 |
aelkner | since that is what we are talking about here | 19:44 |
yvl | yes | 19:45 |
aelkner | ok, agreed | 19:45 |
yvl | and just look at how "description" is added in the directive | 19:45 |
yvl | and do the same | 19:45 |
aelkner | btw, did you push to trunk? | 19:45 |
yvl | and please don't neglect to update RegisteredReportsUtility | 19:45 |
yvl | yes | 19:46 |
aelkner | i should merge now real quick before i let you go | 19:46 |
yvl | sure | 19:46 |
yvl | by the way, feel free to treat that viewlet manager like any other view | 19:47 |
yvl | it has update, render and template | 19:47 |
yvl | just that if you override those methods, you'll need to call base classes | 19:47 |
yvl | at least for update! | 19:47 |
aelkner | ok, good, that's simple enough | 19:47 |
aelkner | yes, the update part i already have experience with, so that's no problem | 19:48 |
yvl | it also has "filter" method | 19:48 |
aelkner | aren't the viewlets already filtered? | 19:48 |
yvl | if you need to additionaly remove some viewlets | 19:48 |
yvl | yes, by security | 19:48 |
aelkner | that's what the zope base class does | 19:48 |
aelkner | right | 19:48 |
yvl | also | 19:48 |
yvl | viewlets can have before, after and required attributes | 19:49 |
yvl | we don't use that for report links now | 19:49 |
yvl | but manager base methods also use those | 19:49 |
aelkner | some day i want you to explain before after and the code you wrote to handle them | 19:49 |
aelkner | but now is not the time | 19:49 |
yvl | allright | 19:49 |
aelkner | maybe later in the week | 19:49 |
aelkner | but for now, i will add file_type and see how it goes | 19:50 |
yvl | sure | 19:50 |
replaceafill | yvl you home? | 19:50 |
replaceafill | :) | 19:50 |
yvl | nope, replaceafill | 19:50 |
yvl | @ work | 19:50 |
replaceafill | ah ok | 19:50 |
replaceafill | will ask you tomorrow then :) | 19:51 |
yvl | you can ask now | 19:51 |
aelkner | yvl, so i believe our work is done here, i can let you go | 19:51 |
yvl | great | 19:51 |
yvl | good luck aelkner | 19:51 |
aelkner | thanks for the quick fixes | 19:52 |
aelkner | they help a lot | 19:52 |
yvl | and if anything, don't hesitate to email, as always | 19:52 |
aelkner | will do | 19:52 |
yvl | I just hope they make things simpler | 19:52 |
aelkner | sure looks that way | 19:52 |
yvl | replaceafill, any last words? ;) | 19:52 |
replaceafill | yvl no, let you go | 19:53 |
yvl | well ok then | 19:53 |
yvl | happy coding, guys! | 19:53 |
aelkner | thanks, have a good one | 19:53 |
yvl | thanks | 19:53 |
*** menesis has joined #schooltool | 20:49 | |
*** asharma has quit IRC | 22:06 | |
*** replaceafill has quit IRC | 22:07 | |
*** replaceafill has joined #schooltool | 22:16 | |
*** menesis has quit IRC | 22:42 | |
*** menesis has joined #schooltool | 23:05 | |
*** jelkner has joined #schooltool | 23:36 | |
*** menesis has quit IRC | 23:37 | |
jelkner | th1a, can i use this channel at 3 pm tomorrow? | 23:37 |
jelkner | i want to get jboisture, replacefill, mattva01, and i together to check in on progress with pyquiz | 23:38 |
jelkner | (oops misspelled replaceafill :-( | 23:38 |
replaceafill | :) | 23:39 |
jelkner | replaceafill, have you seen th1a here recently? | 23:39 |
jelkner | i just tried calling him at home | 23:39 |
jelkner | but no answer | 23:39 |
replaceafill | not since this morning | 23:39 |
jelkner | will you all be meeting here at 3 pm tomorrow? | 23:39 |
jelkner | i'm looking for a time when you are not meeting | 23:40 |
replaceafill | as far as i know, there's no meeting at that time | 23:41 |
jelkner | ok, i'm going to take a chance | 23:41 |
jelkner | i'll cc th1a so he can complain if it isn't a good idea | 23:42 |
jelkner | can you meet at that time? | 23:42 |
jelkner | briefly | 23:42 |
jelkner | i just want to check in with jboisture | 23:42 |
replaceafill | sure, i'll be around | 23:42 |
jelkner | and give him some idea of when he will work with you on the xml-rpc stuff | 23:42 |
jelkner | cool | 23:42 |
jelkner | we have another teacher acting as active customer | 23:42 |
jelkner | so i have more stories on the client side | 23:43 |
jelkner | but we still need to begin thinking about the authentication | 23:43 |
jelkner | thanks, replaceafill talk to you tomorrow then... | 23:43 |
replaceafill | see you jelkner | 23:43 |
*** jelkner has quit IRC | 23:43 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!