Beach 2007
During may+june 2007 we are putting in an "extra push" to make Gjallar reach a good useful release 0.5. Toolkit Software is sponsoring this push with some money and a selected team will try its best to "wrap things up" during this period so that we can all enjoy the beach in the summer. :)
All the work is done openly on the mailinglist, this swiki and on IRC.
Below is the original task list when we started the project. Now all the entries below are added and handled in http://bugs.gjallar.se!

The tasks are grouped in 3 priorities:
- Must have, these are essential to get done before a successful deployment.
- Really good to have, these are high priority tasks that really would make Gjallar much more useful.
- The rest. Well, if we ever get there. Based initially on loose ends from original requirements specification.
The tasks below are Must have for release 0.5:
Filters
- Make it possible for a Process admin to copy personal filters into the Process for sharing among all users of the Process.
- Implement Filter view with edit link that enables edit mode:
- Name, Description of Filter
- "Add predicate" link
- "Remove predicate" link for each predicate
- Buttons: Save/Save as new/Cancel
- Implement predicates:
- Selection (at least one of these, at least all of these)
- Text (is entered, is empty)
- Integer
- Date (is within range, after, before)
- Boolean (is true, is false)
- Roles (is related to me, I am responsible, someone has role X)
Estimate: 5 days (2 days DONE, working on it)
Case linking
- Add easy linking button (two buttons, one for each direction?) in middle area + drop down for link type. (default case name is last viewed)
- Create and link using a plugin: Create a case in another Process, copy selected information from this case and finally create a link to it.
Estimate: 2 days
Testing day
- Test the system by using it intensely for 1 full day
- Fix bugs that are discovered.
Estimate: 2 days
Performance, take one
- Torture test system with 10.000 cases.
Estimate: 1 day
Fixing known bugs
- 13: A bit more work. 2 hours.
- 15, 16: Simple to solve. 1 hour.
- 18: Not sure, needs more testing.
Estimate: 1 day
Offline operation, take one
- Verify serialization (that a Gjallar db can be rebuilt purely from the serialized txns). This is important to verify before first real deployment since it enables future migration of the database using the transaction log.
- Fix any bugs, add test to strictly verify it. (Using SIXX or other serialization form?)
Estimate: 2 days

The following tasks are really good to have and are the ones we focus on if/when the above tasks are done:
Simple statistics
- Some simple numbers and possibly even graphs and charts for obvious statistics, typically under Processes. This needs specification!
Estimate: 2 days
Qlog migration
This is migration code for the old system at Micronic and can only be done by Göran Krampe.
Estimate: 5 days
Administration of Processes
- Processes
- Settings, 1 day
- Imports: users, persons, COTypes, forms, categories, 1 day
- Workflow graph, 2 days
- COTypes, 1 day
- LinkTypes, 2 hours
- Roles, 2 hours
- Email: accounts, receivers (case prototypes?), 4 hours
- Forms: create, modify, tableforms, exportforms, forms, 3 days
- Criteria, 1 day
- Subscriptions, 1 day
- Permissions, 2 days
Estimate: 13 days
User interface details
- Make middle area expandable using scriptaculous or js?
- Scalable graphs!
- Move Subscriptions to Settings. Reports?
- Color coding of cases
Estimate: 2 days
Improved forms
- Add "named" fields which enables having multiple fields refer to the same "value" in the case. This has come up several times in actual use.
- Add field type "time" (hours+minutes)
- Add field type "money"? More types?
- Add field type "calculated field"
- Add radio control rendering for selection.
- Add script "on change". This can then be used to enter values in other fields based on the entered value in the changed field. (This solves the problem of showing "name" for COs where a number is selected in drop downs.)
- Add FieldSets and separator.
Estimate: 4 days
Knonw bugs
- 11, 12: Pretty easy to solve. 1 hour.
- 19-22: Rather simple stuff. 3 hours.
Estimate: 1 day
Improved reports
- Test more.
- Add useful "calculated fields"
- Add option of "nice looking HTML" instead of bare HTML?
Estimate: 2 days
Offline operation, take two
- Add simplest form of conflict rules. (no stage transitions etc)
- Add support for attachments and swish-e using rsync.
- Only copy attachments under certain size.
- Calculate how large the offline copy will be before building it.
- Test, test, test...
Estimate: 8 days
Help and documentation
- Write a small howto for users?
- ..or add a "newbie mode" as a Setting with lots of explaining texts all over?
Estimate: 2 days (can be done by anyone!)
Performance, take two
- Do something about the excessive js/css requests making Firefox slowish.
- Torture test system with 100.000 cases.
- Test separate Magma server.
- Try scaling using Ramon's howto.
Estimate: 3 days

This is the rest based mainly on missing functionality described in the original requirements and design specification.
Aliases and roles
This turns out to be a complicated area, see Thoughts about aliases and Roles.
Case lists
- Add a new kind of Filter which is simply a list of cases.
- Add a mechanism to be able to easily "pick" a case into one of the lists. Selection + button in middle area.
Estimate: 3 days
Sub forms
- Add a new field type "table". Each row in the table is described by a Form. The field offers CRUD functionality. This can then be used for spare parts, time reporting etc.
Estimate: 4 days
Moving cases
- To be able to move a case from one process to another given a set of restrictions:
- Forms added not existent in the other Process will be removed, including values of fields.
- Roles will be "swiped" based on visibility in other Process.
- Stage will be hard set to Inbox.
- ...etc... needs more investigation, what happens with history etc?
History view
- Process wide history view
- Global history view
- Including clickable links to cases
- Optional filtering per User
Print view
- Add a print view for a case, HTML suitable for printing.
- Add printing for a case table:
- "Print table" for printing the table in HTML suitable for printing.
- "Print all" for printing all cases using single case print view.
Create persons
- The ability to be able to create a new Person on the fly.
Category UIs
- Ability for user to specify categories for cases and notes at creation.
- Ability to edit categories on cases and notes (based on permissions)
Add note
- Add ability to specify additional receivers by email
- Add attachments (today you need to edit case to do it)
Case history weaving
- Weaving notes with history including a subselection of linked cases.
User groups
...not sure what to use them for.
Readlog
- Implement a read log where we store a Timestamp, User and Case as a tuple. This will make it possible to mark cases as "bold" when they have been modified (new note or whatever) and not yet read by you. -This should be stored outside of Magma to avoid transactions.