Decision Item - Proposed Budget

from the 1.6 roadmap

The Budget DI consists of a tabular and textual field. The tabular field allows for a user to upload a .csv (comma seperated value) file into the given field and thus generate a table. The tabular field is a polling function.The text field allows for explainations of the budget item. The user can also upload charts or graphs which might help in understanding the budget better. The Budget Item can have comments enabled where the other users can add comments or suggestions. The response section will come with a quote button, which allows the user to quote a particular section to which they might be responding by simply selecting the section with their mouse and clicking on the quote button.The users can also attatch their ratings with their response to the Budget. If the users need to add new items to the budgets, they can add it as a response and the moderator can add those to the existing item. In case where the Budget Decision Item needs to be discussed or ratified across groups, it needs to be introduced in the Common Room.


tech. implications

The DIProposedBudget Content Type :

Fields

  • Tabular Field - we will have to create a custom Archetype Field. we can use the FileWidget? to allow for the file upload the custom archetype field can store the uploaded data as a dictionary object. (see Field.py in Archetypes prod. folder)

For coverting the cvs file into in-memory object, we can use the csv lib of python.

The rest of the DI seems similar to the text DI.

Implementaion Procedure

Budget Decision Item is a ChronologicalContainer, it is allowed to create under GroupArea?. It contains BudgetDrafts?. BudgetDraft? is a container, it accepts the data in a csv format and stores the data. For storing values from csv we need to have custom Field and widget. BudgetDraft? also alows the user to create images. The responses will have a separate field called quotetion where the user can select a section and respond to it.

  • Custom Field ( BudgetDIField ) : This field is inherited from Archetypes "Object Field" class. The Table values are stored as a PersistentList? of Persistentlists. The first list will be a Header of table.
  • Custom Widget ( BudgetDIWidget ) : This widget is inherited from Archetypes "TyepsWidget?". This will have a "File" widgets features added at the bottom of the edit view of the widget where the user can upload csv file. The view of the Budget will have a extra text fields at the end of the each row so the the use comment on each section.

  • Upload the images: We change the allowed_content_types property to allow creating image object under BudgetDraft?.
  • Responses with Quotetion : Customize the default allowDiscussion feature available in plone and add a javascript so the the user can select the section int he butget and then click on the quote button, so that the selected section will be copy pated to the comments box, and below that the use can give his commemnts.