53
class ReplacePasswordField(openobject.widgets.PasswordField):
55
'autocomplete': 'Autocomplete field',
60
def __init__(self, *arg, **kwargs):
61
# disable form default submit action when user hits Enter in the field
62
self.replace_for = kwargs['name']
63
kwargs['name'] = 'show_%s' % kwargs['name']
64
kwargs.setdefault('attrs', {}).update({
65
'onkeydown': 'if (event.keyCode == 13) replace_pass_submit()',
66
'class': 'requiredfield',
68
super(ReplacePasswordField, self).__init__(*arg, **kwargs)
53
71
class DBForm(openobject.widgets.Form):
56
74
def __init__(self, *args, **kw):
57
75
super(DBForm, self).__init__(*args, **kw)
77
for field in self.fields:
78
if isinstance(field, ReplacePasswordField):
79
to_add.append(openobject.widgets.HiddenField(name=field.replace_for, attrs={'autocomplete':'off'}))
80
self.replace_password_fields[field.name] = field.replace_for
82
self.hidden_fields += to_add
58
83
if self.validator is openobject.validators.DefaultValidator:
59
84
self.validator = openobject.validators.Schema()
60
85
for f in self.fields:
61
86
self.validator.add_field(f.name, f.validator)
88
self.validator.add_field(add.name, formencode.validators.NotEmpty())
63
90
def update_params(self, params):
64
91
super(DBForm, self).update_params(params)
65
92
params['attrs']['action'] = url(self.action)
94
def error_for(self, item, error):
95
if error and isinstance(item, ReplacePasswordField):
96
return error.error_dict.get(item.replace_for)
97
return super(DBForm, self).error_for(item, error)
67
99
class FormCreate(DBForm):
69
101
string = _('Create database')
71
103
submit_text = _('Create')
73
105
form_attrs = {'onsubmit': 'return on_create()'}
74
fields = [openobject.widgets.PasswordField(name='password', label=_('Super admin password:'), validator=formencode.validators.NotEmpty(), help=_("This is the password of the user that have the rights to administer databases. This is not a OpenERP user, just a super administrator.")),
75
openobject.widgets.TextField(name='dbname', label=_('New database name:'), validator=formencode.validators.NotEmpty(), help=_("Choose the name of the database that will be created. The name must not contain any special character. Exemple: 'terp'.")),
76
# openobject.widgets.CheckBox(name='demo_data', label=_('Load Demonstration data:'), default=False, validator=validators.Bool(if_empty=False), help=_("Check this box if you want demonstration data to be installed on your new database. These data will help you to understand OpenERP, with predefined products, partners, etc.")),
77
openobject.widgets.SelectField(name='language', options=get_lang_list, validator=validators.String(), label=_('Default Language:'), help=_("Choose the default language that will be installed for this database. You will be able to install new languages after installation through the administration menu.")),
78
openobject.widgets.PasswordField(name='admin_password', label=_('Administrator password:'), validator=formencode.validators.NotEmpty(), help=_("This is the password of the 'admin' user that will be created in your new database.")),
79
openobject.widgets.PasswordField(name='confirm_password', label=_('Confirm password:'), validator=formencode.validators.NotEmpty(), help=_("This is the password of the 'admin' user that will be created in your new database. It has to be the same than the above field."))
107
ReplacePasswordField(name='password', label=_('Super admin password:'), help=_("This is the password of the user that have the rights to administer databases. This is not a OpenERP user, just a super administrator.")),
108
openobject.widgets.TextField(name='dbname', label=_('New database name:'), validator=formencode.validators.NotEmpty(), help=_("Choose the name of the database that will be created. The name must not contain any special character. Exemple: 'terp'.")),
109
# openobject.widgets.CheckBox(name='demo_data', label=_('Load Demonstration data:'), default=False, validator=validators.Bool(if_empty=False), help=_("Check this box if you want demonstration data to be installed on your new database. These data will help you to understand OpenERP, with predefined products, partners, etc.")),
110
openobject.widgets.SelectField(name='language', options=get_lang_list, validator=validators.String(), label=_('Default Language:'), help=_("Choose the default language that will be installed for this database. You will be able to install new languages after installation through the administration menu.")),
111
ReplacePasswordField(name='confirm_password', label=_('Confirm password:'), help=_("This is the password of the 'admin' user that will be created in your new database. It has to be the same than the above field.")),
112
ReplacePasswordField(name='admin_password', label=_('Administrator password:'), help=_("This is the password of the 'admin' user that will be created in your new database.")),
81
114
validator = openobject.validators.Schema(chained_validators=[formencode.validators.FieldsMatch("admin_password","confirm_password")])
83
117
class FormDrop(DBForm):
85
119
string = _('Drop database')
86
120
action = '/openerp/database/do_drop'
87
121
submit_text = _('Drop')
88
122
form_attrs = {'onsubmit': 'return window.confirm(_("Do you really want to drop the selected database?"))'}
89
fields = [openobject.widgets.SelectField(name='dbname', options=get_db_list, label=_('Database:'), validator=validators.String(not_empty=True)),
90
openobject.widgets.PasswordField(name='password', label=_('Drop password:'), validator=formencode.validators.NotEmpty())]
124
openobject.widgets.SelectField(name='dbname', options=get_db_list, label=_('Database:'), validator=validators.String(not_empty=True)),
125
ReplacePasswordField(name='password', label=_('Drop password:')),
92
128
class FormBackup(DBForm):
94
130
string = _('Backup database')
95
131
action = '/openerp/database/do_backup'
96
132
submit_text = _('Backup')
97
fields = [openobject.widgets.SelectField(name='dbname', options=get_db_list, label=_('Database:'), validator=validators.String(not_empty=True)),
98
openobject.widgets.PasswordField(name='password', label=_('Backup password:'), validator=formencode.validators.NotEmpty())]
134
openobject.widgets.SelectField(name='dbname', options=get_db_list, label=_('Database:'), validator=validators.String(not_empty=True)),
135
ReplacePasswordField(name='password', label=_('Backup password:')),
100
138
class FileField(openobject.widgets.FileField):
101
139
def adjust_value(self, value, **params):
106
144
string = _('Restore database')
107
145
action = '/openerp/database/do_restore'
108
146
submit_text = _('Restore')
109
fields = [FileField(name="filename", label=_('File:')),
110
openobject.widgets.PasswordField(name='password', label=_('Restore password:'), validator=formencode.validators.NotEmpty()),
111
openobject.widgets.TextField(name='dbname', label=_('New database name:'), validator=formencode.validators.NotEmpty(), readonly=1, attrs={'readonly': ''})]
148
FileField(name="filename", label=_('File:')),
149
ReplacePasswordField(name='password', label=_('Restore password:')),
150
openobject.widgets.TextField(name='dbname', label=_('New database name:'), validator=formencode.validators.NotEmpty(), readonly=1, attrs={'readonly': ''})
112
153
hidden_fields = [openobject.widgets.HiddenField(name='fpath', label=_('Path:'))]
114
155
class FormPassword(DBForm):
116
157
string = _('Change Administrator Password')
117
158
action = '/openerp/database/do_password'
118
159
submit_text = _('Change Password')
119
fields = [openobject.widgets.PasswordField(name='old_password', label=_('Old super admin password:'), validator=formencode.validators.NotEmpty()),
120
openobject.widgets.PasswordField(name='new_password', label=_('New super admin password:'), validator=formencode.validators.NotEmpty()),
121
openobject.widgets.PasswordField(name='confirm_password', label=_('Confirm Password:'), validator=formencode.validators.NotEmpty())]
161
ReplacePasswordField(name='old_password', label=_('Old super admin password:')),
162
ReplacePasswordField(name='new_password', label=_('New super admin password:')),
163
ReplacePasswordField(name='confirm_password', label=_('Confirm Password:')),
123
165
validator = openobject.validators.Schema(chained_validators=[formencode.validators.FieldsMatch("new_password","confirm_password")])