View source | View content page | Page history | Printable version   

Projects:Tags/Specifications

Warning.png   This document is still a work in progress. It may contain inaccuracies or errors.

Contents

Tags - Functional Specifications

Overview

Purpose

The purpose of the tags in Openbravo is to radically improve the user experience by allowing users to label elements in the system and subsequently browse or search data based on tags.

Prior to tags, a similar capability could be implemented using projects (i.e. all transactions can refer to a project and it is possible to retrieve all the transactions that have been associated to any given project). Projects, however, have accounting implications and are typically managed by a Financial Controller.

Tags provide the freedom to any user to build an arbitrary taxonomy of the transactions in the system.

In addition it will be possible to navigate from a single window to all the elements, wherever they are, containing some tags.

For example:

This development should be focused on simplicity: it should be simple to edit tags and it should be simple to use them.

Scope

This functionality will apply to the whole application: any element can be tagged.

For example a group of orders could be tagged as "Sales2007" and the same tag could be used for a bunch of invoices.

Constraints

Glossary

Functional Requirements

Use cases

The interactions with tags are:

View Element Tags

It is possible to see which tags have currently associated any element. The tags that are seen here are all the public ones for this element plus the user's private ones. This view is accessible both in relation and edition mode, in relation mode common tags for the selected elements should be displayed in a different way that those that are not for all the elements.

Edit Element Tags

From any element it is possible to add/modify/delete its tags. This modifications should be easily set as public or private. When this editions are performed from the relation view the modification are applied to all the selected elements.

Filter by Tags

In addition to the current tab filters, tag filters will be included. This filter is summed to the previous one. For example: a filter for those invoices which document number starts by "555" (555% typical filter) and tagged with "Sales2007" can be used.

Browse Tags

Apart of the tab filter for tags, tags are browsable using a common filter that will show all the elements containing a user given set of tags wherever the elements are in.

Technical Requirements

User Interface

According with the defined Use cases these are the elements designed for the tags management:

Tag button in toolbar

A new button appears in toolbar that will open the Edition Interface. This button is accessible in edition and relation modes of every tab.

Edition Interface

A single interface is designed for View Element Tags and Edit Element Tags use cases. This interface shows two text boxes, one for public and another one for private tags, where the defined tags appear and it is possible to edit, add news and remove existing ones.

When it is invoked from the relation view in these two boxes appear the common tags for the selected items, and in addition a non-editable text appears with the tags that are contained in some elements but no in all of them. When the text boxes are edited the tags there are applied to all the selected elements.

To be defined
Filter

The Filter by Tags use case is implemented in the already existing filter button. A new tab is added to this filter to filter by tags. This tab contains a text box where tags are added.

To be defined
Tag browser

Browse Tags is implemented by a browser accessible via left menu. It is a pop-up similar to the one displayed clicking the "linked items" button.

When it appears its filter is populated by default with the tags in the current element.

The contents of the browser are:

To be defined

Database implementation

Tags are implemented in a single database table (C_Tag) with the following fields:

Name Null Type Description
C_TAG_ID NOT NULL NUMBER(10) Tag identifier
AD_CLIENT_ID NOT NULL NUMBER(10) Audit field
AD_ORG_ID NOT NULL NUMBER(10) Audit field
ISACTIVE NOT NULL CHAR(1) Whether the tag is active
CREATED NOT NULL DATE Audit field
CREATEDBY NOT NULL NUMBER(10) Audit field
UPDATED NOT NULL DATE Audit field
UPDATEDBY NOT NULL NUMBER(10) Audit field
AD_TABLE_ID NOT NULL NUMBER(10) The table where the element is in
RECORD_ID NOT NULL NUMBER(10) Primary key for the element
TAG NOT NULL VARCHAR2(20) Tag text
AD_USER_ID NOT NULL NUMBER(10) The user who created the tag
ISPUBLIC NOT NULL CHAR(1) Whether the tag is public or not

Known issues

Open Issues for Discussion

Retrieved from "http://wiki.openbravo.com/wiki/Projects:Tags/Specifications"

This page has been accessed 7,588 times. This page was last modified on 8 June 2012, at 05:31. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.