Projects/KMyMoney/Features/Tags: Difference between revisions

From KDE TechBase
(Created page with '==Introduction== Although the KMyMoney is simply great application to maintain personal finances, there is always room for improvement. Currently transactions can be grouped toge...')
 
No edit summary
Line 1: Line 1:
==Introduction==
==Introduction==
Although the KMyMoney is simply great application to maintain personal finances, there is always
Although the KMyMoney is simply great application to maintain personal finances, there is always room for improvement. Currently transactions can be grouped together by using categories, e.g. it's easy to find all the expenses concerning fuel.
room for improvement. Currently transactions can be grouped together by using categories, e.g. it's
 
easy to find all the expences conserning fuel.
But what if user has two, or even three vehicles, and wants to know how much each of them costs money? User can create new fuel, insurance etc. categories for each vehicle, but in the long term this isn't very practical because there would be a lot of categories while some of them are used only for reporting purposes (for example, because of cars sold and new ones are bought).
But what if user has two, or even three vehicles, and wants to know how much each of them costs
 
money? User can create new fuel, insurance etc. categories for each vehicle, but in the long term
On the other hand, the situation can be handled by using memos: “tagging” the transaction with license number. Then new report is created where one search criterion is text which must be same as vehicle license number. This way user can track expenses from different categories for one specific vehicle.
this isn't very practical because there would be a lot of categories while some of them are used only
In short, tagging is meant to group different categories together in case when some of the transactions in the category doesn't logically belong together.
for reporting purposes (for example, because of cars sold and new ones are bought). On the other
 
hand, the situation can be handled by using memos: “tagging” the transaction with license number.
Even if memos can be used to accomplish this same goal, they aren't designed for this kind of functionality and since they aren't very convenient to use. Technically they do work, but in real life it's not handy to offer write long tag names when they could be simply selected from the drop down list. And on the other hand, it's not handy that those words that are reserved for tagging purposes, are forbidden to be used anymore for any other way in memos.
Then new report is created where one search criterion is text which must be same as vehicle license
 
number. This way user can track expences from different categories for one specific vehicle.
The rest of this document describes from user point of view, how this kind of tags functionality could be done, and where they should be taken into account. The document doesn't contain anything about code sections that need to be changed, because writer lacks of knowledge of KMyMoney at that level.
In short, tagging is meant to group different categories together in case when some of the
 
transactions in the category doesn't logically belong together.
Even if memos can be used to accomplish this same goal, they aren't designed for this kind of
functionality and since they aren't very convenient to use. Technically they do work, but in real life
it's not handy to ofter write long tag names when they could be simply selected from the drop down
list. And on the other hand, it's not handy that those words that are reserved for tagging purposes,
are forbidden to be used anymore for any other way in memos.
The rest of this document describes from user point of view, how this kind of tags functionality
could be done, and where they should be taken into account. The document doesn't contain anything
about code sections that need to be changed, because writer lacks of knowledge of KMyMoney at
that level.
==General==
==General==
If the user interface is wanted to be as similar as it is currently, the tags could work so that there is
If the user interface is wanted to be as similar as it is currently, the tags could work so that there is only Tools / Tags menu, where tags can be maintained. If there is defined at least one tag, only then following dialogs should be active (or visible, if user interface is wanted to be kept as simply as possible).
only Tools / Tags menu, where tags can be maintained. If there is defined at least one tag, only then
 
following dialogs should be active (or visible, if user interface is wanted to be kept as simply as
All the basic functionality should apply to the tags, e.g. when the document is saved or, also tags are saved, or if there is created new loan / scheduled transaction, it should be able to use tags in there in similar way as memos can be used, etc.
possible).
 
All the basic functionality should apply to the tags, e.g. when the document is saved or, also tags are
The basic principle is to add way to enable using of configurable tags exactly in same places where memos can be inserted for the transaction.
saved, or if there is created new loan / scheduled transaction, it should be able to use tags in there in
 
similar way as memos can be used, etc.
The basic principle is to add way to enable using of configurable tags exactly in same places where
memos can be inserted for the transaction.
==Maintaining tags==
==Maintaining tags==
Probably the nicest way to maintain the tags could be to add new view after the categories:
Probably the nicest way to maintain the tags could be to add new view after the categories:
New view here
 
