Heads up! These docs are for Portofino 3, which is a legacy product. Check out Portofino 4!

Copyright 2008-2012 ManyDesigns srl. All rights reserved.


Purpose

You can use the system homepage (or other 'summary' pages as we'll see) as a portal to present charts, tables, lists and messages. Its purpose is give the user an aggregated view that is simple and quick to understand. Users can click on the portal's items to navigate to more detailed information pages. In this sense, portals are a kind of interactive, on-line reporting.

It is the modeler's responsibility to define the structure and content of a portal. The users at the downstairs level cannot change that structure. However, the modeler can configure a portal (using filters) to give each user a personalized view.

Please notice that ManyDesigns Portofino's portlets are not JSR 168 compliant.

Common fields

In the Basic information group:
  • Name: the name/title of the portlet.
  • Order: the relative order of the portlet on the portal. See section Position of portlets in a portal.
  • On homepage: if checked, the portlet will appear on the system homepage. For other places where a portlet can appear, see section Using summary pages.

Common relationships

In the first group:
  • Visible by user groups: this relationship points to the meta user groups with visibility rights on the current portlet. A user must be a member of at least one of those groups to see the portlet. If no relationships are defined the portlet is visible by all users.
  • On classes: see the section Enabling summary pages.

Portlet types

There are two major portlet types, with subtypes:
  • Html portlet: used to present static text.
  • Portlet reports: used to report on a class' data. This has three subtypes:
    • 0D portlet report: for simple lists of data with no aggregations
    • 1D portlet report: for data grouped by one dimension (pie charts)
    • 2D portlet reports: for data grouped by two dimensions (stacked bar charts)
All portlets have the following common attributes in the Basic information group:
  • Name: the name/title as displayed on the portal.
  • Order: a code to represent the column and row where the portlet will appear.
  • On homepage: whether the portlet should appear on the system homepage.

Html portlet

Attributes in the Html group:
  • Html: the static html content of the portlet.

Portlet reports

Portlet reports display the results of a query run on the application's data. The query is logically structured as follows:
SELECT 
    <aggregation> 
FROM 
    <fact_class> 
WHERE 
    <filters> 
ORDER BY
    <sorting>
 
GROUP BY 
    <dimensions>

When there are multiple filters, they are are applied in logical AND in the WHERE clause.

Fields in the Report target group:
  • Class: the fact class. This is the class/table used in the FROM clause of the query.
  • Fact attribute: if left unspecified, the query uses COUNT(*) as the aggregation function. If specified, the attribute must belong to the fact class, be of integer or decimal type and the query uses SUM(attribute) as the aggregation function.
Fileds in the Filters group:
  • Time filter attribute: must be a date attribute of the fact class. This is used to generate a WHERE clause that compares the attributes value to the today's date. See section Time filters below.
  • Time filter period: the unit period for time comparisons. One of: dayweekmonthquarter (three months), quadrimester (four months), semester (six months), year.
  • Time filter type: see section Time filters below.
  • User filter attribute: this generates a WHERE clause that has a value equal to the id of the currently logged in user. Must be a relationship attribute of the fact class with User as the opposite end class.
  • Filter 1 attribute: must be an attribute if the fact class of type integer, decimal, date, string, or boolean.
  • Filter 1 operator: one of: =, <=, >=
  • Filter 1 value: the comparison value. The value must be compatible with the Filter 1 attribute's data type. For booleans use only operator = and values TRUE or FALSE.
  • Filter 2 attribute: same as for filter1.
  • Filter 2 operator: same as for filter1.
  • Filter 2 value: same as for filter1.
Relationships in the second group:
  • Workflow filters: see the section Workflow state fllters.

0D portlet report

Fields in the Sorting and limiting group:
  • Sort attribute: the attribute for the ORDER BY clause. Must be an attribute of the fact class.
  • Sort descending: check this flag to sort results by descending values of the sort attribute (from greatest to smallest). Leave unchecked to to soft by ascending values (from smallest to greatest).
  • Max results: limit the number of results by this value. Leave blank to apply no limits.

1D portlet report

Fileds in the Analysis dimension group:
  • Dimension: the attribute for the GROUP BY clause. Must be an attribute of the fact class.

Fileds in the Layout group:

  • Typepie chartpie chart 3d and ring chart for various types of graphic charts. Table for a textual layout. Choose a graphic chart if the sectors are roughly of similar size. If some sectors are much smaller than the others, the table layout may be more readable.

2D portlet report

Fileds in the Analysis dimension group:
  • Primary dimension: the first attribute for the GROUP BY clause. Must be an attribute of the fact class.
  • Secondary dimension: the second attribute for the GROUP BY clause. Must be an attribute of the fact class.

Fields in the Layout group:

  • Type: graphic layouts: area chartbar chartbar chart 3dline chartline chart 3dstacked bar chartstacked bar chart 3d. Textual layouts: tabletree. The stacked bar chart is the most common layout.
  • Orientationhorizontal or vertical for different orientations of the axis in the graphic layouts.

Time filters

Let's assume today's date is October 24th and 'time filter period' is set to 'month'. Depending on the choice of 'time filter type', the following filters will be applied:
  • Current period: the current calendar month - from October 1st to October 31st.
  • Last period: the last month - from September 1st to September 30th.
  • Next period: the next month - from November 1st to November 30th.
  • One period in the future: from today to a month in the future - from October 24th to November 24th.
  • One period in the past: from a month in the past to today - from September 24th to October 24th.
  • Since the beginning of the current period: from the beginning of the current month to today - from October 1st to October 24th.
  • Until the end of the current period: from today to the end of the current month - from October 24th to October 31st.
The system automatically deals with months of different length and leap years according to the same rules as used in the Java class java.util.Calendar (See JavaDoc here).

Workflow state filters

If the fact class has a workflow, its portlet reports can be filtered by the workflow's state. This is useful in a number of situations:
  • to highlight object in a particularly important state;
  • to filter out historic data, i.e., objects that have reached a state (e.g., 'closed' or 'archived') in which they are no longer important.
Use the relationship Workflow filters to connect the current portlet to the workflow states you want to include. All the other states are implicitly excluded.

If you do not connect any states (this is the situation when you first create a portlet report) the filter is disabled, which means that all states are included.

Position of portlets in a portal

A portal page is made of a certain number of portlets organized in three columns. Portlets have a fixed width and a variable height that automatically adapts to the content.

The column and, within the column, the row where a portlet appears are given by the order field. This is an integer number that ManyDesigns Portofino uses according to the following rules:
  • Order values between 0 and 99 are positioned on the first column.
  • Order values between 100 and 199 are positioned on the second column.
  • Order values between 200 and 299 are positioned on the third column.
  • Within a column, portlets with smaller order values are displayed first. E.g., a portlet with an order of 5 is displayed before (in a higher position than) a portlet with an order of 12.
  • If two portlets have the same order value, the one with with the lower id is displayed first.
  • Portlets with an empty order (null value) are displayed in the first column, lower id's first, after all the other portlets with a non-empty order value have been displayed.

Enabling summary pages

The system homepage is not the only place where a portlet can be displayed. The modeler can use a portlet's On classes relationship to associate the portlet to a number of classes. This has two effects:
  • Each of such classes gets a new summary page with effectively is a portal for the class.
  • The portlet is positioned on the summary pages.
  • The summary page becomes the default pages (instead of the search page) when the class' tab is clicked.
A class must have at least one portlet associated in order to enable its summary page.

 


Previous: Advanced workflows

Next: Reports