| t | This file contains notes about the status and progress of TBWiki | t | |
| <hr size=4> | | |
| | | |
| <table align="right"><tr><td><div class="toc"> | | |
| Contents: | | |
| <ul> | | |
| <li><a href="#Next_major_items_to_work_on">Next major items to work on</a></li> | | |
| <li><a href="#Things_to_do_(random_ideas,_un-triaged)">Things to do (random ideas, un-triaged)</a></li> | | |
| <li><a href="#Major_Features_that_are_not_complete_enough_to_use">Major Features that are not complete enough to use</a></li> | | |
| <ul> | | |
| <li><a href="#User_accounts">User accounts</a></li> | | |
| <li><a href="#Table_usability">Table usability</a></li> | | |
| </ul> | | |
| <li><a href="#BugList,_FIXTHIS,_Regressions">BugList, FIXTHIS, Regressions</a></li> | | |
| <ul> | | |
| <li><a href="#Table_of_combined_issues">Table of combined issues</a></li> | | |
| <li><a href="#Regression_count">Regression count</a></li> | | |
| </ul> | | |
| <li><a href="#Other_items_to_work_on,_by_category">Other items to work on, by category</a></li> | | |
| <ul> | | |
| <li><a href="#Style">Style</a></li> | | |
| <li><a href="#General">General</a></li> | | |
| <li><a href="#Security">Security</a></li> | | |
| <li><a href="#Processors">Processors</a></li> | | |
| <ul> | | |
| <li><a href="#Blog">Blog</a></li> | | |
| <li><a href="#ProgressChart">ProgressChart</a></li> | | |
| <li><a href="#SlideShow">SlideShow</a></li> | | |
| <li><a href="#ImageGallery">ImageGallery</a></li> | | |
| </ul> | | |
| <li><a href="#Tables">Tables</a></li> | | |
| <li><a href="#Forms_editing_and_Templates">Forms editing and Templates</a></li> | | |
| <li><a href="#Users_and_attributes">Users and attributes</a></li> | | |
| </ul> | | |
| <li><a href="#Long_term_ideas">Long term ideas</a></li> | | |
| <li><a href="#Things_Completed">Things Completed</a></li> | | |
| </ul> | | |
| </div></td></tr></table> | | |
| <p> | | |
| Note that some test materials are on a separate wiki at: | | |
| <a href="http://bird.org/cgi-bin/test.cgi/FrontPage">http://bird.org/cgi-bin/test.cgi/FrontPage</a> | | |
| <p> | | |
| Before working on this wiki any more, re-read this article by a developer | | |
| who has written 7 personal wikis: | | |
| <ul><li><a href="https://borretti.me/article/unbundling-tools-for-thought">https://borretti.me/article/unbundling-tools-for-thought</a> | | |
| <ul><li>the basic idea is that there are better tools for thought than personal wikis | | |
| <ul><li>but that's OK - tbwiki is a hobby project that is fun to work on | | |
| </ul> | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h1><a name="Next_major_items_to_work_on">Next major items to work on</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Next_major_items_to_work_on">edit section</a>]</font></span> | | |
| </h1> | | |
| <ul><li>add help routine to all processors (only 5 left as of November 2025) | | |
| <li>For SpaceBlog: Add features to ProcessorBlogMultipage | | |
| <ul><li>See <a href="http://bird.org/test/Multipage_Blog_To_Do">http://bird.org/test/Multipage_Blog_To_Do</a> | | |
| </ul><li>improve ProcessorChart | | |
| <ul><li>fix svg tags and content-type header returned from vgchart.draw_to_str_from_text | | |
| </ul><li>support captions | | |
| <ul><li>if caption="foo bar" is an attribute of an image, use figure, and figcaption to surround the image. | | |
| <li>see <a href="https://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_figcaption_css">https://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_figcaption_css</a> | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <ul><li>MacroCategory.py - show a list of pages in a particular category | | |
| <ul><li>See the <a href="/tbwiki/Category_Feature">Category Feature</a> page for details. | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <ul><li>(done) ExportSite processor | | |
| <li>Search macro: | | |
| <pre> | | |
| {{Search(word or phrase)}} | | |
| </pre> | | |
| </ul> | | |
| <p> | | |
| <ul><li>do performance enhancements, possibly using the <a href="https://pypi.org/project/scalene/">Scalene profiler</a> | | |
| <li>add a "blog" processor | | |
| <ul><li>for ideas, see: <a href="https://jekyllrb.com/docs/posts/">https://jekyllrb.com/docs/posts/</a> | | |
| <ul><li>save blog pages as: blog-YYYY-MM-DD | | |
| <li>don't support comments | | |
| <li>show index of blog posts, current post | | |
| </ul><li>research blog layouts: | | |
| <ul><li>see <a href="/tbwiki/Blog_Layouts_and_Features">Blog Layouts and Features</a> for ideas | | |
| </ul></ul><li>figure out why I keep getting logged out (is there something wrong with | | |
| the cookie expiration date?) | | |
| <li>get css from page area of local wiki | | |
| <ul><li>don't retrieve from /var/www/css | | |
| </ul><li>Support wiki on mobile devices | | |
| <ul><li>(done) fix up mobile theme | | |
| <ul><li>change mobile.css and mobile.footer and mobile.header | | |
| <li>some pages still show very small fonts on my phone | | |
| </ul><li>autodetect mobile phone browser, and use mobile theme automatically | | |
| <ul><li>user UserAgent field | | |
| </ul></ul><li>switch to wsgi - I considered flask, see <a href="/tbwiki/FlaskResearch">FlaskResearch</a> | | |
| <ul><li>should switch to wsgi - I have experience with that | | |
| </ul><li>enhance blog system (see <a href="/tbwiki/TBWikiToDo#Blog">TBWikiToDo#Blog</a>) | | |
| <li>add page lock (to support multi-user) | | |
| </ul> | | |
| <p> | | |
| <ul><li>make tables robust | | |
| <ul><li>eliminate save_table_data - placing support in appropriate routines | | |
| in the io_handler (tb.handler) | | |
| <ul><li>one of write() or some other class method. | | |
| </ul><li>fix bug 017. See <a href="/tbwiki/BugList">BugList</a> | | |
| <li>fix bug with edit-in-place on <a href="/tbwiki/QuarterlyData">QuarterlyData</a> table | | |
| <li>make automated test suite for testing page rendering | | |
| <li>fix all known bugs, with all known table types | | |
| <ul><li>make a table test matrix | | |
| </ul></ul><li>table flow control | | |
| <ul><li>for transcription program (ProcessorTranscriber.py) | | |
| <ul><li>make a view form and edit form for the transcriber database | | |
| <ul><li>read documentation on view and edit forms | | |
| </ul><li>add processor_name to the transcriber database config | | |
| </ul></ul><li>add support for hybrid tables | | |
| <ul><li>use case is to add a spreadsheet formula to the FIXTHIS pages, to show totals | | |
| <li>ability to have tables with records from different sources | | |
| <ul><li>add io_handler per-record | | |
| <li>need permission checks (readable, writable) per-record | | |
| </ul> | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h1><a name="Things_to_do_(random_ideas,_un-triaged)">Things to do (random ideas, un-triaged)</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Things_to_do_(random_ideas,_un-triaged)">edit section</a>]</font></span> | | |
| </h1> | | |
| <ul><li>don't allow caching a page edit page | | |
| <ul><li>use http meta cache-control directive to prevent caching | | |
| <li>set caching relatively low anyway | | |
| </ul><li>add page locking for edits - to prevent collisions | | |
| <ul><li>lock a page for 15 minutes when an edit is started | | |
| <ul><li>create a lock file in the admin directory | | |
| <ul><li>put user, start time, and page hash in lock file | | |
| </ul><li>start a timer to handle lock timeout | | |
| </ul><li>generate a hash of the page when the edit starts | | |
| <li>if someone else tries to edit, give them a warning that they have lower priority - indicate who has the lock | | |
| <li>when someone submits a page, compare the page hash and lock | | |
| <ul><li>if page hash doesn't match, don't save the data | | |
| <li>remove the lock | | |
| </ul><li>after 15 minutes, remove the lock | | |
| </ul><li>support arbitrary field addressability in json data: | | |
| <ul><li>JsonPageFile:field.list_field[n].foo.bar | | |
| </ul><li>fix bug: edit-in-place wipes out conf entries in inline block | | |
| </ul> | | |
| <p> | | |
| <ul><li>add 'tbclient list' feature | | |
| <ul><li>modify tbclient to send 'list' request | | |
| <li>modify ProcessorDataHandler.py to respond to list request | | |
| </ul><li>add TODAY() function to spreadsheet | | |
| </ul> | | |
| <p> | | |
| <ul><li>add websed over snapshotted values | | |
| <ul><li>add websed over diff of snapshotted values | | |
| </ul><li>add chart over snapshotted values | | |
| <ul><li>use plot charts? | | |
| </ul><li>add access-controlled content | | |
| <ul><li>the purpose of this is to add a page with contact information for other | | |
| test projects, on the fuego wiki | | |
| <li>see <a href="https://moinmo.in/HelpOnAccessControlLists">https://moinmo.in/HelpOnAccessControlLists</a> | | |
| <li>at the block level, with ProcessorAccessControl | | |
| <li>at the page level, with accesscontrol directive | | |
| <li>put required permissions at top of block | | |
| <li>prevent reading or writing to block (or page) | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <ul><li>add link to page for file column in attrdb and parsed data files (to go to page) | | |
| <ul><li>This is handy for FIXTHIS entries, and for editing | | |
| </ul><li><a href="/tbwiki/_bug0013">_bug0013</a> - can't edit-in-place the buglist | | |
| </ul> | | |
| <p> | | |
| <h1><a name="Major_Features_that_are_not_complete_enough_to_use">Major Features that are not complete enough to use</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Major_Features_that_are_not_complete_enough_to_use">edit section</a>]</font></span> | | |
| </h1> | | |
| <p> | | |
| <h2><a name="User_accounts">User accounts</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=User_accounts">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>Creating and administering user accounts | | |
| <ul><li>need to re-test user accounts, with new features (next_num) | | |
| <li>Users can create accounts, but physical access to the server is required to change admin flags, or to remove an account | | |
| <ul><li>may be able to use a special version of attrdb (raw page edit) for user accounts. It wouldn't be great but would get the job done for now. | | |
| <li>is the user edit form not working?? | | |
| </ul> | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h2><a name="Table_usability">Table usability</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Table_usability">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>Specific table usability features: | | |
| <ul><li>other usability feature is deciding which links to use for a table (I never use query, and always have to decide between 'edit-in-place' or 'edit') | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h1><a name="BugList,_FIXTHIS,_Regressions">BugList, FIXTHIS, Regressions</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=BugList,_FIXTHIS,_Regressions">edit section</a>]</font></span> | | |
| </h1> | | |
| <ul><li>See the <a href="/tbwiki/BugList">BugList</a> page for bugs that need to be worked on. | | |
| <ul><li>that bug list is from a database. Here is one that just text on a page: | | |
| <ul><li><a href="/tbwiki/Manual_Bug_List">Manual Bug List</a> | | |
| </ul></ul><li>See the <a href="/tbwiki/CodeFixthisList">CodeFixthisList</a> page for a list of FIX<b></b>THIS items in the code | | |
| <li>See the <a href="/tbwiki/PageFixthisList">PageFixthisList</a> page for a list of FIX<b></b>THIS items in the pages | | |
| </ul> | | |
| <p> | | |
| | | |
| <p> | | |
| <h2><a name="Table_of_combined_issues">Table of combined issues</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Table_of_combined_issues">edit section</a>]</font></span> | | |
| </h2> | | |
| <table border=1> | | |
| <tr bgcolor="#d0d0ff"> | | |
| <td align="center"><b>Date</b> <a href="/tbwiki/TBWikiToDo?sortby=Date">^</a></td> | | |
| <td align="center"><b>bug_count</b> <a href="/tbwiki/TBWikiToDo?sortby=bug_count">^</a></td> | | |
| <td align="center"><b>FIXTHIS_count</b> <a href="/tbwiki/TBWikiToDo?sortby=FIXTHIS_count">^</a></td> | | |
| <td align="center"><b>missing_FEATURES</b> <a href="/tbwiki/TBWikiToDo?sortby=missing_FEATURES">^</a></td> | | |
| <td align="center"><b>total</b> <a href="/tbwiki/TBWikiToDo?sortby=total">^</a></td> | | |
| </tr> | | |
| <tr> | | |
| <td>2017-03-08</td> | | |
| <td>15</td> | | |
| <td>xx</td> | | |
| <td>xx</td> | | |
| <td>15 + xx + xx</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2016-08-12</td> | | |
| <td>14</td> | | |
| <td>94</td> | | |
| <td>2</td> | | |
| <td>110</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2016-08-02</td> | | |
| <td>13</td> | | |
| <td>92</td> | | |
| <td>3</td> | | |
| <td>108</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2011-04-21</td> | | |
| <td>17</td> | | |
| <td>78</td> | | |
| <td>1</td> | | |
| <td>96</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2008-10-06</td> | | |
| <td>17</td> | | |
| <td>78</td> | | |
| <td>1</td> | | |
| <td>96</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2008-02-04</td> | | |
| <td>13</td> | | |
| <td>66 (55 cgi-bin+ 11 plugin)</td> | | |
| <td>3</td> | | |
| <td>82</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2007-07-25</td> | | |
| <td>9</td> | | |
| <td>62</td> | | |
| <td>3?</td> | | |
| <td>74</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2007-02-06</td> | | |
| <td>9</td> | | |
| <td>41</td> | | |
| <td>5</td> | | |
| <td>55</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2006-11-15</td> | | |
| <td>8</td> | | |
| <td>35</td> | | |
| <td>6</td> | | |
| <td>49</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2006-10-06</td> | | |
| <td>8</td> | | |
| <td>37</td> | | |
| <td>7</td> | | |
| <td>52</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2006-08-25</td> | | |
| <td>6</td> | | |
| <td>35</td> | | |
| <td>5</td> | | |
| <td>46</td> | | |
| </tr> | | |
| </table> | | |
| <a href="/tbwiki/TBWikiToDo?action=Table.query_form&source_spec=%23%3A.ToDoData&conf=&table_block=TBWikiToDo%3A__block3"> | | |
| <font size=-1>Query</font></a> | | |
| <br> | | |
| | | |
| <p> | | |
| <hr size=8> | | |
| <h2><a name="Regression_count">Regression count</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Regression_count">edit section</a>]</font></span> | | |
| </h2> | | |
| Periodically, check <a href="http://bird.org/test/Regression_Test">the regression test page</a> to see if things still work as expected. | | |
| <p> | | |
| Here's a table, manually maintained, with regression testing history. | | |
| <table border=1> | | |
| <tr bgcolor="#d0d0ff"> | | |
| <td align="center"><b>date</b> <a href="/tbwiki/TBWikiToDo?sortby=date">^</a></td> | | |
| <td align="center"><b>version</b> <a href="/tbwiki/TBWikiToDo?sortby=version">^</a></td> | | |
| <td align="center"><b>commit</b> <a href="/tbwiki/TBWikiToDo?sortby=commit">^</a></td> | | |
| <td align="center"><b>OK</b> <a href="/tbwiki/TBWikiToDo?sortby=OK">^</a></td> | | |
| <td align="center"><b>missing output</b> <a href="/tbwiki/TBWikiToDo?sortby=missing_output">^</a></td> | | |
| <td align="center"><b>bad</b> <a href="/tbwiki/TBWikiToDo?sortby=bad">^</a></td> | | |
| <td align="center"><b>bad page list</b> <a href="/tbwiki/TBWikiToDo?sortby=bad_page_list">^</a></td> | | |
| </tr> | | |
| <tr> | | |
| <td>2016-08-12</td> | | |
| <td>1.6.2</td> | | |
| <td>a45cce77</td> | | |
| <td>91</td> | | |
| <td>2</td> | | |
| <td>2</td> | | |
| <td>TestMarkupVariables, TestMarkupVariablesDyamicTest</td> | | |
| </tr> | | |
| <tr> | | |
| <td>2016-07-18</td> | | |
| <td>1.5.3</td> | | |
| <td>61eb2f1e</td> | | |
| <td>39</td> | | |
| <td>31</td> | | |
| <td>4</td> | | |
| <td>TestMarkupVariablesStatic, TestSandbox, tbwiki.footer, tbwiki.header</td> | | |
| </tr> | | |
| </table> | | |
| <a href="/tbwiki/TBWikiToDo?action=Table.query_form&source_spec=TBWikiToDo%3Aregression_history&conf=&table_block=TBWikiToDo%3Aregression_history"> | | |
| <font size=-1>Query</font></a> | | |
| <br> | | |
| | | |
| <p> | | |
| <h1><a name="Other_items_to_work_on,_by_category">Other items to work on, by category</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Other_items_to_work_on,_by_category">edit section</a>]</font></span> | | |
| </h1> | | |
| <h2><a name="Style">Style</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Style">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>enhance themes feature | | |
| <ul><li>see <a href="/tbwiki/DocThemes">DocThemes</a> | | |
| <ul><li>for an example of self-editability - see <a href="http://kernelnewbies.org/navigation_menu">http://kernelnewbies.org/navigation_menu</a> | | |
| </ul><li>calculate theme from user account or other variable | | |
| <ul><li>current use of page name is lame | | |
| </ul><li>allow configurable navigation links | | |
| <li>allow configurable toolbox links | | |
| <li>read page dressing from nested pages?? | | |
| <ul><li>allow header and footer pages to be HTML or TBWIKI format | | |
| <ul><li>if TBWIKI, allow for sub-page references that are | | |
| loaded, parsed and formatted recursively | | |
| </ul></ul></ul><li>tweak mobile.css | | |
| <ul><li>see w3c pages about automatic layout - <a href="http://www.w3schools.com/html/html_layout.asp">http://www.w3schools.com/html/html_layout.asp</a> | | |
| </ul><li>switch to MediaWiki page syntax?? (not yet) | | |
| <ul><li>see <a href="http://meta.wikimedia.org/wiki/Help:Wikitext">http://meta.wikimedia.org/wiki/Help:Wikitext</a> | | |
| <li>need to switch bullets handling | | |
| <li>need to switch table parsing | | |
| </ul><li>have css come from page area??? (would allow editing css using wiki) | | |
| </ul> | | |
| <p> | | |
| <h2><a name="General">General</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=General">edit section</a>]</font></span> | | |
| </h2> | | |
| <p> | | |
| <ul><li>convert upload to be a processor | | |
| <ul><li>allows putting upload on any page | | |
| <li>control number of files via config | | |
| <li>can specify link(" action=upload&dest_filename=foo") for missing files - to prompt user if file is missing | | |
| <li>upload result should be shown in page message? | | |
| </ul><li>add page rename | | |
| <ul><li>can do create, move content, delete, but that's awkward | | |
| </ul><li>generate tbwiki stats from log | | |
| <li>cache page content, for static content | | |
| <ul><li>change all prints to output routines (to control routing of output) | | |
| </ul><li>allow administrators to view and edit files in the 'admin' directory | | |
| using normal tbwiki access (just like regular pages) | | |
| <ul><li>treat it like a MoinMoin overlay directory | | |
| <li>put the bulk of the config in a file in the admin directory | | |
| <li>put the header and footer files in the admin directory | | |
| <li>change code so that if user is admin, pages show up in lists, macros, etc. | | |
| <ul><li>make functions that give page lists, that include the pages or admin | | |
| directory in the path | | |
| <li>when editing, keep track of which directory a page is located in | | |
| <li>when loading a page, if user is admin, check the page dir first, then | | |
| the admin directory | | |
| <ul><li>make a function to get a page, that handles the page dir and admin dir | | |
| </ul></ul></ul><li>make a mobile viewer | | |
| <li>add ability to grab content at specific intervals | | |
| <ul><li>kind of a combination of crontab and websed | | |
| <li>allows for charting something automatically over time | | |
| <li>make a crontab processor | | |
| <ul><li>present a form for when to run, and action | | |
| </ul></ul><li>make a syntax for block names that are not included in block output | | |
| <ul><li>we have anonymous blocks, hidden blocks, and named blocks | | |
| <ul><li>named blocks show both the name and the content. It would be nice to hide the name | | |
| </ul><li>possibly: #.BlockName ?? | | |
| </ul><li>make tbwiki more relocatable (for use on laptop) | | |
| <ul><li>on bird.org: | | |
| <ul><li>move *.cgi scripts from www/cgi-bin to ~/work/tbwiki/cgi-bin | | |
| <li>put link in www/cgi-bin | | |
| <li>add base_dir to *.cgi scripts | | |
| </ul><li>write script for laptop that does: | | |
| <ul><li>downloads latest tbwiki and tbwiki-data | | |
| <li>adjust base_dir in *.cgi files | | |
| <li>adjust base_url in *.cgi files | | |
| <li>adjust plugin symlinks in tbwiki-data dirs | | |
| </ul></ul><li>make unit test system - see <a href="/tbwiki/Unit_Test_Notes">Unit Test Notes</a> | | |
| <ul><li>NOTE - already have ProcessorRegressionCheck.py | | |
| <li>have a page specify a test | | |
| <li>have markup, and html and compare them | | |
| <ul><li>here's one unit test: | | |
| <pre> | | |
| record=bold 1 | | |
| markup='''bold''' | | |
| html=<b>bold</b> | | |
| </pre> | | |
| </ul><li>make a ProcessorUnitTest.py processor | | |
| <ul><li>read all "UnitTest.*" pages, convert markup to html, compare to html | | |
| <li>report results | | |
| </ul></ul><li>put this categorized todo list in a table? | | |
| <li>change main() in tbwiki_engine.py | | |
| <ul><li>call main when tbwiki_engine.py is called from command line | | |
| <li>make a tbwiki.py command? | | |
| <ul><li>program should have the ability to create a static page from the command line | | |
| <ul><li>e.g. tbwiki.py FrontPage -o FrontPage.html | | |
| </ul><li>program should have the ability to run unit tests? | | |
| </ul> | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h2><a name="Security">Security</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Security">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>check permissions on table write operations | | |
| <li>allow administrators to view and edit files in the 'admin' directory | | |
| using normal tbwiki access (just like regular pages) | | |
| <ul><li>treat it like a MoinMoin overlay directory | | |
| </ul><li>have rights affect the displayed table edit links | | |
| </ul> | | |
| <p> | | |
| <h2><a name="Processors">Processors</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Processors">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>add help routines for all Processors | | |
| <li>add a processor for "select an item" | | |
| <ul><li>used for choosing a group of words to practice | | |
| <li>used for choosing a story to read in scriptures | | |
| <li>present a list of items from a database, that are unselected | | |
| <ul><li>allow a user to select one | | |
| </ul><li>or, select an item randomly from a list of database records | | |
| <ul><li>allow user to select it or keep choosing a different one | | |
| </ul><li>have 3 categories: unselected, in-progress, finished | | |
| <ul><li>database must "state" field? | | |
| </ul><li>processor allows only legal state transitions | | |
| <ul><li>specify legal state transitions (or is this too meta?) | | |
| </ul></ul><li>support mapping routines (e.g. to convert chapters to pages and back) | | |
| <li>ProcessorScriptureLookup.py - maybe should be a macro? | | |
| <ul><li>take a reference, and replace it with the text for the versus | | |
| <li>this should be very handy for church talks, lessons, etc. | | |
| </ul><li>Add a mermaid.js processor for generating charts and graphs from markup | | |
| </ul> | | |
| <p> | | |
| <h3><a name="Blog">Blog</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Blog">edit section</a>]</font></span> | | |
| </h3> | | |
| See <a href="https://bird.org/test/Multipage_Blog_To_Do">https://bird.org/test/Multipage_Blog_To_Do</a> | | |
| <h3><a name="ProgressChart">ProgressChart</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=ProgressChart">edit section</a>]</font></span> | | |
| </h3> | | |
| <ul><li>add support for goal lines to the ProgressChart processor | | |
| <li>handle chart attributes | | |
| <ul><li>make chart_attrs_class, to generate defaults when attrs are missing | | |
| <li>create flat namespace for chart attributes | | |
| <li>translate chart atttributes into call arguments during chart creation | | |
| </ul><li>un-specialize pychartwrapper.py | | |
| <ul><li>chart another data type using same wrapper?? | | |
| <ul><li>generic multi-series data chart | | |
| <li>scripture reading chart? | | |
| <li>weight chart | | |
| <li>running chart?? | | |
| </ul></ul><li>support data entry and modification for TimsRunning data | | |
| <ul><li>see ProcessorProgressChart.py | | |
| <li>use Add Form for table?? | | |
| <ul><li>support current date for date entry?? | | |
| </ul> | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h3><a name="SlideShow">SlideShow</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=SlideShow">edit section</a>]</font></span> | | |
| </h3> | | |
| <ul><li>SlideShow | | |
| <ul><li>make sure all nested parsing works | | |
| <li>add sidebar list of slides (section 1 headings), with links to pages | | |
| <li>support show attributes and per-slide attributes (bgcolor, bgimage, margins, etc.) | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h3><a name="ImageGallery">ImageGallery</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=ImageGallery">edit section</a>]</font></span> | | |
| </h3> | | |
| <ul><li>ImageGallery | | |
| <ul><li>support links=1 - to show individual images in full screen | | |
| <li>autodetect image size for full-screen (standalone) image gallery | | |
| <ul><li>use Javascript to detect browser window size?? | | |
| </ul><li>support num_images - to show only some of the images | | |
| <ul><li>gallery has prev and next links on sides (similar to blog navigation) | | |
| </ul><li>support image borders in ProcessorImageGallery | | |
| <li>support link to fullsize image in ProcessorImageGallery | | |
| <li>support displaying the filenames in ProcessorImageGallery | | |
| <li>add javascript zoom functions | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h2><a name="Tables">Tables</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Tables">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>add sortby=select_order - to specify that text fields should be sorted | | |
| in the order that they appear inm the select possible_values list. | | |
| <ul><li>this helps the user control the sort order for things like word-based | | |
| priority: ex: very high, high, medium, low, very low | | |
| </ul><li>add messages to table module | | |
| <ul><li>allow for outputting messages about an individual table | | |
| <li>table.add_table_message(msg) | | |
| <li>this would be handy for table-specific error messages | | |
| <li>should have block-specific messages in general | | |
| </ul><li>allow for configuration of table control links | | |
| <ul><li>have user specify which links to show, and where | | |
| </ul><li>use better filenames | | |
| <ul><li>use unique part of filename for record_id | | |
| <li>allow user to pick filename when creating the record | | |
| </ul><li>support edit-in-place for tbwikidb files | | |
| <ul><li>use get_section and set_section | | |
| <ul><li>modify to read/write definition lines | | |
| </ul></ul><li>eliminate difference between record, record_id | | |
| <li>use tbwikidb or attrdb for user database?? | | |
| <ul><li>this puts human readable filler on every page, but that's the wiki way | | |
| <li>this allows creating a multi-file database just by creating the template | | |
| <li>this is fragile - human editors will break the pages parseability | | |
| </ul><li>add table query cheat sheet to query table form page | | |
| <li>make prototype family info database on bird.org | | |
| <ul><li>automatically create a User account file on login??? | | |
| <li>make MemberXX records for family members | | |
| <ul><li>determine the schema (what fields) | | |
| <li>create a table view with contact information | | |
| </ul></ul><li>table queries and views FEATURE | | |
| <ul><li>support <table>RecordView | | |
| </ul><li>support read-only attribute on whole table | | |
| <li>Support time-sampled database | | |
| <ul><li>schedule a websed operation that grabs data at crontab-like intervals | | |
| <ul><li>or that creates a new record whenever the page is accessed (and schedule something to access the page automatically at periodic intervals) | | |
| </ul></ul><li>support automatic data snapshotting | | |
| <li>write a 'table creation wizard' processor | | |
| <ul><li>ask for field names and types, and create the schema file and cover file (or template file, if its a tbwikidb) | | |
| </ul><li>document table config concepts: | | |
| <ul><li>base config (from original conf block) | | |
| <li>dynamic config (from request form variables) | | |
| <li>query config (from query conf block) | | |
| </ul><li>saved queries | | |
| <ul><li>specify query list in conf block | | |
| <li>each item in list specifies a query conf block | | |
| </ul><li>make backup file when editing table files | | |
| <li>finish all routines for editing a table | | |
| <ul><li>use {{{Table(arg1,arg2,arg3...) notation for inline tables | | |
| <ul><li>support other args: | | |
| <ul><li>formspec, query line (row filter, column filter, etc.) | | |
| </ul></ul></ul><li>document Table use with data_scan module | | |
| <ul><li><a href="/tbwiki/DocTables">DocTables</a> has some information (one example, the FIXTHIS table) | | |
| </ul><li>multi-file tables | | |
| <ul><li>display multi-line values correctly | | |
| <li>display '<no-data>' values correctly | | |
| <li>auto-sense type of each field (text, select, textarea) and use | | |
| for auto-form generation | | |
| </ul><li>handle field types with enumerated values (lists and radio buttons) | | |
| <li>document table architecture and interfaces - see <a href="/tbwiki/Table_Architecture">Table Architecture</a> | | |
| <ul><li>document table attributes | | |
| <li>document chart attributes | | |
| </ul><li>make ProcessorTablePick.py | | |
| <ul><li>See <a style="color:red;" href="/tbwiki/Table_Pick_Page">Table Pick Page</a> | | |
| <li>present simplified list of "unpicked" items | | |
| <li>allow user to pick one item | | |
| <li>save picked item with attribute "state" changed to "in-progress" | | |
| <li>present detailed list of "in-progress" items | | |
| <li>allow user to mark an item as "done" | | |
| <ul><li>save done item with attribute "state" changed to "done" | | |
| </ul><li>whether user wants to have multiple items in "in-progress" state is their choice | | |
| </ul><li>queries, query_lists | | |
| </ul> | | |
| <p> | | |
| <h2><a name="Forms_editing_and_Templates">Forms editing and Templates</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Forms_editing_and_Templates">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>use form emitter for user accounts. | | |
| </ul> | | |
| <p> | | |
| <h2><a name="Users_and_attributes">Users and attributes</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Users_and_attributes">edit section</a>]</font></span> | | |
| </h2> | | |
| <ul><li>Support online creation of new users | | |
| <ul><li>make a "create user" form | | |
| <li>create a new user account file from a form | | |
| </ul><li>provide help if user forgets password | | |
| <ul><li>link to e-mail the password?? | | |
| <li>password hint?? | | |
| </ul><li>create 'user.edit' action, which edits a user account file | | |
| <li>support different roles (admin vs. non-admin) | | |
| <li>allow user to edit their attribute values | | |
| <ul><li>make an "edit user" form | | |
| </ul><li>REFACTOR - use existing form code for user forms | | |
| <li>make user account management it's own processor module | | |
| <ul><li>ProcessorUser.py - we now have sub-actions, so this should work. | | |
| <ul><li>it needs to access table operations, but in a special way | | |
| </ul> | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h1><a name="Long_term_ideas">Long term ideas</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Long_term_ideas">edit section</a>]</font></span> | | |
| </h1> | | |
| <ul><li>(done) add 'save expected output and show again' to RegressionTest processor | | |
| <li>add link to backup page on history page | | |
| <li>look at other wikis for feature ideas | | |
| <ul><li>in particular, <a href="http://ikiwiki.info/">ikwiki</a> statically compiles the wiki on every page edit | | |
| </ul><li>documentation | | |
| <li>table editing: | | |
| <ul><li>should support "save and edit again" and "save and add another row" buttons for saving edit forms. | | |
| </ul><li>Table Of Contents | | |
| <ul><li>do auto-table of contents, like wikipedia?? | | |
| <li>handle included files and text expanded from processors??!! | | |
| </ul><li>check HTML and CSS on multiple browsers with BrowserCam or browsershots | | |
| <ul><li>see <a href="http://browsershots.org/http://bird.org/tbwiki/FrontPage">http://browsershots.org/http://bird.org/tbwiki/FrontPage</a> | | |
| </ul><li>make a journal processor (based on progress chart) | | |
| <li>(in progress) make a blog processor (with threaded comments) | | |
| <li>make a forum processor (with threaded and voted-on comments) | | |
| <li>make a page cache | | |
| <ul><li>add dependencies to a makefile, and rebuild cache when dependencies change | | |
| </ul><li>put config into admin page? | | |
| <ul><li>reduce cgi-bin to just some directory references | | |
| </ul> | | |
| </ul> | | |
| <p> | | |
| <h1><a name="Things_Completed">Things Completed</a> | | |
| <span align=right class="section_edit_link">[<a href="/tbwiki/TBWikiToDo?action=edit§ion=Things_Completed">edit section</a>]</font></span> | | |
| </h1> | | |
| <ul><li>2021-03 Remove '?action=save' from url in edit form | | |
| <li>2018-10 Add image rotate to ImageGallery app. | | |
| <li>2017-04 add triggerd - ability to detect triggers that are due and execute them | | |
| <li>2017-03 add ProcessorTrigger - ability to trigger a snapshot | | |
| <li>2017-03 add ProcessorSnapshot - page/block/table snapshot function | | |
| <li>2017-02 add tbclient - ability to get,put and edit items in the wiki | | |
| <li>2017-01 add page trails | | |
| <li>2017-01 add relative index to cell address (so you can do $.-1) | | |
| <li>2016-12 ProcessorImageGallery - finish showing images in full size page | | |
| <li>2106-11 add ability to customize table operation links (edit_links, sort_links) | | |
| <li>2016-9 add ability to read a specific block, by number | | |
| <li>2016-08 convert to per-table messages (for debugging and errors) | | |
| <li>2016-08 support editing sections with nested sub-sections | | |
| <li>2016-08 allow default_values with generated values (%(timestamp), %(next_int), %(next_page_num)) | | |
| <li>2016-08 add page delete | | |
| <li>2016-07 add tbwikidb database type | | |
| <li>2016-07 fix data_scan module to parse multi-line fields | | |
| <li>2016-05 make ProcessorImageGallery | | |
| <li>2016-05 make ProcessorBlog | | |
| <li>2016-03 make better diff output | | |
| <li>2016-03 put engine_version in data_class, and add to footer | | |
| <li>2016-03 add "printable format" option for page | | |
| <li>2016-03 made a test wiki at: <a href="http://bird.org/cgi-bin/test.cgi/FrontPage">http://bird.org/cgi-bin/test.cgi/FrontPage</a> | | |
| <li>2014-05 make talk pages optional - see config.has_talk_page global config | | |
| <li>2010-10 support inline tables - FEATURE | | |
| <li>2010-?? websed - add websed feature to scrape other web pages | | |
| <ul><li>2010-?? data-scan - add as a processor first, then make into a database grabber | | |
| </ul><li>2008-10 table - back up page on table edit | | |
| <li>2008-09 chart - draw chart of table data | | |
| <li>2008-08 processor - add a charting package (pychart) | | |
| <li>2008-02 table - added support for sorting table rows | | |
| <li>2008-02 table - support col_list and row_filter specifiers | | |
| <li>2008-02 table - added ability to edit whole table at a time | | |
| <li>2008-02 macro - create Include macro | | |
| <li>2008-02 table - separated conf into separate class | | |
| <ul><li>add field_db (parsing, handling) | | |
| <ul><li>add field types, colors, possible values | | |
| </ul><li>add routine to read block from page | | |
| </ul><li>2008-02 table data - separated IO handler into separate class | | |
| <li>move tbwiki with authentication to bird.org | | |
| <li>aug03 - add user accounts. | | |
| <ul><li>put user account files in an 'admin' directory | | |
| <li>authenticate user from files in 'admin' directory in action user.login | | |
| <li>look up user by name to process login form (in action user.login) | | |
| </ul><li>jul07 - add cookie code for user accounts | | |
| <li>feb07 - use pages for page dressing (see tbwiki.header and tbwiki.footer) | | |
| <li>jan07 - support file upload FEATURE | | |
| <li>11/15 - add support for inline images | | |
| <li>change backup routine to save current version of page instead | | |
| of old version of file | | |
| <li>save edit comment and show in history | | |
| <li>edit sections FEATURE | | |
| <li>parse and format: | | |
| <ul><li>bullets | | |
| <li>headers | | |
| <li>horizontal rules | | |
| <li>paragraph breaks | | |
| <li>preformatting | | |
| </ul><li>write edit form for page | | |
| <li>save edited data to file | | |
| <li>read page from data directory and emit as html | | |
| <li>write handlers for various actions | | |
| <li>create add_record form (using existing edit_form code) | | |
| <li>write mtable.save_form() routine | | |
| <li>re-write edit_form to present whole table with edit links | | |
| <li>support Table internal macro, with args | | |
| <li>modified backup time in file extension to be human-readable | | |
| <li>wrote mtable.modify_record() routine | | |
| <li>wrote mtable.remove_record() routine | | |
| <li>parse and display URLs as links | | |
| <li>use pages for page dressin | | |
| <li>make items in table of contents into links | | |
| <ul><li>make an anchor target for each heading | | |
| <li>use href for anchor target in TableOfContents macro | | |
| </ul><li>make nicer format for table of contents box | | |
| <li>add search form to header | | |
| <li>support multi-page table source_spec | | |
| <ul><li>support e.g. "User*" as the spec | | |
| <ul><li>read all pages starting with User | | |
| <ul><li>finish parse_table_pages() routine | | |
| <ul><li>read each page matching the source_spec | | |
| <li>parse out values using a page template | | |
| <ul><li>start with simple name=value parser | | |
| </ul></ul></ul><li>create page on add record | | |
| <li>write page on edit record | | |
| <li>remove page on remove record | | |
| </ul></ul><li>support history action | | |
| <ul><li>show history from backup times | | |
| <li>allow diff between two versions | | |
| </ul> | | |
| </ul> | | |
| <p> | | |