123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- from django.utils.translation import gettext as _
- import mycreole
- import pygal
- from themes import color_icon_url
-
- # TODO: Add field descriptions including the filed list choices, if field has a list of limited values (e.g. flash: "fired", ...)
- # TODO: Describe logic operator order and brackets if possible
- # TODO: Expend Examples for pictures without flash and high f_number to get potentially good quality images.
-
- HELP_UID = 'help'
-
- MAIN = mycreole.render_simple(_("""
- = PyGal
-
- **PyGal** is a File **Gal**ery visulisation tool implementes in **Py**thon.
-
- It is designed to visualise images and videos. Nevertheless it is also possible to \
- visualise audio files and all other files.
-
-
- == Help
- * [[faq|Frequently asked questions]]
- * [[access|Access Conrtrol]]
- * [[search|Help on Search]]
-
- """))
-
- FAQ = mycreole.render_simple(_("""
- = Frequently asked questions
- ==Repeat-Mode
- On Problems with the Repeat-Mode, please check your Browser \
- [[https://www.google.com/search?q=autoplay+enable+browser|properties]] \
- for autoplay restrictions!
- """))
-
- ACCESS = mycreole.render_simple(_("""
- = Access control
- Access Control is defined on folder level. The rights given for a folder \
- are the rights for all items in that folder. The folder itself has no access \
- restrictions. The content of a folder is defined by the accessable items \
- recursive below that folder.
-
- **Example:** If a user has only read access to the folder "bar" below the folder "foo", \
- but not to "foo", he will see the folder "bar" inside the folder "foo" and all items in \
- "foo/bar", but not the items in the folder "foo".
- """))
-
- SEARCH = mycreole.render_simple(_("""
- = Search
- The search looks up full words in //Itemnames (name)// and //Tags (tag)// without giving \
- special search commands in the search string.
-
-
- == Search-Fields
- The useful search fields depend on the item type. Therefore some fields are given twice or \
- more in the different type depending lists.
-
- === General search fields
- * rel_path (TEXT):
- * name (TEXT):
- * type (TEXT):
- * favourite_of (KEYWORD):
- * datetime (DATETIME):
- * size (NUMERIC):
- * tag (KEYWORD):
-
- === Image
- * exposure_program (TEXT):
- * exposure_time (NUMERIC):
- * flash (TEXT):
- * f_number (NUMERIC):
- * focal_length (NUMERIC):
- * lon (NUMERIC):
- * lat (NUMERIC):
- * height (NUMERIC):
- * iso (NUMERIC):
- * camera (TEXT):
- * orientation (NUMERIC):
- * width (NUMERIC):
-
- === Audio
- * album (TEXT):
- * artist (TEXT):
- * bitrate (NUMERIC):
- * duration (NUMERIC):
- * genre (TEXT):
- * title (TEXT):
- * track (NUMERIC):
- * year (NUMERIC):
-
- === Video
- * ratio (NUMERIC):
-
-
- == 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
- ** ...
-
- == Examples
- * [[/pygal/userview/search?q=type:video AND datetime:2018|type:video AND datetime:2018]] gives results with all videos in year 2018.
- * [[/pygal/userview/search?q=datetime:[-2y to now]|datetime:[-2y to now]]] gives results with all item of the last two years.
- * [[/pygal/userview/search?q=rel_path:2018*|rel_path:2018*]] gives results with all item having 2018 in their path.
- * [[/pygal/userview/search?q=tag:Test|tag:Test]] gives results with all item having Test in their tags.
- * [[/pygal/userview/search?q=datetime:2016 AND favourite_of:*|datetime:2016 AND favourite_of:*]] gives results with all item having 2018 in their tags or path and are favourite of someone.
- """))
-
- help_pages = {
- 'main': MAIN,
- 'faq': FAQ,
- 'access': ACCESS,
- 'search': SEARCH,
- }
-
-
- def actionbar(context, request, current_help_page=None, **kwargs):
- actionbar_entries = (
- ('1', 'Main'),
- ('2', 'Faq'),
- ('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
- pygal.url_helpview(request, name.lower()), # url
- True, # left
- name.lower() == current_help_page, # active
- )
|