WikiDB/Roadmap

From TestWiki
< WikiDB
Revision as of 03:33, 23 January 2007 by HappyDog (Talk | contribs) (Bugs: data tab not displayed when table definition missing in 1.6.8)

Jump to: navigation, search

This is an (incomplete) list of features and bugs that need fixing for v1.

Bugs

  • On table display, the definition is currently above the page title and sitenotice. This only seemed to happen since I set 'MediaWiki:Sitenotice', so maybe has something to do with that - or maybe I just never noticed it for some reason? --HappyDog 00:00, 6 January 2007 (GMT)
    • It was to do with the site notice. ParserBeforeStrip is being called once for each interface message that uses wiki text (I assume - it's being called for that one, anyway!). I now use a flag so that the code in my hook only executes the first time it is called for a page. This will only work if (a) the hook is called for every page view (i.e. it is not avoided by caching) and (b) it is always called first. I don't know the answer to either of these, so if the bug resurfaces please let me know! --HappyDog 03:30, 23 January 2007 (GMT)
  • If a table doesn't have a definition, the 'data' tab is not displayed in 1.6.8 (it's ok in 1.5.6). --HappyDog 03:33, 23 January 2007 (GMT)

Administration

  • Update tables when page is moved.
  • Update tables when page is deleted.
  • Update tables when page is undeleted.
  • (check that rollbacks work)
  • 'What links here' should show templates that are included via data tags.

Syntax

  • Better data syntax: Need to allow multiple rows in a single definition.
    • Also, data definitions in a DB namespace shouldn't require the 'table' attribute (default to current).
  • Repeat tag - some things to iron out (see below)
  • Field names need to be limited to 255 chars (DB limit)
  • Field names need to have leading underscores removed (Reserved for special uses)

Repeat tag

Still quite a way to go on this, but here's where I'm up to:

Done

  • Basic sort/filter is implemented. Only limited filter options available, due to a parsing issue with MW/HTML.
  • Contents of repeat tag are repeated for each row with variables expanded (see below for limitations).

To Do

  • Tag Contents
    • Aliases are currently expanding correctly, but not in a foolproof manner (e.g. aliases that point to aliases are not handled - this is a general issue, I think)
    • Undefined fields - is their current handling OK? Currently they will be expanded if defined for the row, and left as they are if not. This might be the best behaviour, but perhaps not.
    • Cannot currently supply default values for empty fields. In any case (given the above point) default values for undefined fields must, by definition, be ignored (I think).
    • Cannot handle nested vars. Not a problem at the moment, but if default values are allowed, the default should be allowed to be an alternative variable (e.g. {{{ShortName}}} should be valid syntax).
    • Should strip blank lines at start and end. Maybe restrict to stripping 1 line only (so <repeat> need not be on the same line as the start of it's content). Should _not_ use trim(), as we need to allow for space at start of line (wiki <pre> syntax).
  • Filtering
    • Can't use > in attribute values, e.g. criteria="Field>Value", as it cripples parser. Need to decide how to specify criteria.
    • In general - how detailed can we get?
  • Other
    • Ability to have header/footer? Ideally you put your header before the repeat tag, and the footer afterwards, but tables are screwed up by this (though I might be able to fix that somehow). There may also be other situations that cause problems.

Code Tidying

  • Ensure all user-visible text uses the message cache.
  • Add profiling statements.
  • Move datatype handlers out of WikiDB class (into separate module).

Misc

  • References to tables in table="..." attributes should follow redirects. This allows tables to be moved without screwing everything up!
  • Special:UnusedTables to list tables that don't have any data (opposite of Special:UndefinedTables).