but if it feels that it would clutter the user interface too much, the new menu item into Tools -menu
''New view here''
should suffice. If new view is desired, it could look pretty much as the Payee view currently (e.g.
 
listing tags on the left side, and after selecting one or more of them, the right side shows the
But if it feels that it would clutter the user interface too much, the new menu item into Tools -menu should suffice. If new view is desired, it could look pretty much as the Payee view currently (e.g. listing tags on the left side, and after selecting one or more of them, the right side shows the transactions that include the tag).
transactions that include the tag).
 
In any case, the maintain dialog should make it possible to add, edit and remove any number of tags
In any case, the maintain dialog should make it possible to add, edit and remove any number of tags as the user desires. The “nice to have” feature could be possibility to import user selectable words from memo fields to tags. In this way those who have used the memo fields to tag transactions, could easily create tags from those keywords.
as the user desires. The “nice to have” feature could be possibility to import user selectable words
 
from memo fields to tags. In this way those who has used the memo fields to tag transactions, could
easily create tags from those keywords.
==Ledger==
==Ledger==
List tags here
List tags here
When legder item is selected, there should be added list of tags that belong to transaction:
* When legder item is selected, there should be added list of tags that belong to transaction:
If there is transaction with only one category with multiple tags, it should list them all.
** If there is transaction with only one category with multiple tags, it should list them all.
If there is transaction with splitted categories with one tag for all of them, it should list
** If there is transaction with splitted categories with one tag for all of them, it should list
it.
it.
If there is transaction with splitted categories with multiple different tags or some splits
** If there is transaction with splitted categories with multiple different tags or some splits without any, it should say only “Splitted transaction with different tags” or something like that.
without any, it should say only “Splitted transaction with different tags” or something
** If category or any splits has tag, list should be empty.
like that.
 
If category or any splits has tag, list should be empty.
* When making deposit, transfer or withrawal, there should be possibility to add zero or more tags to the transaction.  
When making deposit, transfer or withrawal, there should be possibility to add zero or more
** Maybe this might be done by adding new field after category widget, that lists tags with same way as in ledger, and where is new little button to tag the transaction.  
tags to the transaction. Maybe this might be done by adding new field after category widget,
** This would open little drop down list where all the tags are listed and that can be selected by ticking them with x (in similar way as currently categories can be selected when searching).
that lists tags with same way as in ledger, and where is new little button to tag the
 
transaction. This would open little drop down list where all the tags are listed and that can be
selected by ticking them with x (in similar way as currently categories can be
New button here
selected when searching).
==Maintain==
==Maintain==
List of tags displayed with
===List of tags displayed with same rules as in ledger===
same rules as in ledger
''Insert image here''
Tag
 
Tag
Tag
Tag
1
2
3
4
which opens up
widget that
looks like
something like
this
At the top of the list widget should be maintain-button, which opens the same
At the top of the list widget should be maintain-button, which opens the same
maintaining dialog that can be opened through Tools / Tags menu.
maintaining dialog that can be opened through Tools / Tags menu.
This new list widget should be also used in split-editor, so that splitted items can be
 
tagged too:
This new list widget should be also used in split-editor, so that splitted items can be tagged too:
Tag
 
Tag
''Insert image here''
Tag
 
Tag
Maintain
1
2
3
4
New column with list of tags and
button here to open tag list. The split
dialog might be needed to make
bigger because of this.
==Searching the transactions & report configuration==
==Searching the transactions & report configuration==
New tab here
 
New tab called “Tag”
''Insert image here''
Between Category and Payee tabs.
 
Contains similar kind of list as the Category-tab currently, where multiple tags could be
* Between Category and Payee tabs.
selected, and similar shortcut buttons for all and none.
* Contains similar kind of list as the Category-tab currently, where multiple tags could be selected, and similar shortcut buttons for all and none.
When searching, this selection limits the results only for those transactions that contains the
* When searching, this selection limits the results only for those transactions that contains the
selected tag.
selected tag.
When configuring the report, this selection limits the reported transactions to those that
* When configuring the report, this selection limits the reported transactions to those that contains the selected tag. The way of limiting should be consistent with each report type.
contains the selected tag. The way of limiting should be consistent with each report type.

