CompostUs

Revision as of 18:16, 22 February 2008 by Ward Cunningham (talk | contribs) (Functionality: openid steps)



OurWork Edit-chalk-10bo12.png


CompostUsPath.png CompostUsRequestPath.png

What (summary)

Have our rails framework, Compost, handle basic page views and proxy all complex wiki requests back to Mediawiki.

Why this is important

We are sick and tired of being hobbled by our primary PHP environment. If we have every request handled primarily by Rails will give us a great deal of flexibility in writing new extensions, while still maintaining Mediawiki for a continuously shrinking subset of requests will make migration to our new platform feasible.

Punchlist

Deploy

  • DNS for compostus.aboutus.org
  • apache configuration for compostus.aboutus.org
  • cap compostus:deploy from the compostus branch prompts for TAGNAME updates /www/aboutus/compostus on squal1, squal2, squal3, squal-bot1
  • Adjust apache configuration to serve static content directly
  • populate dev stages with sample data from site

Functionality

  • signup
  • openId
    • explore existing openid
    • find ruby implementation
  • redirects
  • search should short circuit to existing pages
  • parser functions that create full url links create them pointing at mediawiki:8888 rather than the correct server

Skin

  • when tabbing out a link, the wiki functions never show up (the ones that magically appear when you hover over a section)
  • styling for signup views
  • Navigation and edit tools all work
    • Missing methods
  • Finish the skin
  • Section editing doesn't work
  • Need to finish up the authentication screens
    • will probably need assistance (vinh!)

Claims

  • Create a claim retrieval function in compost

Mediawiki API

  • Pass in text, get back parsed html (for claims etc)

Bugs/Errors as you find 'em

  • links to special pages shouldn't percent encode the : (%3A)
  • no method error in authenticate when @page.is_special? - vinh
  • when navigating to a User: page - vinh
NoMethodError in MediawikiController#view
app/models/page.rb:35:in `find_by_prefixed_casespace'
app/controllers/mediawiki_controller.rb:64:in `get_page'
app/controllers/mediawiki_controller.rb:8:in `view'
  • MW system msgs aren't available for "ad sidebar", ...

DoneDone

Steps to get to DoneDone

  • CompostUs/Skin ... Port AboutUs skin to rails. (Vinh, Stephen)
  • Build shell Mediawiki skin that serializes relevant output and relays it back to Rails. (Stephen)
  • Build well-tested Rails controller that proxies back all GET and POST requests to Mediawiki.
  • CompostUs/Auth Build authentication framework that uses Mediawiki's user DB but relies on Rails sessions.
    • Integrate Ruby OpenID extensions with existing Mediawiki OpenID DB schema.
    • Disable Mediawiki log in pages.
  • Build parser for Mediawiki titles (IE "Template:Bob" gets translated to {:title => "Bob", :namespace => 10})
    • This is already done. In claims branch, look at Page.extract_namespace_and_title(title) in page.rb script.
  • Build casespace resolver for page titles
    • This is also done. In claims branch, see Page.find_by_casespace(title) in page.rb script.
  • CompostUs/Caching Build database parser cache to persistently keep Mediawiki parser output to minimize usage of PHP
    • Mediawiki is invoked only if there exists no output in the parser cache.


Retrieved from "http://aboutus.com/index.php?title=CompostUs&oldid=14871665"