chat log - Mike and Todd, 7/19/2011

From contact method Todd's Email Contact Method
Item Customizable group website proposal
Item version number 1
Discussion between Mike and me about supporting customization a la Wordpress:

trbdavies 11:12 AM
Mike are you there?
Mike Mintz 2:25 PM
hi todd
trbdavies 2:25 PM
hi
2:26 PM
What is a BundledLayoutDocument?
Mike Mintz 2:26 PM
so the important thing is that every Site (like a subdomain) has a default_layout
2:26 PM
which used to point to a DjangoTemplateDocument
2:27 PM
it now points to a more generic WebPageDocument
2:27 PM
which can be either a DjangoTemplateDocument (raw django code), or a BundledLayoutDocument (bundled django template code, parameterized by fields in the item)
trbdavies 2:27 PM
ok
Mike Mintz 2:28 PM
so my main questoin is what fields we want to be able to parameterize
2:29 PM
and more minor, wording of the item types
2:30 PM
or alternatively am i missing how you thought it would be designed
trbdavies 2:31 PM
I'd start with background color, text color, logo image, the navigation menu items, whether or not the item data menu is minimized on load, and maybe a selector for CSS theme
Mike Mintz 2:32 PM
hmm i hadn't thought about navigation menu items
trbdavies 2:32 PM
I think that's the main thing people will want to customize
Mike Mintz 2:33 PM
how does wordpress do this?
trbdavies 2:33 PM
the theme would mostly be abouto the arrangement of the main page elements
2:33 PM
well, there are different menus you can choose to include or not, and then within those there are some options
2:34 PM
in Wordpress that is
Mike Mintz 2:34 PM
i guess i meant more like how does their UI to select items work?
2:34 PM
i'm trying to imagine how it's represented in their database
2:34 PM
without requiring the user to just enumerate pages as HTML or something
trbdavies 2:34 PM
no they don't do that
2:34 PM
I'll take a screenshot and post it for you
Mike Mintz 2:35 PM
thanks
trbdavies 2:39 PM
Here's themes: http://tinypic.com/r/25ix7c6/7
Mike Mintz 2:41 PM
okay that part is clear to me
2:42 PM
i'm curious what the interface is for editing a menu
trbdavies 2:42 PM
widgets http://tinypic.com/r/2quujhx/7
2:43 PM
custom menus http://tinypic.com/r/6ye0if/7
Mike Mintz 2:44 PM
okay so it looks like they have a javascript gui for saving a list of URL/names
trbdavies 2:45 PM
custom design http://tinypic.com/r/2w257io/7
2:47 PM
there are some other pages on background color, header image, etc.
Mike Mintz 2:47 PM
okay, well i think i misunderstood the scope of this task
trbdavies 2:48 PM
good
Mike Mintz 2:48 PM
i was just thinking the actual theme part, not customizing the content of the layout
trbdavies 2:48 PM
yeah I think we should do both, but theme can be offered as a set of premade designs. People can make their own and share them if they want
Mike Mintz 2:49 PM
i'm not sure how to design this though... if we come up with a set of options (like a list of menu options), all layouts will be forced to use those options
2:50 PM
so either we have to design really carefully, or we let each skin have its own interface to customize it
2:50 PM
or can you think of another option?
trbdavies 2:50 PM
I think the nav menu can be customized with the user's options
Mike Mintz 2:51 PM
but there's not one clear way to do that
trbdavies 2:51 PM
Wordpress adds in separate options for all kinds of little widgets - it can get complicated
Mike Mintz 2:51 PM
we could have groups, subgroups
2:51 PM
yeah that widget part looks really daunting
trbdavies 2:52 PM
It's because they are specialized to blogs I think
2:52 PM
groups, subgroups, for what?
Mike Mintz 2:52 PM
for a menu
2:52 PM
most websites have hierarchical menus
2:52 PM
like symsys
2:53 PM
and e.g. symsys has special links that stand out (list view)
trbdavies 2:53 PM
But the user can define those. The editor would just let them select items to include in the menu, and allow them to arrange into an outline maybe
Mike Mintz 2:53 PM
but we need to define what an "outline" is in database schema terms
2:53 PM
this can get pretty complicated
trbdavies 2:54 PM
parent-child relations between menu options I guess
Mike Mintz 2:54 PM
and would menu links be items, or just django models, or marked up text?
trbdavies 2:54 PM
Or maybe just an ordered list with nest levels, like bullet point levels
Mike Mintz 2:54 PM
and do sites ever have multiple menus?
trbdavies 2:54 PM
that's simpler
2:54 PM
you mean on different pages
Mike Mintz 2:54 PM
same page
2:55 PM
different pages can have different layouts i guess
2:55 PM
so that's simple
trbdavies 2:55 PM
well, Wordpress has multiple menus on the same page
2:55 PM
but I think we just need to support one custom menu per page
2:55 PM
other predefs can be added as options later
2:57 PM
one might be a tag cloud widget for instance
2:57 PM
we need to figure out a way to make collections more usable
Mike Mintz 2:58 PM
i have to go in a few minutes
trbdavies 2:58 PM
okay
Mike Mintz 2:58 PM
i'm looking at how wordpress supports menus
2:58 PM
http://codex.wordpress.org/Function_Reference/wp_nav_menu
2:59 PM
i'm not sure how it stores it, but the theme designer doesn't get much control, they just give the start/end html
2:59 PM
for each link and each "container"
trbdavies 2:59 PM
hmm
Mike Mintz 3:00 PM
so i can see 3 options
3:01 PM
1. store menu items/containers as deme items (confusing because of the overhead and permissions)

2. store menu items/containers as django items (kind of screws up versioning, although versioning doesn't work very well anyway with relationships)

3. store menu items/containers as marked up text (even if the user gets a simpler interface), but this is problematic because then we're storing URLs instead of item ids
3:01 PM
#3 is certainly the simplest, but also the least robust
3:03 PM
anyway i have to go now
3:03 PM
we can talk about it tomorrow at the meeting or when i get back
trbdavies 3:03 PM
I'd like to stay with item ids as much as possible, relativized to an installation or site. We can't use either absolute or relative URLs and support cross-installations
3:03 PM
okay, have a good flight
Mike Mintz 3:03 PM
agreed
3:03 PM
thanks
3:03 PM
see you tomorrow todd

For Internet Explorer users: Click on the Tools menu, located at the top of your browser window. When the drop-down menu appears, select the option labeled Full Screen.

For Chrome users:Click on the Chrome "wrench" icon, located in the upper right hand corner of your browser window. When the drop-down menu appears, select the choice labeled Full Screen.

For Firefox user:Click on the View menu, located at the top of your browser window. When the drop-down menu appears, select the option labeled Full Screen.

For Safari users: Safari currently does not support the ability to go fullscreen.