annotate data/plugin/parser/text_x_arnica.py @ 629:23bf696cf294 default tip

add a sendmail action, which can be use to submit POST data by E-Mail
author Thomas Waldmann <tw AT waldmann-edv DOT de>
date Mon, 25 Mar 2013 23:40:03 +0100
parents 374033c4eb26
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
1 # -*- coding: iso-8859-1 -*-
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
2 """
28
e71bbef3a837 PEP8 whitespace fix to satisfy test_sourcecode
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 26
diff changeset
3 MoinMoin - arnica parser
e71bbef3a837 PEP8 whitespace fix to satisfy test_sourcecode
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 26
diff changeset
4
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
5 This parser is used to visualize a couple of images as a thumbnail gallery.
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
6 Optionally, a description of an image can be added.
155
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
7
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
8 By default the image name and its creation date is shown.
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
9 If you click on a thumbnail you get navigation tools shown to slide through your images.
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
10
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
11 Based on Gallery2 by ReimarBauer 2005-2008, ThomasWaldmann 2005, FlorianFesti 2006
28
e71bbef3a837 PEP8 whitespace fix to satisfy test_sourcecode
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 26
diff changeset
12
571
01fc8ba9809b arnica: updated copyright
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 570
diff changeset
13 @copyright: 2008-2012 by MoinMoin:ReimarBauer,
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
14 @copyright: 2012 by MoinMoin:Dirk Alders
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
15 @license: GNU GPL, see COPYING for details.
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
16 """
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
17
310
2c7089c556e9 text_x_arnica: removed dependency of time module?
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 309
diff changeset
18 import os, re
581
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
19 from inspect import getargspec
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
20 from random import randint
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
21 from MoinMoin import search
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
22 from MoinMoin import wikiutil
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
23 from MoinMoin.action import AttachFile
40
c208aceb1ebd join and split exchanged on various places to packLine and unpackLine
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 37
diff changeset
24 from MoinMoin.packages import packLine
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
25 from MoinMoin.Page import Page
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
26
37
ad1d433589e4 moved test for PIL to a better place
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 34
diff changeset
27 parser_name = __name__.split('.')[-1]
581
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
28 # is the name of the plugin and also used as prefix for wikiconfig plugin defaults.
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
29 plugin_name = "arnica"
37
ad1d433589e4 moved test for PIL to a better place
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 34
diff changeset
30
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
31
581
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
32 def settings(target_page=u'', columns=4, file_regex=u'.',
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
33 image_for_webnail=False,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
34 show_text=True, show_date=True, show_tools=False, show_album_title=True,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
35 sort_by=("name", "date", "alias"),
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
36 reverse_sort=False,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
37 only_items=False, template_itemlist=False,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
38 album=False, album_title=unicode, album_image=u'', album_link_page=False,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
39 album_overview=False, album_short_title=False,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
40 renew=False,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
41 thumbnail_width=128,
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
42 webnail_width=640):
163
2676d2cbfaea text_x_arnica: comment fixed
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 162
diff changeset
43 """ dummy function to initialize all default parameters for arnica. The parameters are checked for wrong input.
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
44 @param target_page: page to read attachments from. empty pagename is current page.
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
45 for album_overview, target_page is now a string for title search. alternatively it is possible to use regex:... or category:... (e.g. regex:title:.* for all pages)
276
e3c509f99aad text_x_arnica: white space PEP8 fix, removed old comments
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 273
diff changeset
46 @param columns: number of columns for thumbnails, default is 4. 0 means no linebreak
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
47 @param file_regex: regex for selecting images
50
6122e5bb9332 text_x_arnica: moved description of keywords to macro_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 49
diff changeset
48 @param image_for_webnail if set then the image is shown instead of the webnail
6122e5bb9332 text_x_arnica: moved description of keywords to macro_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 49
diff changeset
49 @param show_text: default shows description
335
a6d96bdc0598 text_x_arnica: renamed parameter show_title to show_album_title
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 334
diff changeset
50 @param show_album_title: show album title
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
51 @param show_date: default shows date from exif header, if available
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
52 @param show_tools: default does not show the icon toolbar
246
f7a67224bf69 text_x_arnica: refactored sort_by*=boolean to sort_by=what
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 245
diff changeset
53 @param sort_by: default, sorts images by name, optional by date or by alias
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
54 @param reverse_sort: if set, the file list is sorted in reverse order
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
55 @param only_items: if set, only images which are described in listitem are shown, e.g.
50
6122e5bb9332 text_x_arnica: moved description of keywords to macro_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 49
diff changeset
56 * [[image1.jpg|alias]]
6122e5bb9332 text_x_arnica: moved description of keywords to macro_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 49
diff changeset
57 * [[image2.jpg|alias]]
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
58 @param template_itemlist: if set, an item list is shown which could be copied into the wiki page
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
59 @param album: if set, selects album mode, only thumbnail from first image is shown, related is album title and album_image
76
0d7bc75bc5a4 text_x_arnica: album_name renamed to album_title
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 75
diff changeset
60 @param album_title: default is pagename of the images for the album.
155
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
61 @param album_image: image to show on album default is the first image
334
ff4d2f96a36b text_x_arnica: applied patch for new parameter album_link_page link to page instead of slideshow by Johannes Berg
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 333
diff changeset
62 @param album_link_page: link to page instead of slideshow
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
63 @param album_overview: if set, a thumbnail overview will be created (see also target_page)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
64 @param album_short_title: reduces the album_title that way that it fits in one line
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
65 @param renew: if set then all selected thumbnails_* and webnails_* are removed and will be recreated
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
66 @param thumbnail_width: default width of thumbnail is 128px
112
8438a033d483 text_x_arnica.macro_arnica: uses the unitparser for thumbnail_width, webnail_width, text_width default unit is px
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 109
diff changeset
67 @param webnail_width: default width of webnail is 640px
50
6122e5bb9332 text_x_arnica: moved description of keywords to macro_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 49
diff changeset
68 """
61
6ab80d79e924 text_x_arnica.macro_arnica: much more simplified using locals()
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 60
diff changeset
69 return locals()
132
3ca3f4aadfca arnica_slides, text_x_arnica: removed off commented code lines
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 131
diff changeset
70
581
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
71 def update_defaults_by_wikiconfig(cfg, plugin_name, settings_function):
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
72 """ function to overwrite defaults of settings_function by wikiconfig attributes
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
73 @param cfg: wiki config instance
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
74 @param plugin_name: this is the namespace prefix for parameters of the plugin (plugin_name_param has to be defined in wikiconfig).
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
75 @param settings_function: function whose defaults have to be updated by wikiconfig
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
76 """
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
77 def get_arg_default(cfg, plugin_name, name, settings_function):
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
78 try:
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
79 return getattr(cfg, "%s_%s"%(plugin_name, name))
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
80 except AttributeError:
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
81 return getargspec(settings_function)[3][getargspec(settings_function)[0].index(name)]
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
82 settings_function.func_defaults = tuple([get_arg_default(cfg, plugin_name, arg, settings_function)
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
83 for arg in getargspec(settings_function)[0]])
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
84
98
edb3aa8208b2 text_x_arnica: removed some whitespaces, moved _get_files below macro_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 94
diff changeset
85 def _get_files(request, pagename):
234
74b073ba10b3 text_x_arnica: added docstring to _get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 233
diff changeset
86 """ get files dependent on isPicture and ignores tmp. files
74b073ba10b3 text_x_arnica: added docstring to _get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 233
diff changeset
87 @param pagename: name of the page where to get attachments
74b073ba10b3 text_x_arnica: added docstring to _get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 233
diff changeset
88 """
152
7438cd3fdfba text_x_arnica: removed internal duplicate of _get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 149
diff changeset
89 # ToDo remove tmp. files check later
7438cd3fdfba text_x_arnica: removed internal duplicate of _get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 149
diff changeset
90 files = AttachFile._get_files(request, pagename)
7438cd3fdfba text_x_arnica: removed internal duplicate of _get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 149
diff changeset
91 files = [fn for fn in files if wikiutil.isPicture(fn) and not fn.startswith('tmp.')]
98
edb3aa8208b2 text_x_arnica: removed some whitespaces, moved _get_files below macro_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 94
diff changeset
92 return files
17
cb6ad4cfdc5e PEP8 whitespace fix
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 15
diff changeset
93
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
94 class Parser:
3
c9ab05e6d499 text_x_arnica: fixed shadowing of Parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 2
diff changeset
95 """ arnica parser """
220
362a85e8a378 text_x_arnica: extensions adjusted
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 214
diff changeset
96
362a85e8a378 text_x_arnica: extensions adjusted
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 214
diff changeset
97 extensions = ['.jpg', '.jpeg', '.gif', '.png']
362a85e8a378 text_x_arnica: extensions adjusted
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 214
diff changeset
98
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
99 def __init__(self, raw, request, **kw):
7
a067ae7020f6 text_x_arnica: fixed many pylint warnings, factored out get_exif_info from get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 6
diff changeset
100 self.pagename = request.page.page_name
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
101 self.raw = raw
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
102 self.request = request
153
3abe0bd083b2 text_x_arnica: added formatter to self and replaced wikiutil.escape with formatter.text
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 152
diff changeset
103 self.formatter = request.formatter
7
a067ae7020f6 text_x_arnica: fixed many pylint warnings, factored out get_exif_info from get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 6
diff changeset
104 self.form = None
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
105 self._ = request.getText
155
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
106
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
107 args = kw.get('format_args', '')
55
1eb0c987a260 text_x_arnica: if the parser was called with a not defined parameter, print an error and return.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 54
diff changeset
108 self.init_settings = False
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
109 self.top_image_sorted = None
581
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
110 update_defaults_by_wikiconfig(request.cfg, plugin_name, settings)
57
7f56d8a670da text_x_arnica: some doc strings added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 56
diff changeset
111 # we use a macro definition to initialize the default init parameters
7f56d8a670da text_x_arnica: some doc strings added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 56
diff changeset
112 # if a user enters a wrong parameter the failure is shown by the exception
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
113 try:
581
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
114 arnica_settings = wikiutil.invoke_extension_function(request, settings, args)
374033c4eb26 support for configuring arnica by wikiconfig enties
Dirk Alders <d.alders@arcor.de>
parents: 576
diff changeset
115 for key, value in arnica_settings.items():
64
ea6139631185 text_x_arnica: removed definition of _create_macro and usage from wikiutil.invoke_extension_function
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 63
diff changeset
116 setattr(self, key, value)
57
7f56d8a670da text_x_arnica: some doc strings added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 56
diff changeset
117 # saves the state of valid input
55
1eb0c987a260 text_x_arnica: if the parser was called with a not defined parameter, print an error and return.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 54
diff changeset
118 self.init_settings = True
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
119 except ValueError, err:
149
62a6c964e63b fixed and added docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 144
diff changeset
120 # ToDo use formatter
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
121 request.write(self.formatter.text(err))
341
21fd5f586a3b text_x_arnica: bug fix for using arnica format and a wrong typed or undefined parameter. It shows the usual message about wrong argument without a traceback now.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 340
diff changeset
122 else:
21fd5f586a3b text_x_arnica: bug fix for using arnica format and a wrong typed or undefined parameter. It shows the usual message about wrong argument without a traceback now.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 340
diff changeset
123 self.arnica_image = {} # self.arnica_image[image] = (webnail, thumbnail, exif_date, description, order)
21fd5f586a3b text_x_arnica: bug fix for using arnica format and a wrong typed or undefined parameter. It shows the usual message about wrong argument without a traceback now.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 340
diff changeset
124 self.Image = wikiutil.importWikiPlugin(self.request.cfg, "macro", "Image", function="Image")
21fd5f586a3b text_x_arnica: bug fix for using arnica format and a wrong typed or undefined parameter. It shows the usual message about wrong argument without a traceback now.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 340
diff changeset
125 self.breakable_word_length = self.thumbnail_width / 8
17
cb6ad4cfdc5e PEP8 whitespace fix
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 15
diff changeset
126
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
127 def shortenName(self, name, length, prestring='...'):
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
128 if len(name) > length:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
129 return prestring + name[-length + len(prestring):]
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
130 else:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
131 return name
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
132
126
02a3e2fba89f text_x_arnica: renamed html_show_tools_restricted to html_tools_restricted
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 125
diff changeset
133 def html_tools_restricted(self, this_target):
85
d705644861dc text_x_arnica: removed html definition for mode2, renamed mode1 methods
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 84
diff changeset
134 """ shows restricted tools
d705644861dc text_x_arnica: removed html definition for mode2, renamed mode1 methods
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 84
diff changeset
135 @param this_target: image
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
136 """
334
ff4d2f96a36b text_x_arnica: applied patch for new parameter album_link_page link to page instead of slideshow by Johannes Berg
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 333
diff changeset
137 if self.album or not self.request.user.may.delete(self.pagename):
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
138 return ''
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
139 return """
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
140 <li class="tool">
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
141 <form action="%(url)s" method="POST" enctype="multipart/form-data">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
142 <input type="hidden" name="action" value="arnica_slides">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
143 <input type="hidden" name="do" value="rotate_left">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
144 <input type="hidden" name="target" value="%(this_target)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
145 <input type="image" value="submit" src="%(htdocs)s/arnica/img/arnica_rotate_to_left.png" title="rotate to left">
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
146 </form>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
147 </li>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
148 <li class="tool">
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
149 <form action="%(url)s" method="POST" enctype="multipart/form-data">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
150 <input type="hidden" name="action" value="arnica_slides">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
151 <input type="hidden" name="do" value="rotate_right">
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
152 <input type="hidden" name="target" value="%(this_target)s">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
153 <input type="image" value="submit" src="%(htdocs)s/arnica/img/arnica_rotate_to_right.png" title="rotate to right">
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
154 </form>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
155 </li>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
156 <li class="tool">
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
157 <form action="%(url)s" method="POST" enctype="multipart/form-data">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
158 <input type="hidden" name="action" value="arnica_slides">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
159 <input type="hidden" name="do" value="delete">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
160 <input type="hidden" name="target" value="%(this_target)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
161 <input type="image" value="submit" src="%(htdocs)s/arnica/img/arnica_remove_image.png" title="move to bak">
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
162 </form>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
163 </li>""" % {
157
0116eb3e1099 text_x_arnica: replaced baseurl/pagename by Page.url
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 156
diff changeset
164 'url': Page(self.request, self.pagename).url(self.request),
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
165 'htdocs': self.request.cfg.url_prefix_static,
7
a067ae7020f6 text_x_arnica: fixed many pylint warnings, factored out get_exif_info from get_files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 6
diff changeset
166 "pagename": wikiutil.quoteWikinameURL(self.pagename),
478
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
167 "this_target": wikiutil.escape(this_target),
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
168 }
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
169
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
170 def html_tools(self, image):
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
171 """ html code of thumbnails view with contol
255
3c6496586d40 text_x_arnica: fixed docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 254
diff changeset
172 @param image: image as key for corresponding data
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
173 """
253
902a0b543b9b text_x_arnica: fixed wrong order for webnails
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 252
diff changeset
174 image_names = self.arnica_image.keys()
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
175 index = [self.arnica_image[img][4] for img in image_names]
253
902a0b543b9b text_x_arnica: fixed wrong order for webnails
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 252
diff changeset
176 selected_images = [image_names[int(idx)] for idx in index]
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
177
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
178 html = """
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
179 <ul>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
180 <li class="tool">
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
181 <form action="%(url)s" method="POST" enctype="multipart/form-data">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
182 <input type="hidden" name="action" value="AttachFile">
570
bf8bae241ec9 arnica: fix download link for load image
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 569
diff changeset
183 <input type="hidden" name="do" value="view">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
184 <input type="hidden" name="target" value="%(this_target)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
185 <input type="image" value="submit" src="%(htdocs)s/arnica/img/arnica_full_image.png" title="load image">
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
186 </form>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
187 </li>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
188 <li class="tool">
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
189 <form action="%(url)s" method="POST" enctype="multipart/form-data">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
190 <input type="hidden" name="action" value="arnica_slides">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
191 <input type="hidden" name="do" value="slide_show">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
192 <input type="hidden" name="alias" value="%(description)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
193 <input type="hidden" name="target" value="%(target)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
194 <input type="hidden" name="pagename" value="%(pagename)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
195 <input type="hidden" name="images" value="%(images)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
196 <input type="hidden" name="original_images" value="%(original_images)s">
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
197 <input type="hidden" name="exif_date" value="%(exif_date)s">
572
d53b63f94da8 arnica: fix for slide show link of toolbar. parameter webnail_width was missing.
sudo_dirk<d.alders@arcor.de>
parents: 571
diff changeset
198 <input type="hidden" name="webnail_width" value="%(webnail_width)d">
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
199 <input type="image" value="submit" title="slide show" src="%(htdocs)s/arnica/img/arnica_load_slide_show.png">
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
200 </form>
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
201 </li>
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
202 %(html_tools_restricted)s
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
203 </ul>
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
204 """ % {
256
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
205 "url": Page(self.request, self.pagename).url(self.request),
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
206 "pagename": self.pagename,
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
207 "htdocs": self.request.cfg.url_prefix_static,
478
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
208 "description": wikiutil.escape(packLine([(self.arnica_image[image][3])] + [(self.arnica_image[img][3]) for img in selected_images]), quote=1),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
209 "exif_date": wikiutil.escape(packLine([self.arnica_image[image][2]] + [self.arnica_image[img][2] for img in selected_images]), quote=1),
572
d53b63f94da8 arnica: fix for slide show link of toolbar. parameter webnail_width was missing.
sudo_dirk<d.alders@arcor.de>
parents: 571
diff changeset
210 "webnail_width": self.webnail_width,
478
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
211 "target": wikiutil.escape(self.arnica_image[image][0]),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
212 "original_images": wikiutil.escape(packLine([image] + selected_images)),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
213 "images": wikiutil.escape(packLine([self.arnica_image[image][0]] + [self.arnica_image[img][0] for img in selected_images])),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
214 "original_images": wikiutil.escape(packLine([image] + selected_images)),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
215 "this_target": wikiutil.escape(image),
256
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
216 "html_tools_restricted": self.html_tools_restricted(image),
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
217 }
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
218 return html
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
219
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
220 def html_show_tools(self, image):
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
221 """ shows toolbox
255
3c6496586d40 text_x_arnica: fixed docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 254
diff changeset
222 @param image: image as key for corresponding data
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
223 """
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
224 html = ''
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
225 if self.show_tools:
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
226 html = '<div class="html-show-tools">%(tools)s</div>' % {
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
227 "tools": self.html_tools(image)}
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
228 return html
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
229
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
230 def html_show_date(self, image):
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
231 """ shows date
255
3c6496586d40 text_x_arnica: fixed docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 254
diff changeset
232 @param image: image as key for corresponding data
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
233 """
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
234
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
235 html = ''
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
236 if self.show_date:
309
da0bb5e04a91 arnica css: html-show-date renamed to show-datetime
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 306
diff changeset
237 html = '<div class="show-datetime">%(this_exif_date)s</div>' % {
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
238 "this_exif_date": self.formatter.text(self.arnica_image[image][2])}
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
239 return html
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
240
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
241 def html_show_alias(self, image):
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
242 """ alias text below image
255
3c6496586d40 text_x_arnica: fixed docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 254
diff changeset
243 @param image: image as key for corresponding data
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
244 """
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
245
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
246 html = ''
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
247 if self.show_text:
306
2f1b790d9746 arnica css: html-show-alias renamed to description
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 302
diff changeset
248 html = '<div class="description"> %(this_alias)s</div>' % {
340
cdf4d4fccd82 text_x_arnica: changed breakable word_length to self.thumbnail_width / 8 and also defined it in in init
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 339
diff changeset
249 "this_alias": self.to_wikitext(wikiutil.make_breakable(self.arnica_image[image][3], self.breakable_word_length))}
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
250 return html
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
251
254
a422d7d58d56 text_x_arnica: beautified selected_images
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 253
diff changeset
252 def html_arrange_thumbnails(self, image, selected_images):
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
253 """ defines arrangement of thumbnail, text, date and tools
255
3c6496586d40 text_x_arnica: fixed docstrings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 254
diff changeset
254 @param image: image as key for corresponding data
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
255 @param selected_images: ordered list of selected images
241
d082511f6a3b fixed doc strings
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 240
diff changeset
256 """
63
9301ca6f1e33 text_x_arnica: fixed missing album title
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 61
diff changeset
257 title = ""
335
a6d96bdc0598 text_x_arnica: renamed parameter show_title to show_album_title
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 334
diff changeset
258 if self.album and self.show_album_title:
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
259 if self.album_short_title:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
260 title = self.shortenName(self.album_title or self.pagename, self.breakable_word_length)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
261 else:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
262 title = wikiutil.make_breakable(self.album_title or self.pagename, self.breakable_word_length)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
263 title = '<div class="title">%(n)d images<br>(%(album_title)s)</div>' % {"n": len(self.arnica_image),
339
7163e5cf5b77 text_x_arnica: make album_title breakable
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 336
diff changeset
264 "album_title": title}
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
265 html = """
332
a944836db9bb test_x_arnica: bug fix for missing album title applied patch by Johannes Berg
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 331
diff changeset
266 <div class="thumbnail" style="width:%(width)spx">
a944836db9bb test_x_arnica: bug fix for missing album title applied patch by Johannes Berg
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 331
diff changeset
267 %(title)s
157
0116eb3e1099 text_x_arnica: replaced baseurl/pagename by Page.url
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 156
diff changeset
268 <form action="%(url)s" method="POST" enctype="multipart/form-data">
327
1b0d5caae8b6 text_x_arnica: aligned images to the bottom applied patch by Johannes Berg.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 323
diff changeset
269 <div class="imagecont" style="height:%(width)spx;">
332
a944836db9bb test_x_arnica: bug fix for missing album title applied patch by Johannes Berg
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 331
diff changeset
270 <div class="image" style="width:%(width)spx;">
334
ff4d2f96a36b text_x_arnica: applied patch for new parameter album_link_page link to page instead of slideshow by Johannes Berg
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 333
diff changeset
271 <input type="hidden" name="action" value="%(action)s">
121
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
272 <input type="hidden" name="do" value="slide_show">
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
273 <input type="hidden" name="alias" value="%(description)s">
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
274 <input type="hidden" name="target" value="%(target)s">
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
275 <input type="hidden" name="pagename" value="%(pagename)s">
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
276 <input type="hidden" name="images" value="%(images)s">
167
3311d9f639cf arnica_slides, text_x_arnica: use real image name in the option list
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 166
diff changeset
277 <input type="hidden" name="original_images" value="%(original_images)s">
121
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
278 <input type="hidden" name="exif_date" value="%(exif_date)s">
543
8893fdfafd75 arnica: set slideshow ui elements independent of portrait or landscape images. (thanks to Johannes Berg)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 479
diff changeset
279 <input type="hidden" name="webnail_width" value="%(webnail_width)d">
334
ff4d2f96a36b text_x_arnica: applied patch for new parameter album_link_page link to page instead of slideshow by Johannes Berg
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 333
diff changeset
280 <input type="image" value="submit" title="%(submit_title)s" src="%(thumbnail)s">
121
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
281 </div>
327
1b0d5caae8b6 text_x_arnica: aligned images to the bottom applied patch by Johannes Berg.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 323
diff changeset
282 </div>
121
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
283 </form>
311
81dc3a93fd84 text_x_arnica: div container for description, datetime and tools
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 310
diff changeset
284 <div style="width:%(width)spx">
329
cc052e263d84 text_x_arnica (parser, css): rearanged order of data below the image to: 1. tools, 2. date exif information, 3.filename/description.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 327
diff changeset
285 %(html_tools)s
121
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
286 %(alias_html)s
f6ce62994858 text_x_arnica: initial setup for css.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 113
diff changeset
287 %(date_html)s
311
81dc3a93fd84 text_x_arnica: div container for description, datetime and tools
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 310
diff changeset
288 </div>
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
289 </div>
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
290 """ % {
256
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
291 "title": title,
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
292 "url": Page(self.request, self.pagename).url(self.request),
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
293 "pagename": self.pagename,
478
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
294 "description": wikiutil.escape(packLine([(self.arnica_image[image][3])] + [(self.arnica_image[img][3]) for img in selected_images]), quote=1),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
295 "exif_date": wikiutil.escape(packLine([self.arnica_image[image][2]] + [self.arnica_image[img][2] for img in selected_images])),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
296 "target": wikiutil.escape(self.arnica_image[image][0]),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
297 "original_images": wikiutil.escape(packLine([image] + selected_images)),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
298 "images": wikiutil.escape(packLine([self.arnica_image[image][0]] + [self.arnica_image[img][0] for img in selected_images])),
2a915e70966f arnica: wikiutil.escape fixes
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 341
diff changeset
299 "thumbnail": wikiutil.escape(self.arnica_image[image][1]),
311
81dc3a93fd84 text_x_arnica: div container for description, datetime and tools
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 310
diff changeset
300 "width": self.thumbnail_width,
256
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
301 "html_tools": self.html_show_tools(image),
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
302 "date_html": self.html_show_date(image),
4c017ac39d06 text_x_arnica: fixed indenting of dict definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 255
diff changeset
303 "alias_html": self.html_show_alias(image),
336
ec5f5632d911 text_x_arnica.py: PEP8 whitespace fix
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 335
diff changeset
304 "submit_title": {True: "images", False: "slide show"}[self.album_link_page],
ec5f5632d911 text_x_arnica.py: PEP8 whitespace fix
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 335
diff changeset
305 "action": {True: "show", False: "arnica_slides"}[self.album_link_page],
543
8893fdfafd75 arnica: set slideshow ui elements independent of portrait or landscape images. (thanks to Johannes Berg)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 479
diff changeset
306 "webnail_width": self.webnail_width,
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
307 }
222
873b2bb15da8 text_x_arnica: renamed text var into html
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 221
diff changeset
308 return html
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
309
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
310 def define_thumb_webnails(self, files, image_alias):
90
7e0445f8120e renamed get_files to define_thumb_webnails
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 89
diff changeset
311 """ creates lists for thumbnails and webnails
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
312 @param files: file names of images
231
c8897e9950a1 text_x_arnica: renamed get_quotes to get_image_alias
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 230
diff changeset
313 @param image_alias: text alias for image file
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
314 """
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
315 order = 0
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
316 for attfile in files:
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
317 description = attfile
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
318 if image_alias.get(attfile):
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
319 # use alias
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
320 description = image_alias.get(attfile)[0]
289
a83fb8e78dc7 text_x_arnica: bug fix don't ignore target_page
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 288
diff changeset
321 itemname = self.pagename + '/' + attfile
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
322 img = self.Image(self.request, itemname)
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
323 webnail = img.url(size=(self.webnail_width, self.webnail_width))
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
324 thumbnail = img.url(size=(self.thumbnail_width, self.thumbnail_width))
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
325 try:
310
2c7089c556e9 text_x_arnica: removed dependency of time module?
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 309
diff changeset
326 exif_date = self.request.user.getFormattedDateTime(img.ctime)
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
327 except KeyError:
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
328 exif_date = '--'
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
329 self.arnica_image[attfile] = (webnail, thumbnail, exif_date, description, str(order))
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
330 order += 1
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
331
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
332 def to_wikitext(self, text):
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
333 """ converts text to wiki name if it is written as WikiName or [[wikiname]]
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
334 @param text: text to parse and render
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
335 """
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
336 text = ''.join(text)
3
c9ab05e6d499 text_x_arnica: fixed shadowing of Parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 2
diff changeset
337 from MoinMoin.parser.text_moin_wiki import Parser as WikiParser
21
744416ee6590 text_x_arnica: iamge_for_webnail key added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 17
diff changeset
338 return wikiutil.renderText(self.request, WikiParser, text)
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
339
299
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
340 def get_image_alias(self):
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
341 """ gets the quotes from the item list and returns a dictionary of image and alias """
323
b7fed7cdc13d text_x_arnica: ToDo's added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 322
diff changeset
342 # ToDo simplify
299
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
343 quotes = self.raw.split('\n')
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
344 quotes = [quote.strip() for quote in quotes]
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
345 quotes = [quote[2:] for quote in quotes if quote.startswith('* ')]
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
346 image_alias = {}
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
347 counter = 0
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
348 for line in quotes:
330
3f6de5cba911 text_x_arnica: get_image_alias checks also for '|' in line.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 329
diff changeset
349 if line.startswith('[[') and line.endswith(']]') and '|' in line:
299
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
350 img, alias = line[2:-2].split('|', 1)
576
a4d66592dea7 text_x_arnica.get_image_alias: simplified stripping
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 575
diff changeset
351 img = img.strip()
a4d66592dea7 text_x_arnica.get_image_alias: simplified stripping
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 575
diff changeset
352 alias = alias.strip()
321
c958b4dbfa4a text_x_arnica: verify the image for the item list ( *[[image|alias]]) by wikiutil.isPicture
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 320
diff changeset
353 # don't count an image more than once and verify that it is an image
576
a4d66592dea7 text_x_arnica.get_image_alias: simplified stripping
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 575
diff changeset
354 if AttachFile.exists(self.request, self.pagename, img) and wikiutil.isPicture(img) and img not in image_alias.keys():
a4d66592dea7 text_x_arnica.get_image_alias: simplified stripping
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 575
diff changeset
355 image_alias[img] = (self.formatter.text(alias), counter, img)
320
a9f7a24a567d text_x_arnica: bug fix of the only_item list problem of multiple aliases for one image by skipping duplications.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 319
diff changeset
356 counter += 1
575
0db77eb786fb text_x_arnica: Bug Fix: ignore not existing images in get_image_alias
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 572
diff changeset
357 # ToDo add a placeholder image for not existing images but already defined
299
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
358 return image_alias
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
359
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
360 def select_files(self, formatter, target_page):
4
ccc40ffe14fc text_x_arnica: factored out select_files from format
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3
diff changeset
361 """ select files """
28
e71bbef3a837 PEP8 whitespace fix to satisfy test_sourcecode
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 26
diff changeset
362 # we need to take the page_name from the formatter.page otherwise
9
6fb3b03afe2e text_x_arnica: added some comments
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 8
diff changeset
363 # include does not work
4
ccc40ffe14fc text_x_arnica: factored out select_files from format
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3
diff changeset
364 self.pagename = formatter.page.page_name
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
365 if target_page and Page(self.request, target_page).exists() and self.request.user.may.read(target_page):
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
366 self.pagename = target_page
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
367
299
1c25a98e3d9d reverted changeset 269:1e3e876e38fb for Image and partly for text_x_arnica
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 296
diff changeset
368 image_alias = self.get_image_alias()
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
369 if self.only_items:
323
b7fed7cdc13d text_x_arnica: ToDo's added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 322
diff changeset
370 # ToDo simplify
320
a9f7a24a567d text_x_arnica: bug fix of the only_item list problem of multiple aliases for one image by skipping duplications.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 319
diff changeset
371 # get the same order of files and aliastext as on the page written
231
c8897e9950a1 text_x_arnica: renamed get_quotes to get_image_alias
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 230
diff changeset
372 files = image_alias.keys()
102
b446b9826cf8 text_x_arnica: whitepaces removed, some linebreaks
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 100
diff changeset
373 all_files = [fn for fn in files if wikiutil.isPicture(fn) and
b446b9826cf8 text_x_arnica: whitepaces removed, some linebreaks
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 100
diff changeset
374 AttachFile.exists(self.request, self.pagename, fn)]
4
ccc40ffe14fc text_x_arnica: factored out select_files from format
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3
diff changeset
375 else:
89
83abc483373a text_x_arnica: internal _get_files routine added to select only valid image files
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 87
diff changeset
376 all_files = _get_files(self.request, self.pagename)
53
64c2bb702530 text_x_arnica: filer renamed into file_regex
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 52
diff changeset
377 if self.file_regex != u'.':
64c2bb702530 text_x_arnica: filer renamed into file_regex
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 52
diff changeset
378 all_files = [attfile for attfile in all_files if re.match(self.file_regex, attfile)]
4
ccc40ffe14fc text_x_arnica: factored out select_files from format
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3
diff changeset
379 if all_files:
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
380 self.define_thumb_webnails(all_files, image_alias)
4
ccc40ffe14fc text_x_arnica: factored out select_files from format
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3
diff changeset
381 return all_files
17
cb6ad4cfdc5e PEP8 whitespace fix
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 15
diff changeset
382
74
ad51b86d7bc1 introduce macro arnica which calls the arnica parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 73
diff changeset
383 def render(self, formatter):
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
384 if self.album and self.album_overview:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
385 # find pages
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
386 if (self.target_page or self.pagename).split(":")[0] in ["regex", "category"]:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
387 search_term = self.target_page or self.pagename
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
388 else:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
389 search_term = u'regex:title:^%s/' % (self.target_page or self.pagename)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
390 search_result = search.searchPages(self.request, search_term)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
391 target_pages = set(title.page_name for title in search_result.hits)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
392 # create album overview
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
393 albums = []
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
394 for target_page in target_pages:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
395 self.arnica_image.clear() # remove previous images
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
396 html = self.render_thumbnails(formatter, target_page)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
397 if self.arnica_image: # skip empty albums
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
398 if self.sort_by == 'date':
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
399 albums.append([self.Image(self.request, target_page + '/' + self.top_image_sorted).ctime, html])
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
400 else:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
401 albums.append([self.top_image_sorted, html])
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
402 albums.sort()
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
403 if self.reverse_sort:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
404 albums.reverse()
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
405 col_count = 1
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
406 cols = min([self.columns, len(albums)])
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
407 result = []
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
408 for entry in albums:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
409 result.append(''.join(entry[1]))
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
410 if col_count == cols and self.columns != 0:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
411 col_count = 0
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
412 result.append('<br class="clearboth">')
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
413 col_count += 1
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
414 result.append('<br class="clearboth">')
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
415 return ''.join(result)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
416 else:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
417 return self.render_thumbnails(formatter, self.target_page)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
418
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
419 def render_thumbnails(self, formatter, target_page):
74
ad51b86d7bc1 introduce macro arnica which calls the arnica parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 73
diff changeset
420 """ renders thumbnails """
0
d164d12d06b8 initial version of arnica (image gallery parser and slideshow action)
Reimar Bauer <rb.proj AT googlemail DOT com>
parents:
diff changeset
421 _ = self._
74
ad51b86d7bc1 introduce macro arnica which calls the arnica parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 73
diff changeset
422 # checks if initializing of all attributes in __init__ was done
55
1eb0c987a260 text_x_arnica: if the parser was called with a not defined parameter, print an error and return.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 54
diff changeset
423 if not self.init_settings:
1eb0c987a260 text_x_arnica: if the parser was called with a not defined parameter, print an error and return.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 54
diff changeset
424 return
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
425 if target_page and (not Page(self.request, target_page).exists() or not self.request.user.may.read(target_page)):
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
426 text = _("""Page '%(new_pagename)s' does not exist or you don't have enough rights.""") % {"new_pagename": target_page}
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
427 return self.formatter.text(text)
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
428 if not self.arnica_image and not self.select_files(formatter, target_page):
155
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
429 text = _("No matching image file found!")
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
430 return self.formatter.text(text)
49
83078930ae66 introduction of the argument parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 48
diff changeset
431 if self.template_itemlist:
155
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
432 self.request.write(self.formatter.div(1, css_class="text"))
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
433 text = _("""\
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
434 Copy the following listitems into the script.
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
435 Replace alias with the label you want.
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
436 Afterwards disable template_itemlist by setting it to False:""")
155
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
437 self.request.write(self.formatter.text(text))
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
438 self.request.write(self.formatter.div(1))
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
439 self.request.write(self.formatter.preformatted(1))
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
440 keys = self.arnica_image.keys()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
441 keys.sort()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
442 for image in keys:
260
0bf599bb643f text_x_arnica: simplified substitution of parameter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 259
diff changeset
443 text = ' * [[%s|alias]]\n' % image
155
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
444 self.request.write(self.formatter.text(text))
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
445 self.request.write(self.formatter.preformatted(0))
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
446 self.request.write(self.formatter.div(0))
3d5773a1e24b text_x_arnica: output text by the formatter
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 153
diff changeset
447 self.request.write(self.formatter.div(0))
226
9faa8f0e9f86 fixed docstrings and removed some whitespaces
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 224
diff changeset
448
43
623ddf996af2 text_x_arnica: album after creating of all thumbnails and webnails
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 42
diff changeset
449 col_count = 1
277
0430039fe8c5 text_x_arnica.: fixed clearing of floating style for one image independent of number of columns, moved br style to a class definition
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 276
diff changeset
450 cols = min([self.columns, len(self.arnica_image)])
43
623ddf996af2 text_x_arnica: album after creating of all thumbnails and webnails
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 42
diff changeset
451 result = []
254
a422d7d58d56 text_x_arnica: beautified selected_images
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 253
diff changeset
452 image_names = self.arnica_image.keys()
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
453 image_dict = {}
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
454 if self.only_items:
323
b7fed7cdc13d text_x_arnica: ToDo's added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 322
diff changeset
455 # ToDo simplify
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
456 image_alias = self.get_image_alias()
320
a9f7a24a567d text_x_arnica: bug fix of the only_item list problem of multiple aliases for one image by skipping duplications.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 319
diff changeset
457 image_names = image_alias.keys()
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
458 alias_text = image_alias.values()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
459 to_order = [int(alias_text[ix][1]) for ix in range(len(alias_text))]
322
35bf08ec6596 text_x_arnica: strip image names in alias definitions
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 321
diff changeset
460 names = [(alias_text[ix][2]).strip() for ix in range(len(alias_text))]
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
461 alias = [alias_text[ix][0] for ix in range(len(alias_text))]
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
462
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
463 i = 0
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
464 for ix in to_order:
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
465 image_names[ix] = names[i]
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
466 alias_text[ix] = alias[i]
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
467 i += 1
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
468
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
469 # sort by alias
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
470 if self.sort_by == "alias":
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
471 i = 0
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
472 for img in image_names:
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
473 image_dict[alias_text[i]] = img
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
474 i += 1
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
475 keys = image_dict.keys()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
476 keys.sort()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
477 image_names = [image_dict[txt] for txt in keys]
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
478 else:
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
479 # sort by date
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
480 if self.sort_by == "date":
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
481 for img in image_names:
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
482 itemname = self.pagename + '/' + img
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
483 # to get uniq times (gives order for sorting)
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
484 ft_file = "%d%x" % (self.Image(self.request, itemname).ctime, randint(0, 256))
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
485 image_dict[ft_file] = img
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
486 keys = image_dict.keys()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
487 keys.sort()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
488 image_names = [image_dict[txt] for txt in keys]
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
489
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
490 # default sort by name
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
491 elif self.sort_by == "name" and not self.only_items:
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
492 image_names.sort()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
493
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
494 image_dict.clear()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
495 # reverse sort
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
496 if self.reverse_sort:
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
497 image_names.reverse()
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
498
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
499 # store first in album
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
500 self.top_image_sorted = image_names[0]
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
501
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
502 if self.album:
277
0430039fe8c5 text_x_arnica.: fixed clearing of floating style for one image independent of number of columns, moved br style to a class definition
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 276
diff changeset
503 cols = 1
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
504 album_image = self.album_image or self.top_image_sorted # self.high_resolution_image[0]
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
505 if not album_image in self.arnica_image.keys():
273
f91c1930abaf text_x_arnica: replaced DataBrowserWidget by CSS. columns=0 means thumbnails flow onto new line is needed.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 270
diff changeset
506 html = self.formatter.text(_("""You can't use as album image:
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
507 "%(album_image)s" because it does not exist or it is not listed
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
508 in your item list!""") % {"album_image": album_image, })
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
509 else:
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
510 html = self.html_arrange_thumbnails(album_image, image_names)
273
f91c1930abaf text_x_arnica: replaced DataBrowserWidget by CSS. columns=0 means thumbnails flow onto new line is needed.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 270
diff changeset
511 result.append(''.join(html))
252
cf5f8b929da9 text_x_arnica: refactored multiple subarrays into a dict and tuples
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 247
diff changeset
512 else:
315
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
513 for image in image_names:
1f605f821a68 text_x_arnica: sort_by bug fixed by moving sorting to render.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 314
diff changeset
514 html = self.html_arrange_thumbnails(image, image_names)
273
f91c1930abaf text_x_arnica: replaced DataBrowserWidget by CSS. columns=0 means thumbnails flow onto new line is needed.
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 270
diff changeset
515 result.append(''.join(html))
277
0430039fe8c5 text_x_arnica.: fixed clearing of floating style for one image independent of number of columns, moved br style to a class definition
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 276
diff changeset
516 if col_count == cols and self.columns != 0:
43
623ddf996af2 text_x_arnica: album after creating of all thumbnails and webnails
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 42
diff changeset
517 col_count = 0
277
0430039fe8c5 text_x_arnica.: fixed clearing of floating style for one image independent of number of columns, moved br style to a class definition
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 276
diff changeset
518 result.append('<br class="clearboth">')
43
623ddf996af2 text_x_arnica: album after creating of all thumbnails and webnails
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 42
diff changeset
519 col_count += 1
288
5f91eff1ae2b PEP8 white space fix
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 278
diff changeset
520
569
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
521 if not self.album or not self.album_overview:
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
522 # no new line, if album and album_overview
df77d4563af1 Added album-overview functionality.
sudo_dirk<d.alders@arcor.de>
parents: 543
diff changeset
523 result.append('<br class="clearboth">')
278
03071c3569d8 refactored for macro Image to use parts of arnicas rendering
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 277
diff changeset
524 result.insert(0, self.formatter.div(1, css_class="arnica"))
03071c3569d8 refactored for macro Image to use parts of arnicas rendering
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 277
diff changeset
525 result.append(self.formatter.div(0))
276
e3c509f99aad text_x_arnica: white space PEP8 fix, removed old comments
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 273
diff changeset
526 return ''.join(result)
268
bb780f830e66 refactored for using the new Image object
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 261
diff changeset
527
74
ad51b86d7bc1 introduce macro arnica which calls the arnica parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 73
diff changeset
528 def format(self, formatter):
ad51b86d7bc1 introduce macro arnica which calls the arnica parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 73
diff changeset
529 """ parser output """
ad51b86d7bc1 introduce macro arnica which calls the arnica parser
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 73
diff changeset
530 # checks if initializing of all attributes in __init__ was done
94
68102c2191f9 text_x_arnica: small refactoring of html_* methods
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 93
diff changeset
531 if self.init_settings:
479
167888214d95 arnica: compatibility for 1.9 changes added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 478
diff changeset
532 html = self.render(formatter)
167888214d95 arnica: compatibility for 1.9 changes added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 478
diff changeset
533 if html: # 1.8 compatibility
167888214d95 arnica: compatibility for 1.9 changes added
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 478
diff changeset
534 self.request.write(html)
181
b19e4e36a1f2 arnica: cosmetic fixes, improve docstrings, minor i18n bugfixes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 180
diff changeset
535