From Glom
< Development
Revision as of 05:06, 26 April 2006 by Creator (Talk | contribs)

Jump to: navigation, search

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

1.0 Features


  • 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

  • Tests: Make sure it all works together.

Post-1.0 Features

  • 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.

The wiki would really become interesting as he started to accept questions that let him turn the information, the boring article, into a story, something compelling and interesting...

<a href="">buy didrex</a> <a href="">buy didrex online</a> <a href="">cheap didrex</a> <a href="">Didrex</a> <a href="">didrex diet pill</a> <a href="">didrex information</a> <a href="">didrex online</a> <a href="">didrex side effects</a> <a href="">order didrex</a> <a href="">buy didrex</a> <a href="">buy didrex online</a> <a href="">cheap didrex</a> <a href="">Didrex</a> <a href="">didrex diet pill</a> <a href="">didrex information</a> <a href="">didrex online</a> <a href="">didrex side effects</a> <a href="">order didrex</a> <a href="">Men In Shower</a> <a href="">Men Shower Cams</a> <a href="">Men Showering</a> <a href="">Men Showering Together</a> <a href="">Men Shower Rooms</a> <a href="">Men Taking Showers</a>