Revision as of 13:00, 19 March 2010

Introduction

Although the KMyMoney is simply great application to maintain personal finances, there is always room for improvement. Currently transactions can be grouped together by using categories, e.g. it's easy to find all the expenses concerning fuel.

But what if user has two, or even three vehicles, and wants to know how much each of them costs money? User can create new fuel, insurance etc. categories for each vehicle, but in the long term this isn't very practical because there would be a lot of categories while some of them are used only for reporting purposes (for example, because of cars sold and new ones are bought).

On the other hand, the situation can be handled by using memos: “tagging” the transaction with license number. Then new report is created where one search criterion is text which must be same as vehicle license number. This way user can track expenses from different categories for one specific vehicle. In short, tagging is meant to group different categories together in case when some of the transactions in the category doesn't logically belong together.

Even if memos can be used to accomplish this same goal, they aren't designed for this kind of functionality and since they aren't very convenient to use. Technically they do work, but in real life it's not handy to offer write long tag names when they could be simply selected from the drop down list. And on the other hand, it's not handy that those words that are reserved for tagging purposes, are forbidden to be used anymore for any other way in memos.

The rest of this document describes from user point of view, how this kind of tags functionality could be done, and where they should be taken into account. The document doesn't contain anything about code sections that need to be changed, because writer lacks of knowledge of KMyMoney at that level.

General

If the user interface is wanted to be as similar as it is currently, the tags could work so that there is only Tools / Tags menu, where tags can be maintained. If there is defined at least one tag, only then following dialogs should be active (or visible, if user interface is wanted to be kept as simply as possible).

All the basic functionality should apply to the tags, e.g. when the document is saved or, also tags are saved, or if there is created new loan / scheduled transaction, it should be able to use tags in there in similar way as memos can be used, etc.

The basic principle is to add way to enable using of configurable tags exactly in same places where memos can be inserted for the transaction.

Maintaining tags

Probably the nicest way to maintain the tags could be to add new view after the categories:

New view here

But if it feels that it would clutter the user interface too much, the new menu item into Tools -menu should suffice. If new view is desired, it could look pretty much as the Payee view currently (e.g. listing tags on the left side, and after selecting one or more of them, the right side shows the transactions that include the tag).

In any case, the maintain dialog should make it possible to add, edit and remove any number of tags as the user desires. The “nice to have” feature could be possibility to import user selectable words from memo fields to tags. In this way those who have used the memo fields to tag transactions, could easily create tags from those keywords.

Ledger

List tags here

  • When legder item is selected, there should be added list of tags that belong to transaction:
    • If there is transaction with only one category with multiple tags, it should list them all.
    • If there is transaction with splitted categories with one tag for all of them, it should list

it.

    • If there is transaction with splitted categories with multiple different tags or some splits without any, it should say only “Splitted transaction with different tags” or something like that.
    • If category or any splits has tag, list should be empty.
  • When making deposit, transfer or withrawal, there should be possibility to add zero or more tags to the transaction.
    • Maybe this might be done by adding new field after category widget, that lists tags with same way as in ledger, and where is new little button to tag the transaction.
    • This would open little drop down list where all the tags are listed and that can be selected by ticking them with x (in similar way as currently categories can be selected when searching).

Maintain

List of tags displayed with same rules as in ledger

Insert image here

At the top of the list widget should be maintain-button, which opens the same maintaining dialog that can be opened through Tools / Tags menu.

This new list widget should be also used in split-editor, so that splitted items can be tagged too:

Insert image here

Searching the transactions & report configuration

Insert image here

  • Between Category and Payee tabs.
  • Contains similar kind of list as the Category-tab currently, where multiple tags could be selected, and similar shortcut buttons for all and none.
  • When searching, this selection limits the results only for those transactions that contains the

selected tag.

  • When configuring the report, this selection limits the reported transactions to those that contains the selected tag. The way of limiting should be consistent with each report type.