123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- from django.utils.translation import gettext as _
- import mycreole
- import patt
- from themes import color_icon_url
-
- # TODO: Search: Describe search fields
- # TODO: Search: Describe logic operator order and brackets if possible
- # TODO: Search: Extend Examples with useful features.
- # TODO: Search for specific content: Describe search possibilities (also in pygal)
-
-
- HELP_UID = 'help'
-
- MAIN = mycreole.render_simple(_("""
- = PaTT
-
- **PaTT** is a **P**roject **a**nd **T**eamorganisation **T**ool.
-
- It is designed to store Tasks in relation to Projects and Users.
-
- == Help
- * [[creole|Creole Markup Language]]
- * [[access|Access Control for the site content]]
- * [[search|Help on Search]]
-
- == Items
-
- === Task properties:
- * State
- * Targetdate
- * Priority
- * Progress
- * Name
- * Description
-
- === Project properties:
- * Project Leaders
- * Project Members
- * State
- * Name
- * Description
-
- """))
-
- CREOLE = mycreole.mycreole_help_pagecontent()
- CREOLE += mycreole.render_simple("""
- = PaTT Markup
- {{{[[task:number]]}}} will result in a Link to the given tasknumber.
-
- {{{[[tasklist:number]]}}} will result in a Link to the tasklist of the given projectnumber.
- """)
-
- ACCESS = mycreole.render_simple(_("""
- = Superuser(s)
- * Are able to view, create and edit everything!
- * Only a Superuser is able to create a project.
- = Non-Staff-Users
- * Are able to read their own tasks, which are in the state "Open" or "Finished" and the related project(s) to these tasks.
- * They don't get project role permissions (Projectleader, -member, ...), even if they have a role.
- * They don't get permission to change any content.
- = Projectleader(s)
- * Are able to view and edit everything related to the project.
- * They are able to create tasks for the project for any user with a projectrole.
- = Projectmember(s)
- * Are able to view everything related to the project.
- * They are have limited modify permission to their own task related to that project.
- * They are able to leave taskcomments at every task related to the project.
- * They are able to create tasks related to the project for themselves.
- = Projectvisitor(s)
- * Are able to view everything related to the project.
- * They are have limited modify permission to their own task related to that project.
- """))
-
- SEARCH = mycreole.render_simple(_("""
- = Search
- The search looks up full words in //Tasknames (name)// and //Taskdescriptions (description)// without giving \
- special search commands in the search string. The search will result in a tasklist.
-
-
- === Task search fields
- * task_id (NUMERIC):
- * assigned_user (TEXT):
- * assigned_user_missing (BOOLEAN):
- * name (TEXT):
- * description (TEXT):
- * state (TEXT):
- ** The state of a Task. It is one of the following states: Open, Finished, Closed, Cancelled
- * targetdate (DATETIME):
-
- === Project related fields
- * project_id (NUMERIC):
- * project_name (TEXT):
- * project_description (TEXT):
-
- === Comment related field
- * comment (TEXT):
-
-
- == Search syntax (Whoosh)
- === Logic operators
- * AND
- ** **Example:** "foo AND bar" - Search will find all items with foo and bar.
- * OR
- ** **Example:** "foo OR bar" - Search will find all items with foo, bar or with foo and bar.
- * NOT
- ** **Example:** "foo NOT bar" - Search will find all items with foo and no bar.
- === Search in specific fields
- A search pattern like //foo:bar// does look for //bar// in the field named //foo//.
-
- This search pattern can also be combined with other search text via logical operators.
- === Search for specific content
- * **Wildcards:**
- * **Range:**
- ** From To:
- ** Above:
- ** Below:
- * **Named constants:**
- ** //now//: Current date
- ** //-[num]y//: Current date minus [num] years
- ** //+[num]mo//: Current date plus [num] months
- ** //-[num]d//: Current date minus [num] days
- ** ...
-
- == Examples
- * [[/patt/tasklist/search?q=project_id:1|project_id:1]] gives results with all tasks of project number #1.
- * [[/patt/tasklist/search?q=project_id:1 AND assigned_user:dirk|project_id:1 AND assigned_user:dirk]] gives results with all tasks of project number #1 which are assigned to 'dirk'.
- * [[/patt/tasklist/search?q=assigned_user:dirk+AND+targetdate:[2000+to+%2b5d]|assigned_user:dirk AND targetdate:[2000 to +5d] ]] gives results with tasks having a targetdate within the next 5 days and assigned to 'dirk'.
- """))
-
- help_pages = {
- 'main': MAIN,
- 'creole': CREOLE,
- 'access': ACCESS,
- 'search': SEARCH,
- }
-
-
- def actionbar(context, request, current_help_page=None, **kwargs):
- actionbar_entries = (
- ('1', 'Main'),
- ('2', 'Creole'),
- ('3', 'Access'),
- ('4', 'Search'),
- )
- for num, name in actionbar_entries:
- context[context.ACTIONBAR].append_entry(
- HELP_UID + '-%s' % name.lower(), # uid
- _(name), # name
- color_icon_url(request, num + '.png'), # icon
- patt.url_helpview(request, name.lower()), # url
- True, # left
- name.lower() == current_help_page, # active
- )
|