Merge branch 'fibre' of ssh://git.onelab.eu/git/myslice into fibre
[unfold.git] / myslice / configengine.py
1 import os.path
2 from ConfigParser import RawConfigParser
3 from myslice.settings import ROOT
4
5 #
6 # DO NOT EDIT !!!
7 #
8 # This file does not contain any user-modifiable data
9 #
10 # te defaults here are, well, only default values, 
11 # and, you have the option to override them
12 # by writing a file myslice/myslice.ini
13 # that looks like this
14 #[manifold]
15 #url = http://manifold.pl.sophia.inria.fr:7080/
16 #admin_user = admin
17 #admin_password = admin
18 #[googlemap]
19 #api_key=theapikeyasprovidedbygoogle
20
21 # use a singleton instead of staticmethods
22 from manifold.util.singleton    import Singleton
23
24 class ConfigEngine(object):
25     __metaclass__ = Singleton
26
27     # the OpenLab-wide backend as managed by UPMC
28     # xxx production should probably use https of course
29     default_manifold_url = "https://test.myslice.info:7080/"
30     # the devel/unstable version runs on "https://dev.myslice.info:7080/"
31     # if you use a development backend running on this box, use "http://localhost:7080/"
32     # the INRIA setup is with "https://manifold.pl.sophia.inria.fr:7080/"
33
34     default_manifold_admin_user     = 'admin'
35     default_manifold_admin_password = 'demo'
36     default_myslice_theme           = 'fibre'
37
38
39     def __init__ (self):
40         parser = RawConfigParser ()
41         parser.add_section('manifold')
42         parser.set ('manifold', 'url', ConfigEngine.default_manifold_url)
43         parser.set ('manifold', 'admin_user', ConfigEngine.default_manifold_admin_user)
44         parser.set ('manifold', 'admin_password', ConfigEngine.default_manifold_admin_password)
45
46         parser.add_section('myslice')
47         parser.set ('myslice', 'theme', ConfigEngine.default_myslice_theme)
48
49         parser.add_section('googlemap')
50         parser.set ('googlemap','api_key', None)
51         print os.path.join(ROOT,'myslice/myslice.ini')
52         parser.read (os.path.join(ROOT,'myslice/myslice.ini'))
53         print parser
54         self.config_parser=parser
55
56     def __getattr__(self, section):
57         if self.config_parser.has_section(section):
58             return ConfigSection(self.config_parser, section)
59         
60     def manifold_url (self):
61         return self.config_parser.get('manifold','url')
62
63     def manifold_admin_user_password(self):
64         return (self.config_parser.get('manifold','admin_user'),
65                 self.config_parser.get('manifold','admin_password'))
66
67     def googlemap_api_key (self):
68         return self.config_parser.get('googlemap','api_key')
69
70     # exporting these details to js
71     def manifold_js_export (self):
72         return "var MANIFOLD_URL = '%s';\n"%self.manifold_url();
73
74 class ConfigSection(object) :
75     
76     def __init__(self, parser, section):
77         self._parser = parser
78         self._section = section
79     
80     def __getattr__(self, key):
81         if self._parser.has_option(self._section, key):
82             return self._parser.get(self._section, key)