Projects:QueryList Widget/Functional Specs
Contents |
Query/List Widget - Functional Specifications
Overview
This project intends to deliver an additional widget superclass that will allow to define new widget classes setting up just an HQL and the desired shown columns.
Purpose
This project makes possible to define a new widget superclass called Query/List. This new superclass allows to generate a grid of data just providing the HQL Query that retrieves the information. To use this superclass it won't be required to write any code, defining a new Widget Class in the Application Dictionary will be enough.
Scope
The scope of this project is to deliver the Query / List Widget superclass.
Design Considerations
Assumptions
- User must not have to write the Java Class name of the Query / List widget.
Dependencies
- The development of this project requires changes on the MyOpenbravo module to introduce the concept of SuperClass widget.
- A Widget Instance can not instantiate a SuperClass widget
- A SuperClass widget can not implement another SuperClass widget.
- A regular Widget Class can only implement one SuperClass widget.
Constraints
- The data should be rendered using the SmartClient grid.
- HQL has to be defined using the HQL reference type.
Glossary
Functional Requirements
User roles & profiles
- System Administrator
- System administrator can define new widget classes implementing the Query/List superclass.
- All users
- All users can defined new widget instances of classes implementing the Query/List superclass.
Business process definition
- The source of the data is defined using an HQL Query.
- Each column that it is desired to be shown has to be defined, for each column:
- A column label has to be defined.
- A display expression has to be defined.
- A navigation expression can be defined, in case it is desired to create a link to page.
- If it is a numeric column it can be totalized (sum, average or ¿count?) , a label for the totalized field.
- The width of the column.
- A flag to show the column only on the maximized view.
- Number of rows shown in the widget view.
- It is possible to maximize the widget view in a new tab.
- Ability to export the widget.
- Ability to set up parameters on the widget class to use them in the query as filters. These parameters can be fixed or defined by the end users.
User stories
Story 1:
- John wants to define a new widget to show the last 10 sales orders.
- He designs an HQL Query that shows the desired information.
- He goes to the Widget Class window to create a new one choosing the Query/List superclass.
- In the List tab he introduces the HQL and other definitions.
- In the Column tab he introduces the columns.
- Ann is administering her Company's Sales role and sees that there is a new Last 10 Sales Orders Widget Class available so she adds it to the role.
- She refreshes the MyOpenbravo tab and can now see the widget with the last 10 sales orders.
Functional requirements based on business processes
The development of this project will require modifications on several functional areas:
Changes on MyOpenbravo module
Id | Requirement | Importance | Status |
1.1 | Deliver URLWidget provider as a superclass | Must have | Done |
1.2 | Add an isSuperclass flag | Must have | Done |
1.3 | Ability the possibility of implementing a superclass on a widgetclass | Must have | Done |
1.4 | Ability the possibility of inserting new options on widget toolbox by other modules | Must have | Done |
Query / List widget superclass
The implementation of this new widget type can be separated on widget view and maximized view
Id | Requirement | Importance | Status |
2.1 | Create on AD and database all new tab and fields:
| Must have | Done |
2.2 | Create the Query / List widget | Must have | Done |
2.3 | Ability to add links | Must have | Done |
2.4 | Ability to export to csv | Must have | Done |
2.5 | Ability to use widget parameters on the query | Should have | Done |
2.6 | Ability to use session parameters on the query | Should have | Done |
2.7 | Create NumberOfRows parameter. Rows number to be shown on widget view. It overwrites the height defined on the widget class tab. It has a default value of 10. | Must have | Done |
2.8 | Ability to print | Nice to have | Not started |
2.9 | Ability to email | Nice to have | Not started |
2.10 | Ability to check the HQL | Nice to have | Not started |
2.11 | Ability to select from a drop-down the available aliases | Nice to have | Not started |
2.12 | Ability to save the user customization of the grid | Nice to have | Not started |
2.13 | Ability to copy widgets | Nice to have | Not started |
2.14 | Ability to check the existence of @optional_filters@ or @displayExpression@ when can be filtered is enabled. | Nice to have | Not started |
Id | Requirement | Importance | Status |
3.1 | Ability to maximize on a new tab | Must have | Done |
3.2 | Ability to include extra columns | Must have | Done |
3.3 | Ability to export on maximized view | Must have | Done |
3.4 | Add smartclient grid capabilities (drag&drop, ordering) | Nice to have | Not started |
3.5 | Ability to filter by shown columns | Must have | Done |
User Interface Mockups
Technical Requirements
- A supperclass can not implement another supperclass
- A widget class can only implement one superclass
Non-Functional Requirements
Open Discussion Items
To open a new discussion item please start a new thread on the forums and put here the link.