updated Config
[meabook] / config.py
1 """
2 Configuration module
3 """
4
5 import os
6 from ConfigParser import ConfigParser
7
8 CONFIG_NAME = 'config.ini'
9
10 class Config:
11     def __init__(self, basedir, database):
12         self.database = database
13         self.cp = ConfigParser()
14         self._path = os.path.join(basedir, CONFIG_NAME)
15         if not os.path.exists(self._path):
16             self.new()
17         self.cp.readfp(open(self._path))
18
19     def new(self):
20         """Creates default config file."""
21
22         self.cp.add_section('fields')
23         self.cp.set('fields', 'fields', ','.join( \
24             self.database.get_fields()))
25         self.cp.set('fields', 'order', ','.join( \
26             self.database.get_fields()))
27         self.cp.write(open(self._path, 'w'))
28
29     def set_fields(self, fields):
30         """Sets fields, that will be shown for user."""
31
32         self.cp.set('fields', 'fields', ','.join(fields))
33         self.save()
34
35     def get_fields(self):
36         """Gets fields, that will be shown for user."""
37
38         return self.cp.get('fields', 'fields').split(',')
39
40
41     def set_order(self, fields):
42         """Sets fields order."""
43
44         self.cp.set('fields', 'order', ','.join(fields))
45         self.save()
46
47     def get_order(self):
48         """Gets fields order."""
49
50         return self.cp.get('fields', 'order').split(',')
51
52     def save(self):
53         """Save configuration file content."""
54
55         self.cp.write(open(self._path, 'w'))
56