Code Monkey home page Code Monkey logo

spline's People

Contributors

cattrinket avatar eevee avatar encukou avatar magical avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

spline's Issues

Evaluate deform

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

Add/link to some sort of markdown reference

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

Markup

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

Forum management admin UI

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

Wire in StupidFilter

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

Forum summary on front page sucks

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

Cache and minify JS

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 ⇨ —

Permissions system

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.

  • Permissions are just arbitrary strings. So far I’m prefixing them with plugin names and making them actions, e.g. forum:create-post.
  • Eventually, plugins will report their own canonical lists of permissions and descriptions thereof. This will be in code, not in the db, for the sake of keeping db upgrades simple.
  • Permissions are assigned to roles. Users can have zero or more roles.
  • Permissions assigned to NULL are available to all users.
  • I’d kinda like to have un-permissions, e.g. for banning 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

Ban system

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

Links 3.0

Reported by Eevee on 2010/09/13 02:36:26 +0000 · Migrated from Redmine issue 359


Link menus need:

  • to be able to specify their relative order, either within the plugin or in the config file (or both), and
  • to support multiple columns. That ‘Pokédex’ menu is getting kinda big, chief.

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 ⇨ —

Post editing

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)

Investigate Bespin

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

Fix template namespacing

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 ⇨ —

Sticky and announcement threads

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

Unread posts

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

Style forum prose

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

    or
      , apparently.)

Instance directory should softlink to plugin static folders

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 ⇨ —

Post quoting

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

Fix time handling

Reported by Eevee on 2010/07/18 01:12:38 +0000 · Migrated from Redmine issue 291


  1. Times need to be formatted by a global formatting string; right now they’re all (deliberately) the default.
  2. Timezones need to be used! All incoming dates should be immediately converted to UTC, and spat back out as a local timezone (which users can configure). Not sure what the default should be; tempted to use UTC and show the current time in base.mako, OR see if something in http will hint at it.

Things that are relevant:

  • Forum posts (saved timestamp needs to be UTC)
  • Git log on front page (incoming too!)
  • RSS stuff on front page (incoming too!)
  • User registration time
  • GTS uploads
  • Any datetime column in the db anywhere

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 ⇨ —

Colorbars are still ugly

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

Need to specify plugin dependencies

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

Make CSS3 stuff browser-agnostic

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 ⇨ —

Make plugins' CSS theme-agnostic

Reported by Eevee on 2010/04/13 20:56:03 +0000 · Migrated from Redmine issue 160


  1. Replace all the plugins’ colors with Mako variable substitutions.
  2. Minify and cache the result.

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 ⇨ —

Finish permission admin UI

Reported by Eevee on 2010/08/05 23:36:32 +0000 · Migrated from Redmine issue 320


  • Show number of users per role (and who they are for few users?)
  • Let me add, edit, remove roles
  • Let me add, remove permissions from roles
  • Show roles on a user’s profile — including “root”
  • Show global permissions

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

Support email address (and fix gravatars)

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

Thread and post deletion/locking

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

Forum "headers"

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

Slap innerjoin=True on a bunch of relations

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 ⇨ —

Make tests easier to run out of the box

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 ⇨ —

Investigate SASS

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

User pages

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

Provide a mechanism for saving data server AND client-side

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

Thread split/merge

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

Thread tags

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

Port to Pyramid

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:

  • Setuptools.
  • Nose.
  • Paster in general, its absurd config file, etc.

Things about spline that are broken and this is a good chance to fix them since I’ll wreck everything in the process anyway:

  • Where plugin resources live. We have JS, CSS, generic static files, templates, model code, and controllers. Each are namespaced independently. Makes for kind of a mess. Seems like plugins should act as self-contained as possible, but still be able to interact with each other if they ask nicely.
  • How the “local” plugin works. At the moment it’s an isolated Python file, which is frightening.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.