*** replaceafill has quit IRC | 00:19 | |
*** menesis has quit IRC | 14:35 | |
*** menesis has joined #schooltool | 15:25 | |
*** menesis has joined #schooltool | 15:26 | |
*** amithkk has quit IRC | 15:38 | |
*** amithkk has joined #schooltool | 15:59 | |
*** replaceafill has joined #schooltool | 16:20 | |
th1a | hi menesis, yvl, aelkner, replaceafill. | 16:30 |
---|---|---|
yvl | good morning | 16:30 |
menesis | hi | 16:30 |
replaceafill | good morning/afternoon | 16:31 |
aelkner | morning | 16:31 |
th1a | OK, let's start with replaceafill. | 16:31 |
replaceafill | ok | 16:31 |
replaceafill | i fixed the cando gradebook to sort activities by label | 16:32 |
replaceafill | i'm now fixing the score student view | 16:32 |
replaceafill | where validation doesn't work | 16:33 |
*** khildin has joined #schooltool | 16:33 | |
replaceafill | i also investigated a 404 reported yesterday by jelkner | 16:33 |
replaceafill | if the section doesn't have any skills associated, students get a 404 for their grades | 16:34 |
replaceafill | there is no mygrades view for projects either | 16:34 |
replaceafill | i think there should be one, right? | 16:35 |
aelkner | that would be consistent | 16:35 |
khildin | Q: is 2.3 also available for lucid? | 16:35 |
th1a | replaceafill: yes. | 16:35 |
replaceafill | ok | 16:36 |
th1a | khildin: We have a handy table: http://book.schooltool.org/release-notes.html | 16:36 |
replaceafill | yesterday i helped dwelsh to set up joe youcha's server | 16:36 |
replaceafill | for the building to teach courses | 16:36 |
replaceafill | i imported their skills too | 16:36 |
replaceafill | they're going to use projects a lot apparently | 16:37 |
replaceafill | so i hope we get some good feedback | 16:37 |
khildin | well... I saw 1.6 was for lucid and I have 2.1 running... (in this table it shows 2.1 is developer version) | 16:37 |
khildin | so I was a bit confused | 16:37 |
menesis | khildin: no, not for lucid. | 16:37 |
replaceafill | yvl, i have a question about how to handle IEP | 16:37 |
yvl | listening | 16:38 |
replaceafill | basically IEP tells the system "this skills should be optional for this person" | 16:38 |
replaceafill | even if the skill is required | 16:38 |
replaceafill | i was thinking of creating a relationship person <-> skill | 16:39 |
replaceafill | with the IEP skills | 16:39 |
replaceafill | and i think this should be handle at the report level | 16:39 |
replaceafill | i can't see it in the gradebook | 16:39 |
replaceafill | but that leaves the checking responsability on the developer | 16:40 |
replaceafill | like, every time you create a report you have to take IEP into account | 16:40 |
replaceafill | i'm not sure if that's the right approach | 16:40 |
replaceafill | what do you guys think? | 16:41 |
yvl | hmm | 16:41 |
aelkner | we could use a method of some sort for iterating over skills | 16:42 |
replaceafill | i think this should also take into account "equivalent" skills for IEP skills | 16:42 |
aelkner | that takes the student into account, as an argument, right? | 16:42 |
replaceafill | aelkner, correct | 16:43 |
replaceafill | when checking for required skills | 16:43 |
aelkner | replaceafill, are you saying you use the skill's equivalent attribute for IEP? | 16:44 |
yvl | it's a good question where it is best to store the "customization" | 16:44 |
replaceafill | aelkner, i think we should | 16:44 |
aelkner | what was the original intention of that attribute? | 16:45 |
yvl | I would store them on person's annotations, in a persistent dict(s) section_int_id <--> worksheet <--> customizations | 16:45 |
aelkner | that sounds like what replaceafill did in old cando which makes sense | 16:46 |
yvl | and customizations would simply True/False for skillset/skill | 16:46 |
yvl | if memory serves me well, that's how we decided to implement it | 16:47 |
yvl | basically same way as old cando | 16:47 |
replaceafill | right, it's the old way | 16:47 |
aelkner | equivalent was intended for year over year skills matching, right yvl? | 16:47 |
yvl | equivalent was intendet for equivalent skills | 16:47 |
replaceafill | but that leaves us with "check IEP at report time", right? | 16:47 |
yvl | it can be used for year over year also | 16:47 |
yvl | yes, replaceafill | 16:48 |
replaceafill | aelkner, in my head you could have skill A equivalent to skill B in the same year | 16:48 |
replaceafill | like in different courses | 16:48 |
yvl | again, a helper that iterates section taking in mind IEPs would be great | 16:48 |
th1a | I think we are going to need to be clear about different skills that are practically equivalent and copies of the same skill. | 16:48 |
th1a | They are two different things. | 16:48 |
yvl | +1 for being clear | 16:49 |
replaceafill | if we take section into account when storing the customization, maybe we don't need to handle equivalent skills? | 16:50 |
yvl | but I don't know definition for "copy" | 16:50 |
th1a | In practice we don't have any different but equivalent skills at this point. | 16:50 |
replaceafill | since it's like saying "this is IEP for this student IN THIS SECTION" | 16:50 |
replaceafill | th1a, i was thinking about multi-term sections actually | 16:51 |
yvl | that would be easiest, replaceafill | 16:51 |
replaceafill | true | 16:51 |
yvl | you can also customize by-course | 16:51 |
yvl | that is also not that hard | 16:51 |
yvl | but that excludes projects then | 16:51 |
replaceafill | ok, with this feedback i think i'll have something working to show for monday | 16:52 |
replaceafill | i'll go this route | 16:52 |
replaceafill | thanks guys | 16:52 |
* replaceafill done | 16:53 | |
yvl | oh, and a small note on using relationships | 16:53 |
yvl | scrap that | 16:53 |
yvl | not important | 16:53 |
* replaceafill was waiting for a "don't use them" :D | 16:53 | |
yvl | yes, this time :D | 16:54 |
replaceafill | i won't :) | 16:54 |
th1a | OK, so assuming we're going to wait for that fix, we'll probably do a CanDo bugfix in 1 week? | 16:54 |
replaceafill | th1a, yes | 16:55 |
th1a | OK, thanks replaceafill. | 16:56 |
th1a | aelkner? | 16:56 |
aelkner | ok, so it looks like things are ok with glenda, and she is just waiting for the sorted gradebook labels | 16:57 |
aelkner | i started working on the nodes tables, and i have a number of questions | 16:58 |
aelkner | first of all, we have four situations where we search for nodes, and they are not well-defined as of yet | 16:58 |
aelkner | we have the Nodes Container view, which we are changing to show skillsets and skills | 16:59 |
aelkner | we have the view for adding child nodes to nodes which has a search of its own | 16:59 |
aelkner | we have the course skill assignment view which needs to search nodes as well | 16:59 |
*** khildin has quit IRC | 17:00 | |
aelkner | ok, never mind the fourth case because the document views don't have node search | 17:00 |
replaceafill | aelkner, i know of a forth one | 17:01 |
replaceafill | projects | 17:01 |
aelkner | ah, ok, thanks for mentioning that one | 17:01 |
th1a | OK, so let's call those A, B, C, and D. | 17:01 |
th1a | In which ones are skillsets and skills relevant or applicable? | 17:01 |
th1a | A. | 17:02 |
th1a | D, right? | 17:02 |
aelkner | replaceafill, i'm not familiar with the project case, can you explain what's needed there? | 17:03 |
replaceafill | aelkner, basically, you first search for a course node | 17:03 |
replaceafill | in theory it can be also a cluster | 17:03 |
replaceafill | then you drill down until you get to the skill you want | 17:04 |
aelkner | right, so that's the same as the course skills assign case, right? | 17:04 |
replaceafill | yes, but with an extra level | 17:04 |
replaceafill | in course assign, you get until skillset | 17:04 |
replaceafill | in projects you get until skill | 17:04 |
th1a | Do you ultimately want to get to skillsets and skills? | 17:04 |
th1a | If so, why not search for them directly? | 17:04 |
th1a | btw, looking at screens really helps with this kind of thing. | 17:05 |
aelkner | i think in the course skills case, the user is looking for specific nodes first before selecting skillsets, skills | 17:05 |
th1a | Well not necessarily. | 17:05 |
th1a | You might just know what you're looking for. | 17:06 |
aelkner | replaceafill, what do you think? | 17:07 |
th1a | The only reason not to be able to go straight to skillsets or skills is if it isn't relevant at all to the task. | 17:08 |
replaceafill | for projects i can see it yes | 17:08 |
th1a | Otherwise it is like requiring the user to search for the folder name instead of the file name. | 17:08 |
replaceafill | teacher could know exactly the title of the skill | 17:08 |
replaceafill | "Recognize and identify polynomials." | 17:10 |
replaceafill | i don't need to know that's under Pre-algebra skillset | 17:10 |
replaceafill | but i do want to assign something about polynomials | 17:10 |
replaceafill | to my project | 17:10 |
th1a | yes | 17:10 |
aelkner | so are we saying that this is a case for mixed nodes/skills search? | 17:11 |
th1a | I guess so. | 17:12 |
aelkner | replaceafill, i did a search for NodesTable and found the SkillsetNodesTable you wrote | 17:13 |
aelkner | i didn't find the same thing for projects | 17:13 |
replaceafill | let me check | 17:13 |
replaceafill | aelkner, ProjectSkillSearchView | 17:14 |
replaceafill | first_step_template | 17:14 |
replaceafill | container/table | 17:14 |
replaceafill | where ocntainer is the nodecontainer | 17:15 |
replaceafill | below you have SkillSearchTable(NodesTable) | 17:15 |
aelkner | i see, thanks | 17:16 |
aelkner | ok, here's the thing: | 17:16 |
aelkner | first, we have a number of table classes that depend on the current NodesTable in model.py | 17:17 |
aelkner | that table does not mix skills in | 17:17 |
aelkner | and it seems that only the case of the Search tab do we need to mix them in | 17:18 |
aelkner | in course,py, SkillsetNodesTable does not derive from NodesTable, so it has its own logic | 17:18 |
aelkner | so we need to reign in these various cases and decide what we want to do | 17:19 |
aelkner | but also, we have this issue: | 17:19 |
aelkner | the layers checkboxes are something that we list in various ways | 17:20 |
th1a | What about the B and C cases you mentioned at the beginning? | 17:20 |
th1a | Do you ever need to find skillsets or skills in those cases? | 17:20 |
aelkner | i would say B, C and D are the same case | 17:20 |
aelkner | in that no mixin of skills is needed | 17:20 |
aelkner | replaceafill, isn't that right, in case D, you have a multi-step view there | 17:21 |
aelkner | you even said: | 17:22 |
aelkner | # XXX: use a step approach similar to timetable wizard! | 17:22 |
th1a | Didn't we decide D was a mixed case? | 17:22 |
th1a | Like, 10 minutes ago? | 17:22 |
aelkner | we have existing code, so i'm going by that | 17:22 |
replaceafill | imho projects need both search/browsing (drilling) | 17:23 |
th1a | Was there any point in having that conversation or asking our opinion? | 17:23 |
aelkner | the situation needs definition, so hence the conversation, so whatever you mean about that... | 17:24 |
th1a | Searching for nodes but not skillsets or skills is just an artifact of our data model that won't make sense to users. | 17:24 |
th1a | UNLESS it happens to be a view where only nodes are ever relevant. | 17:24 |
aelkner | replaceafill, do you think that we agreed that ProjectSkillSearchView needs to be reworked? | 17:25 |
replaceafill | absolutely, to use your new logic | 17:25 |
replaceafill | if you can find the skill right at the start, you don't need the drilling part | 17:26 |
aelkner | so, if the new NodesSearchTable that I'm creating (different from NodesTable) | 17:26 |
replaceafill | maybe a (+) button or checkbox + button | 17:26 |
th1a | It is like saying "you can't search for resume.pdf directly, you have to search for Documents and then find it." | 17:27 |
aelkner | well, the + you're talking about is a special case for adding skillsets or skills to projects | 17:28 |
aelkner | that is not the same case as just searching for them | 17:28 |
aelkner | the + doesn't have a meaning from the Search tab view | 17:29 |
th1a | Right now, you can add skillsets or skills, right? you just have to search the node and navigate. | 17:29 |
replaceafill | aelkner, all i'm saying is, if you just found the skill you wanted, it should be possible to add it right there, without an extra step | 17:29 |
th1a | If anyone could show us an example of what we're even talking about that would be REALLY HELPFUL. | 17:29 |
replaceafill | th1a, correct | 17:29 |
* replaceafill checks his instances | 17:29 | |
th1a | Or if aelkner can do a screenshare hangout... | 17:30 |
replaceafill | 69.164.203.135:6660/schoolyears/2012-2013/MP1/sections/16607-45-4-1/gradebook-projects | 17:31 |
replaceafill | eunita.winkey@apsva.us:teacher | 17:31 |
* replaceafill hates firefox doesn't give me http:// | 17:31 | |
replaceafill | Add -> Skill | 17:31 |
aelkner | right, so see how that view is very different, not something that is the same as the general mixed search | 17:33 |
th1a | Yeah, that should find skillsets and skills. | 17:33 |
th1a | The search isn't so much different as where you go after, right? | 17:33 |
aelkner | the search only finds nodes, then where you go after is the skillsets for a given node | 17:33 |
replaceafill | or children nodes | 17:34 |
replaceafill | (if it's a cluster) | 17:34 |
yvl | right, there are skill and skillset checkboxes, but they do not work | 17:34 |
th1a | yvl: EXACTLY. | 17:34 |
aelkner | yes, those checkboxes are not meaningful | 17:35 |
aelkner | because the view is looking for nodes | 17:35 |
th1a | Your task is to make them work aelkner, that's the entire point. | 17:35 |
aelkner | by making it work, you mean completely rewriting what replaceafill did | 17:37 |
aelkner | because the paradigm the user goes through presently is completely different than just searching | 17:37 |
aelkner | it's not like we code a NodesTable and reuse it in the projects skills assignment view | 17:38 |
aelkner | it just can't be that way | 17:38 |
th1a | It isn't that different. | 17:38 |
th1a | Right now you go table > node > skillset > pick skill. | 17:39 |
th1a | There is no reason you can't go table > skillset > pick skill | 17:39 |
yvl | > (pick skills, click submit button) | 17:39 |
th1a | or table > skillset > skill preselected. | 17:39 |
th1a | If the user clicked on a skill. | 17:39 |
th1a | That wouldn't require any completely new views. | 17:40 |
yvl | th1a, I hope you understand, that it's just not an hour's work | 17:40 |
aelkner | thanks yvl, that's what i was getting at | 17:40 |
th1a | I'm aware that I've spent more than an hour talking about it. | 17:40 |
yvl | :D | 17:40 |
th1a | Right now it is like going into a grocery store and searching for "Apples" and getting "Not found." | 17:41 |
th1a | You have to know to search for "Fruit" | 17:41 |
th1a | So it is a pretty major problem. | 17:41 |
yvl | try finding tomatoes :P | 17:41 |
th1a | Indeed! | 17:42 |
th1a | It isn't like we spent a lot of time writing the current views to filter stuff out for a reason. | 17:42 |
th1a | And we changed our mind. | 17:42 |
th1a | We were just following the path of least resistance. | 17:42 |
yvl | hmm, one thing pops into mind | 17:43 |
yvl | there are some 20 pages now | 17:43 |
yvl | there will be more pages if we list all skillsets | 17:43 |
yvl | we need a skill caltalog :) | 17:44 |
yvl | or it may get sluggish | 17:44 |
aelkner | i didn't even get around to mentioning that, yes! | 17:44 |
aelkner | i already coded the special NodesSearchTable that mixes in the skills | 17:44 |
aelkner | and it's SLOW | 17:44 |
replaceafill | well, there's one skills catalog | 17:44 |
replaceafill | that i committed by mistake :( | 17:44 |
replaceafill | cando.skill.SkillCatalog | 17:45 |
yvl | oh, good | 17:47 |
aelkner | is that catalog already in place, i mean was the evolve script written to add it in? | 17:47 |
replaceafill | aelkner, you don't need evolution for changing catalogs now | 17:47 |
replaceafill | they're versioned | 17:47 |
aelkner | changing them, yes, but adding them you need one, right yvl? | 17:47 |
yvl | nope | 17:47 |
replaceafill | no | 17:47 |
yvl | all magic | 17:47 |
replaceafill | :D | 17:47 |
aelkner | ah, cool | 17:47 |
replaceafill | black magic ;) | 17:47 |
yvl | change the "version" string, at it reindexes | 17:48 |
aelkner | ok, so i should use the catalog to speed up the mixin of skills, that helps | 17:48 |
yvl | and it reindexes | 17:48 |
replaceafill | one problem i remember having with this catalog was | 17:48 |
replaceafill | it indexed project skills | 17:48 |
yvl | yes | 17:48 |
replaceafill | maybe interface needs to be changed or something | 17:48 |
yvl | actually, you need a bit more custom catalog here | 17:49 |
yvl | I don't think we need to search for all skills from everywhere | 17:49 |
yvl | or... maybe we do | 17:49 |
yvl | or not. | 17:50 |
yvl | no, not. | 17:50 |
yvl | but we do need a catalog with a filter more customized than by interfac | 17:51 |
yvl | e | 17:51 |
yvl | also - maybe it's worth considering a catalog that also indexes nodes | 17:51 |
yvl | and has attribute "type" or something | 17:51 |
replaceafill | is it possible to have catalogs that index more than one type of object yvl? | 17:51 |
yvl | type being skill/node/projectskill | 17:52 |
replaceafill | like nodes + skills? | 17:52 |
yvl | everything is possible if you believe! | 17:52 |
yvl | but yes | 17:52 |
aelkner | :) | 17:52 |
replaceafill | ¬¬ | 17:52 |
replaceafill | :D | 17:52 |
yvl | I think this is getting to the point where the task will get reassigned to me ;) | 17:53 |
th1a | So... should yvl work on this? | 17:53 |
th1a | Yes. | 17:53 |
th1a | :-D | 17:53 |
yvl | at least to some extent | 17:53 |
replaceafill | i can definitely see this search/drilling as plumbing | 17:53 |
yvl | so... I accept :) | 17:53 |
yvl | :D | 17:53 |
th1a | OK, so can aelkner still work on the views or is he blocked now? | 17:54 |
yvl | I'd say blocked | 17:54 |
yvl | since you'll still want to remake them to use catalogs | 17:54 |
th1a | OK. | 17:55 |
yvl | btw | 17:55 |
aelkner | there is still and issue that i didn't mention that we should consider | 17:55 |
aelkner | the whole layers concept is not well defined | 17:56 |
aelkner | we have these documents that allow us to have special views for adding nodes, skillsets, skills | 17:56 |
th1a | It is a data model issue. | 17:56 |
aelkner | but having the custom names appear in the all buttons and lists | 17:56 |
aelkner | but the SkillSet and Skill layers are not real layers for nodes | 17:57 |
yvl | yes, by design | 17:57 |
aelkner | not real layers for anything, actually, because Skillsets and Skills have no layer attribute | 17:57 |
th1a | Yes? | 17:57 |
yvl | yes, by design | 17:57 |
aelkner | so, how do we know what a layer means | 17:58 |
aelkner | when we are building the list of checkboxes for the filter | 17:58 |
aelkner | how do we know that a layer is really for a skill? | 17:58 |
yvl | umm | 17:59 |
th1a | There are layers, skillsets and skills. | 17:59 |
yvl | wasn't it coded somewhere? | 17:59 |
yvl | like : layers, two last things are skillsets, skills | 17:59 |
aelkner | no | 17:59 |
aelkner | ? | 17:59 |
yvl | http://69.164.203.135:6660/documents/add.html | 18:00 |
th1a | It doesn't seem like a difficult problem. | 18:00 |
aelkner | yvl, so that view adds two layers, SkillSet and Skill | 18:01 |
yvl | yes | 18:01 |
aelkner | puts those layers in the document hierarchy | 18:01 |
yvl | so? | 18:01 |
aelkner | ok, so what you're saying is that i should use the reverse relationship between layers and node | 18:02 |
aelkner | to find the document node that relates to that layer | 18:02 |
aelkner | and then use the psotion of that layer in that document's hierarchy to know it is a skill layer? | 18:02 |
yvl | there are not supposed to be any skills in nodes | 18:02 |
yvl | skills are supposed to be in skillsets | 18:02 |
yvl | skillsets are supposed to be *linked* to nodes | 18:03 |
yvl | nodes have layers | 18:03 |
yvl | nodes should not be linked to skill layers | 18:03 |
yvl | "skill" layers should not exist | 18:03 |
aelkner | but they do | 18:03 |
yvl | I don't remember the exact implementation | 18:03 |
yvl | so they are fake then | 18:03 |
aelkner | as do skillset layers | 18:03 |
aelkner | right | 18:03 |
th1a | You can iterate through the layers in the system, then do skillset and skill, then (if we want to be nice) iterate through the documents to find out other terms used for Skillset and Skill and note them in parentheses, which I think we already discussed. | 18:03 |
aelkner | th1a, as one iterates thought the layers, one finds the SkillSet and Skill layers | 18:04 |
yvl | so? | 18:04 |
yvl | one is supposed to KNOW they are fake | 18:05 |
*** ignas has joined #schooltool | 18:05 | |
aelkner | well, the definition of a layer does not include that fact | 18:05 |
th1a | Who created these skillset and skill layers? | 18:05 |
th1a | And why? | 18:05 |
yvl | I *guess* those were created to contain custom skill / skillset names. You can call them barrrels and buckets if you will | 18:06 |
aelkner | you did | 18:06 |
aelkner | th1a, look, we had to fit a square peg into a round hole to get document views to have | 18:07 |
aelkner | custom names for skillsets and skills | 18:07 |
aelkner | so we needed to create bogus layers | 18:08 |
th1a | I just would have added the names as attributes to the document. | 18:08 |
aelkner | well, you've seen this design for months now, and you haven't objected | 18:08 |
aelkner | it's in the skills import as well | 18:08 |
aelkner | the idea of adding the names as attributes to the document is a nice idea | 18:09 |
th1a | I didn't SEE it. | 18:09 |
aelkner | i wish i had thought of it | 18:09 |
yvl | aelkner, really now | 18:09 |
yvl | if you had listened | 18:09 |
yvl | well, anyway, the past is the past. | 18:09 |
aelkner | yes, but i'm really starting to regret that we have these skillset and skill layers | 18:10 |
aelkner | they just don't make sense and are hard to work with when we talk about global search | 18:10 |
yvl | look, I see two ways to implement the custom skillset and skill naming | 18:11 |
th1a | From the user's point of view, they don't care if they have multiple checkboxes for the differently labeled skills. | 18:11 |
yvl | yes | 18:11 |
th1a | If there is an "Outcome" line and "Skill" line and "Competency" line, and it actually correctly differentiates between them, that's a feature anyhow. | 18:11 |
th1a | That is, assuming they're all skills. | 18:12 |
yvl | 1) add attributes to document model, hack all tables that list skills to also list "skillset" and "skill" - so users would understand | 18:12 |
yvl | 2) use fake layers, but *other* code needs to know, that they are the two bottom layers, they are not supposed to have other parents or children than specified | 18:12 |
yvl | and they don't have nodes linked, ever | 18:13 |
* yvl done | 18:14 | |
th1a | I don't care about how it is implemented as long as it works. | 18:15 |
aelkner | well, we've used fake layers for a while now, so we're kind of married to that | 18:15 |
th1a | And we don't waste a ton of time. | 18:15 |
th1a | Fine. | 18:15 |
aelkner | the time to have objected to that was months ago, not now | 18:15 |
aelkner | so as yvl said, 2) is the way | 18:16 |
yvl | my point was that either path was not trivial and needed extra work | 18:16 |
yvl | 2) is a little bit more maintenance costly | 18:16 |
aelkner | yes, thanks yvl, that's been my point for bringing this up, it's not trivial | 18:16 |
yvl | but we have it working mostly | 18:16 |
th1a | I have no idea how the current implementation works, so I'll stay out of it. | 18:16 |
yvl | we can keep on with (2) | 18:17 |
aelkner | i think we have to | 18:17 |
th1a | So should you work on that now aelkner? | 18:18 |
aelkner | it should be me, i just needed some support on my decisions, so that's why i brought up the issues | 18:19 |
th1a | Do you feel supported? ;-) | 18:19 |
aelkner | yvl, i'm glad you saw the issue of: | 18:19 |
aelkner | but *other* code needs to know, that they are the two bottom layers | 18:19 |
yvl | glad to be on the same page :) | 18:20 |
th1a | OK. And I thought this would be a short meeting... | 18:20 |
th1a | Thanks aelkner. | 18:20 |
aelkner | i'll just use the documents to know about the bottom two layers | 18:20 |
aelkner | ok, i'm done | 18:21 |
th1a | yvl? | 18:22 |
yvl | ok | 18:22 |
yvl | first, I worked on thumbnails and the tiny issue that photos do not refresh after change | 18:22 |
yvl | it turns out I poked a paper bag that had poo in it | 18:23 |
th1a | Is that a Lithuanian idiom? | 18:23 |
yvl | no :) | 18:24 |
yvl | but it describes my... evalution of situation quite well | 18:24 |
yvl | in any case, I accidentally started some work I did not intend to do for few months | 18:24 |
yvl | but it's needed work | 18:24 |
yvl | (and I already tabled it today) | 18:24 |
yvl | the thing is, that Matt brought up some time ago issues with Zope serving static resources | 18:25 |
yvl | I think we'll have more uploaded/generated resources as soon as celery deploys | 18:25 |
yvl | and we do have some already with photos | 18:25 |
yvl | so it would be really good to prepare for... | 18:26 |
yvl | implementing a tiny thing to serve them | 18:26 |
yvl | not a zope instance, just serve from disk | 18:26 |
yvl | and lookup what to serve in zope | 18:26 |
th1a | Yes. | 18:27 |
th1a | So it would just be from Apache? | 18:27 |
yvl | I think we'll just use flask again | 18:27 |
yvl | because apache needs to be configured externally | 18:27 |
replaceafill | again? | 18:27 |
replaceafill | i mean, where did you use flask before? | 18:28 |
yvl | I use it to serve json task results in celery branch | 18:28 |
replaceafill | isn't that bottle? | 18:28 |
replaceafill | or are they the same? | 18:28 |
yvl | ok, maybe it's bottle | 18:28 |
th1a | lol | 18:28 |
replaceafill | ah :) | 18:28 |
yvl | no, but one evolved from another | 18:28 |
replaceafill | it's just that i remember checking the code and seeing bottle :) | 18:28 |
yvl | anyway :) | 18:28 |
yvl | it would be quite similar to serving with Apache | 18:29 |
yvl | so images will reside somewhere like | 18:29 |
yvl | schooltool/images/183736263/logo.jpg | 18:29 |
yvl | schooltool/images/183333382/photo.jpg | 18:29 |
yvl | which gives you a nice "Save As" as an extra | 18:30 |
yvl | this also solves the non-refreshing photo thing | 18:30 |
yvl | that was happening, because after upload, url to the image was not changing | 18:30 |
yvl | as in persons/manager/photo.jpg | 18:30 |
th1a | Yes. | 18:31 |
yvl | so browsers didn't even bother to check if it changed | 18:31 |
yvl | until you visit the site next time | 18:31 |
yvl | or hit F5 | 18:31 |
yvl | there was another bug | 18:31 |
yvl | and it is a cautionary tale | 18:31 |
yvl | be careful when you copy-paste code | 18:31 |
yvl | and be AFRAID of bare excepts | 18:31 |
yvl | there was a bug, that ended up ignoring If-Modified-Before header | 18:32 |
yvl | because the code inside try: except: was broken python | 18:32 |
replaceafill | ouch, my bad | 18:32 |
yvl | (and the code would not have worked anyway I think) | 18:32 |
yvl | well, happens to all of us | 18:32 |
yvl | just a cautionary tale | 18:33 |
yvl | I ended up with thing that also needs evolution to update all photos | 18:33 |
yvl | and finishing some of the views | 18:33 |
yvl | I think its 0.5-1.5 days worth of coding | 18:34 |
yvl | I'm getting cautious, because unexpected things were piling up | 18:34 |
yvl | so, I tabled it today, and went to look at reports | 18:34 |
yvl | (well, late today) | 18:35 |
yvl | the report design bible is... scarce for my taste | 18:35 |
th1a | Thin? | 18:35 |
yvl | yes | 18:35 |
th1a | Scanty? | 18:35 |
yvl | and missing some info | 18:35 |
yvl | for example, what to do if gradebook report has many students | 18:36 |
yvl | and it fills in exactly 1.5 pages | 18:36 |
yvl | but it is so wide | 18:36 |
yvl | that it should have // continued part spread in 3 pages? | 18:36 |
yvl | we should end up with... 6 pages? | 18:36 |
yvl | in what order? | 18:36 |
th1a | I think we're as well equipped to deal with that as Vinny. | 18:37 |
yvl | probably | 18:37 |
th1a | That's not a graphic design problem. | 18:37 |
th1a | This is just meant to be equivalent to the Ubuntu Web Guidelines. | 18:37 |
yvl | that's the thing - Ubuntu Web Guidelines set the bar too high | 18:38 |
yvl | just those little details | 18:38 |
th1a | It isn't a complete specification of any of the reports, and Vinny throws in some of his own ideas about, say, what should go in the report card. | 18:38 |
yvl | ah | 18:38 |
th1a | Yes. | 18:39 |
yvl | so, I tried to see what "bricks" this thing is made of | 18:39 |
th1a | Yeah, don't look too deep. | 18:39 |
th1a | It is a style guide. | 18:39 |
yvl | there's of course the awesome and complex gradebook brick | 18:39 |
yvl | grid + continuation handling + slanted headers + proper page splitting + text if splits | 18:40 |
th1a | Actually, he went off the reservation with a lot of it. | 18:40 |
yvl | I vaguely remember reportlab being able to handle all this - but in python and it was hairy | 18:40 |
th1a | Yeah... he's not paying us to implement it for him. | 18:41 |
th1a | We paid him for some ideas. | 18:41 |
yvl | right | 18:41 |
th1a | So... we can ignore or defer them as needed. | 18:41 |
yvl | I just wanted to potint some points that may cause trouble | 18:41 |
yvl | the reports do look beautiful in my opinion | 18:42 |
th1a | replaceafill looked at the diagonal type issue, as I recall. | 18:42 |
replaceafill | didn't get too far though | 18:42 |
th1a | It IS something that would be useful in a LOT of reports, so I'd spend up to a week on it if necessary. | 18:42 |
yvl | th1a, do you think we could invest in those tiny beautiful things, like slanted text and such? | 18:43 |
yvl | in my opinion - reports sell | 18:43 |
th1a | Slanted text in particular, yes. | 18:43 |
th1a | Otherwise you get shitty abbreviations that parents don't want to decipher. | 18:43 |
yvl | well, at least they helped selling Ivija a lot | 18:43 |
yvl | right | 18:43 |
yvl | I liked what replaceafill did | 18:44 |
replaceafill | :| | 18:44 |
yvl | no, really | 18:44 |
yvl | now, we can split those parts to separate viewlets | 18:44 |
replaceafill | please! | 18:44 |
replaceafill | i want "flourish" reports ;) | 18:44 |
yvl | and, for example, register person/title/school thingy to only report cards and other relevant | 18:45 |
yvl | I think our first task with it will be trying to remake most of the design doc in our code | 18:46 |
yvl | without thinking too much about viewlets or anything | 18:46 |
yvl | or even actual info | 18:46 |
yvl | I'd really like to get RML first | 18:46 |
yvl | that renders like the doc | 18:46 |
th1a | Yes. | 18:47 |
yvl | reporlab is bitchy, so we'll have to be flexible on this one | 18:47 |
th1a | Indeed. | 18:47 |
yvl | and by flexible I mean - do proper plumbing :D | 18:47 |
yvl | so that writing new reports would be as little painful as possible | 18:47 |
yvl | well, at least not a nightmare | 18:47 |
yvl | so, now I have 3 tasks on my hands: | 18:48 |
yvl | catalogs for skills and nodes | 18:48 |
yvl | finish with images / thumbnails / file catalog | 18:49 |
yvl | RML for design doc | 18:49 |
yvl | th1a could kindly set the priorities ;) | 18:49 |
yvl | btw - I would call open season for writing RML | 18:49 |
yvl | I do have some experience with reportlab (4 years ago), | 18:50 |
th1a | Well, we need to get the catalog done, unfortunately. | 18:50 |
th1a | I don't think there is a rush on the images but you might want to just wrap up the oose end. | 18:51 |
th1a | loose | 18:51 |
yvl | but even if our RML work duplicates, it would be good for all of us I think | 18:51 |
yvl | th1a, I can table images, if you promise to let me finish them some two weeks later | 18:51 |
yvl | before moving to another thing | 18:51 |
yvl | (and ending up digging them up 8 months later) | 18:52 |
th1a | OK. They don't block anything else, unlike catalogs and RML. | 18:52 |
yvl | code tends to rot left alone | 18:52 |
th1a | I know. | 18:52 |
yvl | right | 18:53 |
yvl | so | 18:53 |
yvl | catalogs, then RML | 18:53 |
yvl | if replaceafill or aelkner has spare time | 18:53 |
yvl | and wants to write RML for some pages of design doc | 18:53 |
yvl | that would be swell - especially as they have th1a in same timezone | 18:54 |
yvl | and as this does not need to use any real data, or any real yet-to-implement infrastrucure | 18:54 |
th1a | I'm not sure precisely what you mean yvl. | 18:54 |
replaceafill | rml from scratch? | 18:54 |
yvl | it won't clash | 18:54 |
yvl | kind of | 18:55 |
aelkner | yvl, you mean creating rml directives, right? | 18:55 |
aelkner | so that we can use them in templates as tags | 18:55 |
yvl | no, just writing in something like "static html" in the old days | 18:55 |
yvl | for example | 18:55 |
yvl | take page 6 from design doc | 18:55 |
yvl | and try to write some page in schooltool that renders exactly that in pdf | 18:56 |
yvl | fake data, lots of copy paste | 18:56 |
yvl | goal is so that it would look like the design doc | 18:56 |
th1a | I think we should just work from our real reports. | 18:56 |
yvl | and then you can ask th1a to judge if it's good enough | 18:56 |
th1a | We don't need to make fake ones. | 18:56 |
replaceafill | yvl, using the current/existing pdf base view? | 18:57 |
yvl | yes | 18:57 |
yvl | well, we can use real reports | 18:57 |
yvl | my main point was - to find the quirks and kinks of reportlab | 18:57 |
yvl | and to find patterns that can be extracted for reus | 18:58 |
yvl | e | 18:58 |
th1a | How does this relate to what replaceafill already did? | 18:58 |
replaceafill | could that be used as base? | 18:59 |
yvl | yes | 18:59 |
yvl | sure | 18:59 |
yvl | but I don't think the list (table?) conforms well to the design doc at the moment | 19:00 |
replaceafill | right | 19:00 |
replaceafill | it doesn't have all the elements at all | 19:00 |
replaceafill | just row hightlighting i think | 19:00 |
yvl | yes | 19:00 |
replaceafill | positioning maybe | 19:00 |
replaceafill | of headers, etc | 19:00 |
replaceafill | footer | 19:00 |
yvl | for tables - also sub-section title | 19:01 |
yvl | there could also be "continued on the next page >" thingy | 19:01 |
yvl | many small things, and most of the time they won't cause trouble | 19:01 |
yvl | I want to know which ones and why will cause it | 19:01 |
yvl | before we write plumbing and many reports | 19:02 |
yvl | but that's just my take on it | 19:02 |
th1a | We have simple real reports to start on. | 19:02 |
yvl | (also, please try using loooooooooong titles everywhere) | 19:02 |
yvl | right | 19:02 |
th1a | Indeed! | 19:03 |
yvl | as for real reports - whatever is simpler/faster | 19:03 |
yvl | as for section roster - simple, easy, good report for real data | 19:03 |
th1a | Yes. | 19:04 |
replaceafill | btw | 19:04 |
replaceafill | just small comment | 19:04 |
replaceafill | are we going to use "cm" as unit for reports? | 19:05 |
replaceafill | we used to use "inch", right? | 19:05 |
yvl | I'm european, so... :D | 19:05 |
yvl | you know what I vote for. | 19:05 |
replaceafill | i vote for cm | 19:06 |
yvl | but in real life it doesn't matter | 19:06 |
yvl | it's better when it's consistent | 19:06 |
replaceafill | also, most of the "bible" is in cm :) | 19:06 |
th1a | I assume metric makes more sense. | 19:07 |
th1a | I have no real opinion on it. | 19:07 |
replaceafill | cm it is! :D | 19:07 |
th1a | Can we move on yvl? | 19:07 |
yvl | sure | 19:07 |
yvl | sorry | 19:07 |
* yvl done | 19:07 | |
th1a | Thanks yvl. | 19:07 |
th1a | menesis: I had no idea it would take this long to get to you! | 19:07 |
*** yvl has quit IRC | 19:08 | |
*** yvl has joined #schooltool | 19:09 | |
menesis | I have one new feature for the philippines project | 19:09 |
yvl | netsplit :/ | 19:09 |
menesis | that I was implementing since yesterday | 19:09 |
menesis | before that, made a table to map ubuntu/ppa/schooltool versions | 19:10 |
menesis | http://book.schooltool.org/release-notes.html | 19:10 |
th1a | That was a good idea. | 19:10 |
menesis | and that's all | 19:11 |
menesis | th1a: anything you want me to do after I finish the philippines feature? | 19:12 |
th1a | Ah... nothing in particular. We'll need a CanDo bugfix release next week. | 19:12 |
th1a | Thanks menesis. | 19:12 |
th1a | replaceafill: I need to settle on some skills for demo/doc purposes. | 19:12 |
th1a | Do you have Joe's? | 19:13 |
replaceafill | yes | 19:13 |
replaceafill | do you want me to set up a new instance? | 19:14 |
replaceafill | with them? | 19:14 |
th1a | No, I need the skills themselves. | 19:15 |
th1a | The CTE ones are too massive. | 19:15 |
replaceafill | the xls? | 19:15 |
th1a | Yes. | 19:15 |
replaceafill | ah ok | 19:15 |
replaceafill | i'll send you the xls | 19:15 |
replaceafill | i have programming skills also | 19:15 |
replaceafill | math and algebra | 19:15 |
replaceafill | from jelkner's pilot | 19:15 |
th1a | Throw those in too. | 19:16 |
replaceafill | kk | 19:16 |
th1a | OK. THANKS GUYS. | 19:16 |
yvl | thanks! | 19:17 |
replaceafill | thanks everybody | 19:17 |
th1a | Have a great week/weekend. | 19:17 |
aelkner | thanks for everyone's patience with the layers issue | 19:17 |
th1a | That was an unexpectedly epic meeting... | 19:17 |
* th1a drops the bag of gravel. | 19:17 | |
aelkner | great weekend everyone | 19:17 |
yvl | good weekend to all | 19:17 |
yvl | good meeting | 19:18 |
yvl | long | 19:18 |
yvl | but good :) | 19:18 |
yvl | (too long though :D ) | 19:18 |
aelkner | lots of weighty topics coevered | 19:18 |
th1a | yvl was feeling chatty. | 19:18 |
yvl | true | 19:18 |
yvl | :/ | 19:19 |
aelkner | i appreciated chatty yvl | 19:19 |
yvl | :D | 19:19 |
yvl | Looking at backlog... Oh. Chatty. | 19:19 |
replaceafill | :D | 19:19 |
yvl | ok | 19:20 |
yvl | see you all Mon :) | 19:20 |
replaceafill | th1a, sent | 19:22 |
aelkner | th1a, your cell phone sucks at your house | 19:24 |
th1a | Yeah, I was just checking. | 19:25 |
th1a | This sucks. | 19:25 |
aelkner | i got your call, but you weren'r there | 19:25 |
th1a | I know. I was just trying to talk to Welsh and making sure it wasn't something with him. | 19:26 |
aelkner | ah | 19:26 |
aelkner | can you get a repeater or something to solve your situation? | 19:26 |
th1a | Well, it is kind of ridiculous. | 19:27 |
th1a | Especially since my wife has had an AT&T iPhone for two years with no apparent probems. | 19:27 |
aelkner | could it just be your office? she doesn't make calls from there, right? | 19:28 |
th1a | I was just standing outside. | 19:28 |
replaceafill | it's the iphone5! let's try an android :D | 19:28 |
aelkner | must be the phone then | 19:28 |
th1a | Well... I guess it could be the phone. | 19:29 |
replaceafill | rebooting, brb | 19:36 |
*** replaceafill has quit IRC | 19:36 | |
*** replaceafill has joined #schooltool | 19:39 | |
*** ignas has quit IRC | 20:05 | |
*** menesis has quit IRC | 20:19 | |
th1a | aelkner: ayt? | 22:31 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!