added english localization
[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 MeabookConfig:
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 __del__(self):
20         self.save()
21
22     def save(self):
23         """Save configuration file content."""
24
25         self.cp.write(open(self._path, 'w'))
26
27     def new(self):
28         """Creates default config file."""
29
30         self.cp.add_section('fields')
31         self.cp.set('fields', 'show-fields', ','.join( \
32             self.database.get_fields()))
33         self.cp.set('fields', 'fields-order', ','.join( \
34             self.database.get_fields()))
35         self.save()
36
37     def set_fields(self, fields):
38         """Sets fields, that will be shown for user."""
39
40         self.cp.set('fields', 'show-fields', ','.join(fields))
41
42     def get_fields(self):
43         """Gets fields, that will be shown for user."""
44
45         return self.cp.get('fields', 'show-fields').split(',')
46
47     def set_order(self, fields):
48         """Sets fields order."""
49
50         self.cp.set('fields', 'fields-order', ','.join(fields))
51
52     def get_order(self):
53         """Gets fields order."""
54
55         return self.cp.get('fields', 'fields-order').split(',')