annotate website/issues/extensions/templating.py @ 7695:2be7a8f66ea7

fix: windows install using pip mislocates share directory The setup code that tries to make the share install path absolute prependeds something like: c:\program files\python_venv to the paths. The equivalent on linux is recognized as an absolute path. On windows this is treated oddly. This resulted in the share files being placed in: c:\program files\python_venv\Lib\site-packages\program files\python_venv\share Roundup was unable to find the files there. On windows (where the platform starts with 'win') don't make the path absolute. This puts share in: c:\program files\python_venv\Lib\share and Roundup finds them. The translations and templates are found by the roundup-server. The docs are also installed under the share directory. The man pages are not installed as windows doesn't have groff to format the source documents. This is the second fix from issues getting Roundup running on windows discussed on mailing list by Simon Eigeldinger. Thread starts with: https://sourceforge.net/p/roundup/mailman/message/41557096/ subject: Installing Roundup on Windows 2023-10-05.
author John Rouillard <rouilj@ieee.org>
date Sun, 05 Nov 2023 23:01:29 -0500
parents 42ff671d7f41
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6477
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
1 import logging
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
2 logger = logging.getLogger('extension')
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
3
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
4 import sys
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
5 from roundup import __version__ as roundup_version
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
6 def AboutPage(db):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
7 "report useful info about this tracker"
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
8
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
9 def is_module_loaded(module):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
10 modules = list(sys.modules.keys())
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
11 return module in modules
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
12
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
13 def get_status_of_module(module, prefix=None, version=True):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
14 modules = list(sys.modules.keys())
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
15 is_enabled = module in modules
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
16 if is_enabled:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
17 if module == 'pyme':
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
18 from pyme import version
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
19 version="version %s"%version.versionstr
6521
42ff671d7f41 Fix reporting of mysql and whoosh versions.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
20 elif module == 'MySQLdb':
42ff671d7f41 Fix reporting of mysql and whoosh versions.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
21 from MySQLdb import version_info
42ff671d7f41 Fix reporting of mysql and whoosh versions.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
22 version="version %s"%".".join([str(v) for v in version_info])
6477
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
23 elif module == 'pychart':
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
24 from pychart import version
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
25 version="version %s"%version.version
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
26 elif module == 'sqlite3':
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
27 from sqlite3 import version
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
28 version="version %s"%version
6521
42ff671d7f41 Fix reporting of mysql and whoosh versions.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
29 elif module == "whoosh":
42ff671d7f41 Fix reporting of mysql and whoosh versions.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
30 from whoosh import versionstring
42ff671d7f41 Fix reporting of mysql and whoosh versions.
John Rouillard <rouilj@ieee.org>
parents: 6507
diff changeset
31 version="version %s"%versionstring()
6477
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
32 elif module == 'xapian':
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
33 from xapian import version_string
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
34 version="version %s"%version_string()
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
35 else:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
36 if version:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
37 m = __import__(module)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
38 try:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
39 version="version %s"%m.__version__
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
40 except AttributeError:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
41 version="version unavailable - exception thrown"
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
42 else:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
43 version="version unavailable"
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
44
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
45 if prefix:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
46 return "%s %s %s enabled: %s"%(prefix, module, version, is_enabled)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
47 else:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
48 return "Module: %s %s enabled: %s"%(module, version, is_enabled)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
49 else:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
50 if prefix:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
51 return "%s %s enabled: %s"%(prefix, module, is_enabled)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
52 else:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
53 return "Module: %s enabled: %s"%(module, is_enabled)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
54
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
55 info = []
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
56
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
57 info.append("Tracker name: %s<br>"%db.config['TRACKER_NAME'])
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
58
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
59 info.append("<h2>Operating environment</h2>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
60 info.append('<a href="http://roundup.sourceforge.net/">Roundup</a> version: %s<br>'%roundup_version)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
61 info.append("Python Version: %s<br>"%sys.version)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
62
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
63 info.append("<h2>Configuration</h2>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
64
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
65 backend = db.config['RDBMS_BACKEND']
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
66 info.append("Roundup backend: %s<br>"%backend)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
67 if backend != 'anydbm':
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
68 info.append("Roundup db cache: %s<br>"%db.config['RDBMS_CACHE_SIZE'])
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
69 info.append("Roundup isolation_level: %s<br>"%db.config['RDBMS_ISOLATION_LEVEL'])
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
70
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
71 info.append("Roundup template: %s<br>"%db.config['TEMPLATE_ENGINE'])
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
72
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
73 info.append("<h2>Database modules</h2>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
74 info.append(get_status_of_module('anydbm', version=False) + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
75 info.append(get_status_of_module('dbm', version=False) + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
76 info.append(get_status_of_module('sqlite3') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
77 info.append(get_status_of_module('MySQLdb') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
78 info.append(get_status_of_module('psycopg2') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
79
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
80 info.append("<h2>Other modules</h2>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
81
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
82 indexer = db.config['INDEXER']
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
83 if not indexer:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
84 if is_module_loaded('xapian'):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
85 indexer="unset using xapian"
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
86 elif is_module_loaded('whoosh'):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
87 indexer="unset using woosh"
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
88 else:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
89 indexer="unset using native"
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
90 else:
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
91 indexer="set to " + indexer
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
92
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
93 info.append("Indexer used for full-text: %s<br>"%indexer)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
94
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
95 info.append("Available indexers:<br><ul>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
96 if is_module_loaded('xapian'):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
97 info.append("<li>%s</li>"%get_status_of_module('xapian', prefix="Indexer loaded:"))
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
98 if is_module_loaded('whoosh'):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
99 info.append("<li>%s</li>"%get_status_of_module('whoosh', prefix="Indexer loaded:"))
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
100 info.append("<li>Indexer loaded: native: True</li>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
101 info.append("</ul>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
102 info.append(get_status_of_module('pytz') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
103 info.append(get_status_of_module('pyme') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
104 info.append(get_status_of_module('OpenSSL') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
105 info.append(get_status_of_module('pychart') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
106 info.append(get_status_of_module('pygal') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
107
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
108 info.append(get_status_of_module('jinja2') + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
109
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
110 uid = db._db.getuid()
6478
a35d4e0c4e07 Fix permissions check. Use role not perm check.
John Rouillard <rouilj@ieee.org>
parents: 6477
diff changeset
111 if uid == "1" or db._db.user.has_role(uid,"Admin"):
6477
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
112 #may leak sensitive info about system, directory paths etc.
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
113 #and keys so require admin user access. Consider expanding
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
114 #to Admin rights for tracker.
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
115 info.append("")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
116 info.append("Module Path: %r"%sys.path)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
117
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
118 info.append("<h2>Environment Variables</h2>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
119 info.append("<pre>") # include pre to prevent wrapping of values
6507
bc95f7431efb Remove miscommited issue directory; AboutPage fix; aria for drag/drop
John Rouillard <rouilj@ieee.org>
parents: 6478
diff changeset
120 for key in list(db._client.env.keys()):
6477
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
121 info.append("%s=%s"%(key,db._client.env[key]) + "<br>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
122 info.append("</pre>")
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
123 return "\n".join(info)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
124
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
125 def init(instance):
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
126 instance.registerUtil('AboutPage', AboutPage)
0ecfa817299b Added code for utils.AboutPage called from home.about.html
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
127

Roundup Issue Tracker: http://roundup-tracker.org/