Difference between revisions of "Development/Plans"

From Glom
Jump to: navigation, search
(Move 1.0 Features list to another page, because it's not work still to do.)
Line 3: Line 3:
 
Or you could just donate via PayPal: [https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=murrayc.paypalgermany@murrayc.com&item_name=SupportGlom&currency_code=EUR&amount=100&return=http%3a%2f%2fwww.glom.org%2fwiki%2f%3Ftitle%3DThank_You_For_Donating http://www.paypal.com/images/x-click-but04.gif]
 
Or you could just donate via PayPal: [https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=murrayc.paypalgermany@murrayc.com&item_name=SupportGlom&currency_code=EUR&amount=100&return=http%3a%2f%2fwww.glom.org%2fwiki%2f%3Ftitle%3DThank_You_For_Donating http://www.paypal.com/images/x-click-but04.gif]
  
== 1.0 Features ==
+
See also [[1.0 Features]].
 
+
===Done===
+
 
+
* '''Table Add/Remove''': Plus set a startup default, and hide secondary tables from users.
+
* '''Field Definitions''': Just the basics.
+
* '''Calculated Fields''': For instance, totals, concatenation. Uses python. Recalculates existing values when changing the calculation.
+
* '''Relationship Definitions'''
+
* '''List and Details views'''
+
* '''Automatic Layout''': No awkward pixel-perfect positioning and no mess when translating.
+
* '''Layout Design''': Not pretty, but it works.
+
* '''Related Fields''': Show fields from related records, such as a contact name. Optionally create/edit related records via this.
+
* '''Related Records''': Show a list of related records on the layout, such as invoice lines. Create related records automatically.
+
* '''Lookups''': Store values from related records, such as a product price.
+
* '''Drop-down choices''' "Value Lists" in FileMaker. For instance, a list of products when entering a product code.
+
* '''Internationalized input and display''': For instance, commas instead of dots for German numbers.
+
* '''Access Control''': Define groups (containing users) and their create/delete/view/edit rights for each table.
+
* '''Finding''': Let the user enter text in the regular layout and just click Find. No query language, no choosing fields, no explicit boolean nonsense. Do substring case-insensitive searching instead of for exact matches.
+
* '''Printing''': Simple default print layout, to HTML in the browser.
+
* '''Simple "By" Reports'''
+
* '''Minimal formatting options''': Optional thousands separator, optional currency, decimal places. With check box to specify default formatting instead, with default formatting options as part of the field definition dialog.
+
* '''Image fields''': Show and save pictures in the database.
+
* '''Related field Details button''': A button next to IDs, when that is part of a to-one relationship, which takes the user to the full details for that related record.
+
* '''Find ID button''': A button next to lookup keys (fields used by looked-up fields) that opens a find dialog, to find an ID. Necessary when a drop-down list would be too big.
+
* '''Remember Position''': When returning to a table, in the same session, show the same layout (list or details) and the same record as last time.
+
* '''Quick Find''': Add an Entry to the layout in Find mode, use the input to search all fields, google-style. '''Time''': 30 hours.
+
* '''Find-Set information''': Show whether we are looking at all records or just the result of a find. Allow us to change to all records '''Time''': 20 hours.
+
* '''Internationalization''': Allow developers to enter titles (tables, fields, reports, relationships) for non-english languages. '''Time''': 60 hours.
+
* '''Scripting''': Buttons may be added to the layout. When clicked they run custom python code.
+
* '''System Properties relationship''': Add "system properties" relationship to all lists of relationships, to provide access to, for instance, the organisation address. '''Time''': 30 hours.
+
* '''Doubly Related fields''': For instance, allow Character::Actor(via Character::contact_id)::Agent(via Contacts::agent_id)::name on a Character details view.
+
* '''Tabs''': Add a notebook layout part. For instance, this would allow multiple related portals without making the layout huge.
+
* '''Sort Found Set''': Click on list column headers to sort.
+
* '''Choose Date From Calendar''': Add a calendar button next to date fields.
+
 
+
===To Do===
+
 
+
* '''[[Development/Tests|Tests]]''': Make sure it all works together.
+
 
+
  
 
== Post-1.0 Features ==
 
== Post-1.0 Features ==

Revision as of 21:54, 22 June 2006

Please consider funding my work on Glom so that I can implement all these features. Murray Cumming

Or you could just donate via PayPal: x-click-but04.gif

See also 1.0 Features.

Post-1.0 Features

  • Quickly add Relationship/Field: For instance, when adding a field to a layout, quickly add a relationship so that you can add a field from it, without closing the layout window, opening the relationships window, and opening the layout window again. Or to quickly add a field to the current table when adding a field to the layout dialog. Or, when specifying a related choices lists (in a Field'a default formatting). (30 hours)
  • Automatic Server Detection: Patch postgres to use avahi for ZeroConf/Bonjour/Rendezvous service broadcast. Postgres already uses Bonjour on MacOS X.
  • Deal with lots of data The custom tree model should progressively gets only the record values that are visible in the scrolled window, but I am not sure if libgda has already requested the entire result set. The new libgda API might be better.
  • Custom Print Layout: For instance, a perfect-looking official invoice. Implement with CSS fixed positioning? Time: 80 hours.
  • Non-Indexed Calculated Fields: Optionally don't store values - just recalc them when seen/used, and therefore don't allow their use in relationships, though that's awkwardly technical when seen in FileMaker. Time-to-complete: 60 hours.
  • Internationalization via .po files: Add Export and Import buttons to Translations Window, so translators can use their usual .po file tools. Time: 10 hours.
  • Locking: Don't let a second user edit the same record. (Delay unlock for 5 seconds after entry loses focus). Update the display when the second user changes the same record. Time: 50 hours.
  • Drag-and-drop layout: Add a panel of available items and show visual feedback as they are moved around on the layout. But still use the automatic-layout system. Time: 60 hours.
  • Relationships Overview: See a picture of all the tables, with all their relationships to each other. Use a canvas and let the user drag the tables around. Time: 70 hours.
  • Related Records as Calendar: Display a portal of related records in a calendar, using a specified field as the date.
  • Warn when deleting used fields and relationships: If a field or relationship is on a layout or report, or a field is in a relationship, warn before deleting.
  • Scripting: Most common actions should be standard features without the awkwardness of scripting, but maybe we need some way via the custom buttons to, for instance, on Contacts details create a related Invoice and take you to the Invoice details. For this, we must just present a python API for some parts of the Glom structure in addition to the current record object.
  • Multi-column relationships: Match on 2 key fields instead of just one. Time: 30 hours.
  • Performance:: Keep connection alive, do less by-value copying, more caching and hashing. libgda 2.0 (when finished) should help with this.
  • GUI for creating the initial user, after asking for the root password.
  • Windows Port: Shouldn't be too difficult. All dependencies are portable. Time: 60 hours.
  • Web UI: Possible in principle, though it couldn't be so responsive as a desktop application. All the needed information is in the .glom document. Something for a web developer, and there's no need to choose a favourite language/platform - just do it.
  • Alien Tables: Allows some tables to get/set data in non-postgres sources, such as evolution-data-server, so people don't need to enter their contact information twice.