veekun / spline Goto Github PK
View Code? Open in Web Editor NEWcore of veekun.com: web thing with plugins
Home Page: http://bugs.veekun.com/projects/spline
License: MIT License
core of veekun.com: web thing with plugins
Home Page: http://bugs.veekun.com/projects/spline
License: MIT License
Reported by Eevee on 2011/04/28 06:03:43 +0000 · Migrated from Redmine issue 614
http://docs.pylonsproject.org/projects/deform/dev/
It’s a form library with a bunch of weird baggage attached. What most interests me is the colander library powering it, which claims to support generic de/serialization from Python objects to anything. I’m really really picky about how my HTML forms look, so maybe I can beat this into shape more easily. wtforms often requires a lot of deep hackery for things they didn’t design it for, and I don’t really trust a lot of the custom fields I have now.
Redmine metadata:
Updated on: 2011/04/28 06:03:43 +0000
Start date: 2011/04/28
Reported by Zhorken on 2010/10/14 20:16:08 +0000 · Migrated from Redmine issue 399
We have post formatting, but nobody can tell really how it works, so most people just treat posts as pretty much plain text with one or two extras (URL autolinking) when they type them.
Redmine metadata:
Updated on: 2011/04/21 02:54:24 +0000
Start date: 2010/10/14
Comment by Eevee from 2011/04/21 02:50:43 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:24 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/05/08 00:00:22 +0000 · Migrated from Redmine issue 262
Kinda important. So far it’s looking like the best option is Markdown (or a reasonable equivalent) plus whitelisted HTML. Allow picking from raw, markdown, html with auto linebreaks, or pure html.
Redmine metadata:
Updated on: 2011/04/21 02:54:20 +0000
Start date: 2010/05/07
Done ratio: 70%
Comment by Eevee from 2010/08/03 01:01:16 +0000
Also, autolink URLs.
Comment by Eevee from 2010/09/01 21:00:41 +0000
Target version: — ⇨ 2010 Q3
Comment by Eevee from 2010/09/06 22:36:01 +0000
Well, it works. But it could use those multiple formatting options listed above, then some previewing. In realtime.
Status: OPEN ⇨ ON IT
Done: 0% ⇨ 70%
Comment by Eevee from 2010/10/07 01:59:51 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2011/04/21 02:50:39 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:20 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/08/14 00:45:39 +0000 · Migrated from Redmine issue 333
Create, edit, delete (well… merge), access levels, etc.
Redmine metadata:
Updated on: 2011/04/21 02:54:24 +0000
Start date: 2010/08/14
Comment by Eevee from 2010/10/08 08:00:46 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:42 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:24 +0000
category_id: None ⇨ 35
Reported by Eevee on 2011/04/28 05:34:41 +0000 · Migrated from Redmine issue 603
How long has it been with no RSS feed for the news?! Good grief man!
Redmine metadata:
Updated on: 2011/04/28 05:34:41 +0000
Start date: 2011/04/28
Reported by Eevee on 2010/05/07 23:59:08 +0000 · Migrated from Redmine issue 261
You know you want to.
Redmine metadata:
Updated on: 2011/04/21 02:54:20 +0000
Start date: 2010/05/07
Comment by Eevee from 2010/08/17 02:19:10 +0000
I don’t think this is reeeeally necessary to do six weeks ago. There aren’t even any publicly-postable forums yet.
Investigate it, at least. Sticking it in Q3 because it’s at least conceptually simple.
Target version: 2010 Q2 ⇨ 2010 Q3
Comment by Eevee from 2010/10/07 01:59:50 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:44 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:39 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:20 +0000
category_id: None ⇨ 35
Reported by Eevee on 2011/04/28 05:39:31 +0000 · Migrated from Redmine issue 606
Sorting by “activity” was an interesting idea, but sucks. Without unread posts I don’t know what I’ve actually read. Durrr.
Sort by recency (with a DATE goddamn) but indicate the activity level some other way still.
Redmine metadata:
Updated on: 2011/04/28 05:39:31 +0000
Start date: 2011/04/28
Reported by Eevee on 2010/04/13 20:56:27 +0000 · Migrated from Redmine issue 161
Do what it says on the can.
No rush.
Redmine metadata:
Updated on: 2010/10/08 08:00:35 +0000
Start date: 2010/04/13
Comment by Eevee from 2010/09/21 01:37:29 +0000
RUSH.
priority_id: 3 ⇨ 5
Comment by Eevee from 2010/10/08 08:00:35 +0000
Assignee ⇨ —
Reported by Eevee on 2009/08/12 23:46:50 +0000 · Migrated from Redmine issue 71
To be figured out much later.
Still need to have some notion of “mine” vs “global”, though.
Redmine metadata:
Updated on: 2011/04/21 02:55:42 +0000
Start date: 2009/08/12
Relations:
blocks #72
Comment by Eevee from 2010/04/13 19:29:30 +0000
Target version: 19 ⇨ 12
Comment by Eevee from 2010/04/13 19:39:30 +0000
Target version: 12 ⇨ 2010 Q3
Comment by Eevee from 2010/08/08 12:57:35 +0000
Got something going, here.
forum:create-post
.NULL
are available to all users.Status: OPEN ⇨ ON IT
Comment by Eevee from 2010/10/07 02:00:18 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2011/04/21 02:55:15 +0000
Project: spline-users ⇨ spline
Comment by Eevee from 2011/04/21 02:55:42 +0000
category_id: None ⇨ 36
Reported by Eevee on 2009/08/12 23:48:43 +0000 · Migrated from Redmine issue 72
I imagine this will be trivial to build on top of a good permissions system. I also imagine I am way wrong.
Have reasons, allow banning by IP range?, make it publicly viewable, have it affect usernames wherever they are drawn.
Redmine metadata:
Updated on: 2011/04/21 02:55:43 +0000
Start date: 2009/08/12
Relations:
blocked #71
Comment by Eevee from 2010/04/13 19:29:31 +0000
Target version: 19 ⇨ 12
Comment by Eevee from 2010/04/13 19:39:30 +0000
Target version: 12 ⇨ 2010 Q3
Comment by Eevee from 2010/10/07 02:00:19 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:02:16 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:55:15 +0000
Project: spline-users ⇨ spline
Comment by Eevee from 2011/04/21 02:55:43 +0000
category_id: None ⇨ 36
Reported by Eevee on 2010/09/13 02:36:26 +0000 · Migrated from Redmine issue 359
Link menus need:
I look super dumb at the moment with backwards menus so this is important. It’ll get worse once forums and users jump onto the menu.
Redmine metadata:
Updated on: 2010/10/08 08:00:36 +0000
Start date: 2010/09/13
Comment by Eevee from 2010/10/07 01:59:27 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:36 +0000
Assignee ⇨ —
Reported by Eevee on 2010/08/06 00:27:01 +0000 · Migrated from Redmine issue 322
And history.
And diffs!
Redmine metadata:
Updated on: 2011/06/13 04:52:48 +0000
Start date: 2010/08/06
Comment by Eevee from 2010/10/08 08:00:45 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:41 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:22 +0000
category_id: None ⇨ 35
Comment by Anonymous from 2011/06/13 04:52:49 +0000
(spam, elided)
Reported by Eevee on 2010/08/12 14:11:05 +0000 · Migrated from Redmine issue 331
Why not, man. See if the embedded version will be useful for us.
Redmine metadata:
Updated on: 2011/04/21 02:54:23 +0000
Start date: 2010/08/12
Comment by Eevee from 2010/10/07 01:59:51 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:46 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:42 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:23 +0000
category_id: None ⇨ 35
Reported by Eevee on 2009/06/02 22:41:54 +0000 · Migrated from Redmine issue 36
Put templates in their own plugin-specific directories, just like static stuff. This will keep widgets from clobbering each other and remove the need for a plugin-named directory everywhere.
Not sure if I should be doing self.render('/pokemon.mako')
and have self.render
pick the right directory or do render('/pokedex/pokemon.mako')
and override TemplateLookup
to dispatch to the right plugin based on path.
Also, what to do about CSS files with the same name? Should one still clobber the other as before, or should they all be loaded in priority order? Overriding the main Spline theme seems like a pain; perhaps a single name like theme.mako
should be special and get clobbered? Ehh. This might be worth adding real theme support over.
Redmine metadata:
Updated on: 2010/10/08 08:00:34 +0000
Start date: 2009/06/02
Comment by Eevee from 2009/08/12 22:29:23 +0000
Difficulty: Normal
Comment by Eevee from 2010/10/08 08:00:34 +0000
Assignee ⇨ —
Reported by Eevee on 2010/08/06 00:27:52 +0000 · Migrated from Redmine issue 323
.
Redmine metadata:
Updated on: 2011/04/21 02:54:22 +0000
Start date: 2010/08/06
Comment by Eevee from 2010/10/08 08:00:45 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:41 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:22 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/08/03 00:51:51 +0000 · Migrated from Redmine issue 316
blurgh
Redmine metadata:
Updated on: 2011/04/21 02:54:22 +0000
Start date: 2010/08/03
Comment by Eevee from 2010/10/07 01:59:51 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:45 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:40 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:22 +0000
category_id: None ⇨ 35
Reported by Eevee on 2011/04/28 05:55:53 +0000 · Migrated from Redmine issue 610
Blockquotes, lists, and surely other things are completely unstyled at the moment. Uncool.
Redmine metadata:
Updated on: 2011/05/01 01:34:35 +0000
Start date: 2011/04/28
Comment by Anonymous from 2011/04/29 02:12:03 +0000
If I recall, single line breaks don’t show up at all. Sorry, you’re probably aware of this, but I think it’s worth mentioning on its own. - Plastic Box
Comment by Eevee from 2011/04/29 02:25:34 +0000
That’s actually a feature! It’s just not documented and there’s no preview. :V
Comment by Anonymous from 2011/05/01 01:34:35 +0000
Hrm, interesting. For what reason? (It’s just noticeable to me since I use single line breaks a lot. And people use them for lists instead of
Reported by Eevee on 2009/05/15 01:21:36 +0000 · Migrated from Redmine issue 27
That is, veekun.com/static
or whatever should contain softlinks to the static directories for every plugin. Then only one Apache alias is required and the user doesn’t have to care what the plugins are.
Redmine metadata:
Updated on: 2010/10/08 08:00:34 +0000
Start date: 2009/05/15
Relations:
blocked #28
blocked #26
Comment by Eevee from 2009/05/15 01:21:49 +0000
Tracker: Bug ⇨ Feature
Comment by Eevee from 2009/08/12 22:24:07 +0000
Difficulty: Easy
Comment by Eevee from 2010/10/08 08:00:34 +0000
Assignee ⇨ —
Reported by Eevee on 2011/04/28 05:56:47 +0000 · Migrated from Redmine issue 611
Names are sticky and require passing the form object and all kinds of absurdities. Just pass the field object.
Redmine metadata:
Updated on: 2011/04/28 05:56:47 +0000
Start date: 2011/04/28
Reported by Eevee on 2010/08/06 00:28:25 +0000 · Migrated from Redmine issue 324
.
Redmine metadata:
Updated on: 2011/04/21 02:54:23 +0000
Start date: 2010/08/06
Comment by Eevee from 2010/10/08 08:00:45 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:41 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:23 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/07/18 01:12:38 +0000 · Migrated from Redmine issue 291
Things that are relevant:
Redmine metadata:
Updated on: 2010/10/08 08:00:35 +0000
Start date: 2010/07/18
Comment by Zhorken from 2010/08/10 00:50:00 +0000
Musing: it’d be kinda cool to see timestamps in both my timezone and the poster’s timezone, so that I can tell when the post was posted in an absolute sense, and when it was posted to the poster—it could be interesting to note that (s)he posted it at 3 AM. Though that second timestamp would probably need to be… less prominent, somehow.
Comment by Eevee from 2010/10/07 01:59:26 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:35 +0000
Assignee ⇨ —
Reported by Eevee on 2010/10/06 05:34:09 +0000 · Migrated from Redmine issue 386
People just won’t stop complaining!
Possibly make them gradients instead.
I’d like to do this sooner rather than later, as colorbars are supposed to never change.
Redmine metadata:
Updated on: 2011/04/21 02:55:44 +0000
Start date: 2010/10/06
Comment by Eevee from 2010/10/08 08:02:17 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:55:17 +0000
Project: spline-users ⇨ spline
Comment by Eevee from 2011/04/21 02:55:44 +0000
category_id: None ⇨ 36
Reported by Eevee on 2011/04/22 04:51:04 +0000 · Migrated from Redmine issue 587
I was relying on setuptools dependencies before, but now there are multiple plugins in the same repo and codebase. So there’s nothing to stop you from loading the forum
plugin without users
, which will then crash and burn for strange reasons (or, worse, won’t).
Plugins should be able to specify deps themselves, and spline should check that they’re satisfied.
(I’d like to hold off on major plugin arch changes until after pyramid, if that happens anytime soon.)
Redmine metadata:
Updated on: 2011/04/22 04:51:04 +0000
Start date: 2011/04/22
Reported by Eevee on 2010/09/12 02:14:16 +0000 · Migrated from Redmine issue 357
Make some little template functions, or helpers, or whatever, so I can make rounded borders and drop shadows work in every browser without a whole lot of fuckin’ typing.
Redmine metadata:
Updated on: 2010/10/08 08:00:35 +0000
Start date: 2010/09/12
Comment by Eevee from 2010/10/07 01:59:27 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:35 +0000
Assignee ⇨ —
Reported by Eevee on 2010/04/13 20:56:03 +0000 · Migrated from Redmine issue 160
Redmine metadata:
Updated on: 2010/10/08 08:00:34 +0000
Start date: 2010/04/13
Relations:
blocks #396
Comment by Eevee from 2010/05/05 20:39:49 +0000
Updated subject
priority_id: 3 ⇨ 4
Target version: — ⇨ 2010 Q3
Difficulty: Normal
Comment by Eevee from 2010/10/07 01:59:26 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:34 +0000
Assignee ⇨ —
Reported by Eevee on 2010/08/05 23:36:32 +0000 · Migrated from Redmine issue 320
Redmine metadata:
Updated on: 2011/04/21 02:55:43 +0000
Start date: 2010/08/05
Comment by Eevee from 2010/10/07 02:00:19 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:02:16 +0000
Assignee ⇨ —
Comment by Anonymous from 2011/02/14 07:39:13 +0000
(elided; spam)
Comment by Eevee from 2011/04/21 02:55:16 +0000
Project: spline-users ⇨ spline
Comment by Eevee from 2011/04/21 02:55:43 +0000
category_id: None ⇨ 36
Reported by Eevee on 2010/08/14 21:52:34 +0000 · Migrated from Redmine issue 335
Gonna have to verify it, too. Blurgh!
Maybe put it in a new “contact” table, so I can add nifty stuff like Jabber handles later.
Redmine metadata:
Updated on: 2011/04/21 02:55:43 +0000
Start date: 2010/08/14
Comment by Eevee from 2010/10/07 02:00:19 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:02:17 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:55:16 +0000
Project: spline-users ⇨ spline
Comment by Eevee from 2011/04/21 02:55:43 +0000
category_id: None ⇨ 36
Reported by Eevee on 2010/08/06 00:26:43 +0000 · Migrated from Redmine issue 321
.
Redmine metadata:
Updated on: 2011/04/21 02:54:22 +0000
Start date: 2010/08/06
Comment by Eevee from 2010/08/06 00:30:33 +0000
Updated subject
Comment by Eevee from 2011/04/21 02:50:41 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:22 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/08/06 00:32:27 +0000 · Migrated from Redmine issue 326
Special forum type that isn’t actually a forum? Maybe a fake access level?
Redmine metadata:
Updated on: 2011/04/21 02:54:23 +0000
Start date: 2010/08/06
Comment by Eevee from 2010/10/08 08:00:46 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:42 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:23 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/05/25 18:15:23 +0000 · Migrated from Redmine issue 274
https://developer.mozilla.org/en/DOM/window.onerror
Set error handler, toss a trivial ajax request to the backend, profit.
Some sort of sane rate limiting or something should probably be put in place just in case.
Redmine metadata:
Updated on: 2010/10/08 08:00:35 +0000
Start date: 2010/05/25
Comment by Eevee from 2010/10/08 08:00:35 +0000
Assignee ⇨ —
Reported by Eevee on 2010/09/09 00:24:59 +0000 · Migrated from Redmine issue 355
It’s way faster, especially in postgres, but sqlalchemy leaves it off by default in the interest of caution.
Would be nice to do and all.
Redmine metadata:
Updated on: 2010/10/07 01:59:26 +0000
Start date: 2010/09/09
Comment by Eevee from 2010/10/07 01:59:26 +0000
Target version: 2010 Q3 ⇨ —
Reported by Eevee on 2010/07/09 20:10:35 +0000 · Migrated from Redmine issue 284
You need to have a test.ini and a data/ directory in the plugin repo to make it work. Bleh.
Instead, maybe just run all the tests for all the plugins at once and let it work from the deployment directory. Then test.ini can live in the repository and inherit from development.ini. If you want to only test some plugins, nose can already do that for you.
Redmine metadata:
Updated on: 2010/10/07 01:59:26 +0000
Start date: 2010/07/09
Comment by Eevee from 2010/10/07 01:59:26 +0000
Target version: 2010 Q3 ⇨ —
Reported by Eevee on 2010/12/15 04:16:56 +0000 · Migrated from Redmine issue 467
Might be nice, since it can do the concatenating and minifying on its own.
Kinda wary of having a non-library Ruby dependency, though!
Redmine metadata:
Updated on: 2011/04/28 05:23:28 +0000
Start date: 2010/12/15
Relations:
blocks #592
blocks #613
blocks #645
Comment by En-Cu-Kou from 2010/12/15 11:07:31 +0000
Make Spline even harder to install. And maintain.
Is there a way to make it optional?
Comment by Eevee from 2010/12/17 02:13:38 +0000
It can install as a standalone program, at least from apt.
Making it optional is nonsensical. Either the CSS would be broken without it, or it doesn’t actually do anything.
Comment by Eevee from 2011/04/28 05:23:28 +0000
Target version: — ⇨ 2011 Q2
priority_id: 4 ⇨ 7
Assignee ⇨ Eevee
Reported by Eevee on 2009/08/12 23:45:19 +0000 · Migrated from Redmine issue 70
I guess this would be pretty bare-bones to start, but we need something to start with.
Redmine metadata:
Updated on: 2011/04/21 02:55:42 +0000
Start date: 2009/08/12
Comment by Eevee from 2010/04/13 19:29:22 +0000
Target version: 18 ⇨ 8
Comment by Eevee from 2010/04/13 19:39:30 +0000
Target version: 8 ⇨ 2010 Q3
Comment by Eevee from 2010/10/07 02:00:18 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:02:16 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:55:15 +0000
Project: spline-users ⇨ spline
Comment by Eevee from 2011/04/21 02:55:42 +0000
category_id: None ⇨ 36
Reported by Eevee on 2010/09/12 02:34:34 +0000 · Migrated from Redmine issue 358
That is: do what spline-frontpage
already does in Python land, and give me a javascript function that will use a cookie for guests or the user stash for logged-in users.
The tricky bit is making it work whether or not spline-users
is loaded; probably needs a stub in core that just sets a cookie.
The other potentially tricky bit is making sure the Right Thing happens when someone logs in—i.e., has both a cookie and something user-side. Either have some mechanism for one way to “win” (e.g., frontpage takes the later of two dates), or just decide that one always wins. Or prefer the cookie, save it automatically, and then delete it. Or.. whatever.
Redmine metadata:
Updated on: 2011/04/21 02:55:44 +0000
Start date: 2010/09/12
Comment by Eevee from 2010/10/07 02:00:19 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:02:17 +0000
Assignee ⇨ —
Comment by Anonymous from 2011/02/14 07:54:55 +0000
(elided; spam)
Comment by Eevee from 2011/04/21 02:55:16 +0000
Project: spline-users ⇨ spline
Comment by Eevee from 2011/04/21 02:55:44 +0000
category_id: None ⇨ 36
Reported by Eevee on 2010/08/06 00:28:37 +0000 · Migrated from Redmine issue 325
.
Redmine metadata:
Updated on: 2011/04/21 02:54:23 +0000
Start date: 2010/08/06
Comment by Eevee from 2010/10/08 08:00:45 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:42 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:23 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/08/03 15:08:14 +0000 · Migrated from Redmine issue 318
Teeny icons to differentiate threads that are less stupid than most forums. SA-style is best but I sort of doubt I’ll bother to that extent. Use Fugue for now. Integrate them for real.
Forums, too? Or should that get something more.. flexible?
Redmine metadata:
Updated on: 2011/04/21 02:54:22 +0000
Start date: 2010/08/03
Comment by Eevee from 2010/10/07 01:59:51 +0000
Target version: 2010 Q3 ⇨ —
Comment by Eevee from 2010/10/08 08:00:45 +0000
Assignee ⇨ —
Comment by Eevee from 2011/04/21 02:50:41 +0000
Project: spline-forum ⇨ spline
Comment by Eevee from 2011/04/21 02:54:22 +0000
category_id: None ⇨ 35
Reported by Eevee on 2010/11/07 21:48:00 +0000 · Migrated from Redmine issue 440
Pylons is as good as dead. See: http://docs.pylonshq.com/
It looks like its replacement, Pyramid, is a much better fit for spline’s plugin shenanigans anyway. Maybe this could be a good start towards making spline a real project.
Definitely don’t merge this until Pyramid has a non-alpha release.
Redmine metadata:
Updated on: 2011/11/15 08:32:50 +0000
Start date: 2010/11/07
Relations:
duplicated #608
Comment by Eevee from 2011/04/22 04:43:24 +0000
Might be nice to bail on setuptools at the same time. Not sure what Pyramid relies on, if it relies on anything.
Comment by Eevee from 2011/04/28 21:27:50 +0000
Things about Pylons that bother me that I would like to move away from in the process, if Pyramid isn’t bolted tightly to them:
Things about spline that are broken and this is a good chance to fix them since I’ll wreck everything in the process anyway:
category_id: None ⇨ 37
Comment by En-Cu-Kou from 2011/11/14 00:58:44 +0000
Setuptools: Pyramid is still using it. But, we should at least have plugins listed in the config file explicitly rather than just using whatever’s currently installed. And get rid of the namespace package thing for plugins.
On a related note, it would be cool to have two instances of a plugin, with different config (e.g. root URL), in one app.
Nose: Pyramid seems agnostic here, and recommends unittest. Pytest seems very possible.
Paster/.ini: Pyramid uses that, though there are plans to ditch it in 2.0. For now we probably want to just live with it.
Pyramid doesn’t use paster make-config
or paster setup-app
. We’ll probably want to include sample development.ini files with the projects, and maybe auto-install on first run.
Plugin resources: Pyramid’s template mechanism wants mako.directories in the top-level config. Might want to (ugh) ditch that and call Mako directly. But maybe that’ll also help solve the mess with translators.
URL traversal should work wonders for controllers.
Comment by Eevee from 2011/11/14 19:31:21 +0000
I have a very simple attempt at this; it consists of a dead-simple core with a single template, and a plugin that adds a new URL with a different template.
Pyramid uses setuptools, but doesn’t strictly require it, and i believe there’s even a ticket somewhere for removing some light implicit dependencies on it. Or maybe i’m thinking of the paste stuff.
Plugins are already listed in the config file explicitly; loading everything is a bad default that should go away.
The namespace package would no longer be required, but i’ll probably keep using it anyway because it makes a lot of sense for plugins for the same thing to all live in the same hierarchy.
Two instances would be… possible, though tricky, and it’s not immediately clear what you’d use it for…
You don’t actually need to use mako.directories
; Pyramid does some handwaving to make package resource paths work anywhere in Mako, i.e., splinext.pokedex:templates/pokemon.mako
. It’s a bit more verbose, but paths are relatively uncommon and it avoids the crazy path overloading stuff so i don’t care about that. (Said overloading now becomes considerably more difficult if we ever do want it, but i’m not sure we do.)
Traversal will be interesting. I had a conceptual problem with it in floof that ultimately drove me back to routing: there’s no nice way to glue traversal to the ORM without heavily instrumenting the ORM, and that rings very backwards to me.
Comment by En-Cu-Kou from 2011/11/14 20:23:00 +0000
Eevee wrote:
I have a very simple attempt at this; it consists of a dead-simple core with a single template, and a plugin that adds a new URL with a different template.
Share! I don’t want to duplicate your efforts.
Two instances would be… possible, though tricky, and it’s not immediately clear what you’d use it for…
One example: The frontpage plugin basically implements its own plugin system now. It could just use regular plugins with a custom hook.
You don’t actually need to use
mako.directories
; Pyramid does some handwaving to make package resource paths work anywhere in Mako, i.e.,splinext.pokedex:templates/pokemon.mako
. It’s a bit more verbose, but paths are relatively uncommon and it avoids the crazy path overloading stuff so i don’t care about that. (Said overloading now becomes considerably more difficult if we ever do want it, but i’m not sure we do.)
Sweet.
Traversal will be interesting. I had a conceptual problem with it in floof that ultimately drove me back to routing: there’s no nice way to glue traversal to the ORM without heavily instrumenting the ORM, and that rings very backwards to me.
Yeah, the Pyramid docs want you to overload your model for this, which is of course messy if the model lives in an unrelated package. Don’t do that.
Instead, have a lightweight “controller” object for every node in the tree. I came up with something like this: https://gist.github.com/1365007
Now all URL stuff should be done through these objects; to get a Resource for an ORM entity you‘d do something like dex_root[’pokemon’].wrap (pokemon) in some helper.
My idea also pretty much does away with views, and has just Resources, with one universal view that calls render () or something. Saves the trouble of scanning or registering all the views in advance.
Comment by Eevee from 2011/11/15 02:14:31 +0000
En-Cu-Kou wrote:
Share! I don’t want to duplicate your efforts.
Yeah, yeah… 8)
One example: The frontpage plugin basically implements its own plugin system now. It could just use regular plugins with a custom hook.
Clever girl. Frontpage’s subplugins, though, are more logic than anything else.
Take the users plugin, which wants both a /users
and /account
namespace. How do we handle this just with Pyramid’s prefixing power?
Yeah, the Pyramid docs want you to overload your model for this, which is of course messy if the model lives in an unrelated package. Don’t do that.
Instead, have a lightweight “controller” object for every node in the tree. I came up with something like this: https://gist.github.com/1365007
Now all URL stuff should be done through these objects; to get a Resource for an ORM entity you‘d do something like dex_root[’pokemon’].wrap (pokemon) in some helper.
And then you‘d generate a URL with request.resource_url (dex_root[’pokemon’].wrap (pokemon))
?
Hmm. I can kind of dig that.
My idea also pretty much does away with views, and has just Resources, with one universal view that calls render () or something. Saves the trouble of scanning or registering all the views in advance.
What’s the advantage of this over the existing Pyramid view mapping system? Sounds like you’d end up reinventing it.
Scanning is just config.scan(splinext.pokedex.views)
— not particularly difficult.
Comment by En-Cu-Kou from 2011/11/15 08:32:50 +0000
Eevee wrote:
Take the users plugin, which wants both a
/users
and/account
namespace. How do we handle this just with Pyramid’s prefixing power?
By a plugin with two URL root classes. The root should be separate from the plugin itself anyway.
Anyway, users is the one plugin we just might want to have a singleton for, to ease interactions with other plugins. There could be plugins for users, though (openid, local, oauth, browserid, …)
And then you‘d generate a URL with
request.resource_url (dex_root[’pokemon’].wrap (pokemon))
?
Actually dex_root['pokemon'].wrap(pokemon).url
will do just that, as seen in that gist. The Resource instances are request-specific.
My idea also pretty much does away with views, and has just Resources, with one universal view that calls render () or something. Saves the trouble of scanning or registering all the views in advance.
What’s the advantage of this over the existing Pyramid view mapping system? Sounds like you’d end up reinventing it.
Scanning is just
config.scan(splinext.pokedex.views)
— not particularly difficult.
One advantage is consistency: every URL has an object with the same interface behind it.
I guess I don’t really get what Pyramid’s view system is that great for.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.