예제 #1
0
 def invalid_message(self, record=None):
     if record is None:
         record = self.current_record
     domain_string = _('"%s" is not valid according to its domain')
     domain_parser = DomainParser(
         {n: f.attrs for n, f in record.group.fields.iteritems()})
     fields = []
     for field, invalid in sorted(record.invalid_fields.items()):
         string = record.group.fields[field].attrs['string']
         if invalid == 'required' or invalid == [[field, '!=', None]]:
             fields.append(_('"%s" is required') % string)
         elif invalid == 'domain':
             fields.append(domain_string % string)
         elif invalid == 'children':
             fields.append(_('The values of "%s" are not valid') % string)
         else:
             if domain_parser.stringable(invalid):
                 fields.append(domain_parser.string(invalid))
             else:
                 fields.append(domain_string % string)
     if len(fields) > 5:
         fields = fields[:5] + ['...']
     return '\n'.join(fields)
예제 #2
0
 def invalid_message(self, record=None):
     if record is None:
         record = self.current_record
     domain_string = _('"%s" is not valid according to its domain')
     domain_parser = DomainParser(
         {n: f.attrs for n, f in record.group.fields.iteritems()})
     fields = []
     for field, invalid in sorted(record.invalid_fields.items()):
         string = record.group.fields[field].attrs['string']
         if invalid == 'required' or invalid == [[field, '!=', None]]:
             fields.append(_('"%s" is required') % string)
         elif invalid == 'domain':
             fields.append(domain_string % string)
         elif invalid == 'children':
             fields.append(_('The values of "%s" are not valid') % string)
         else:
             if domain_parser.stringable(invalid):
                 fields.append(domain_parser.string(invalid))
             else:
                 fields.append(domain_string % string)
     if len(fields) > 5:
         fields = fields[:5] + ['...']
     return '\n'.join(fields)
 def test_stringable(self):
     "Test stringable"
     dom = DomainParser({
             'name': {
                 'string': 'Name',
                 'type': 'char',
                 },
             'multiselection': {
                 'string': "MultiSelection",
                 'type': 'multiselection',
                 'selection': [
                     ('foo', "Foo"),
                     ('bar', "Bar"),
                     ('baz', "Baz"),
                     ],
                 },
             'relation': {
                 'string': 'Relation',
                 'type': 'many2one',
                 'relation_fields': {
                     'name': {
                         'string': "Name",
                         'type': 'char',
                         },
                     },
                 },
             'relations': {
                 'string': 'Relations',
                 'type': 'many2many',
                 },
             })
     valid = ('name', '=', 'Doe')
     invalid = ('surname', '=', 'John')
     self.assertTrue(dom.stringable([valid]))
     self.assertFalse(dom.stringable([invalid]))
     self.assertTrue(dom.stringable(['AND', valid]))
     self.assertFalse(dom.stringable(['AND', valid, invalid]))
     self.assertTrue(dom.stringable([[valid]]))
     self.assertFalse(dom.stringable([[valid], [invalid]]))
     self.assertTrue(dom.stringable([('multiselection', '=', None)]))
     self.assertTrue(dom.stringable([('multiselection', '=', '')]))
     self.assertFalse(dom.stringable([('multiselection', '=', 'foo')]))
     self.assertTrue(dom.stringable([('multiselection', '=', ['foo'])]))
     self.assertTrue(dom.stringable([('relation', '=', None)]))
     self.assertTrue(dom.stringable([('relation', '=', "Foo")]))
     self.assertTrue(dom.stringable([('relation.rec_name', '=', "Foo")]))
     self.assertFalse(dom.stringable([('relation', '=', 1)]))
     self.assertTrue(dom.stringable([('relations', '=', "Foo")]))
     self.assertTrue(dom.stringable([('relations', 'in', ["Foo"])]))
     self.assertFalse(dom.stringable([('relations', 'in', [42])]))
     self.assertTrue(dom.stringable([('relation.name', '=', "Foo")]))