Add "required" node in register form

darcs-hash:20061120221924-86b55-5c373bcc28739b580a852f4dde84891c79c408e1.gz
This commit is contained in:
David Rousselie
2006-11-20 23:19:24 +01:00
parent 30979f1142
commit 062abf00b7
4 changed files with 20 additions and 14 deletions

View File

@@ -51,7 +51,7 @@ if __name__ == '__main__':
sender_suite = unittest.makeSuite(Sender_TestCase, "test") sender_suite = unittest.makeSuite(Sender_TestCase, "test")
jcl_suite = unittest.TestSuite() jcl_suite = unittest.TestSuite()
# jcl_suite.addTest(FeederComponent_TestCase('test_handle_tick')) # jcl_suite.addTest(FeederComponent_TestCase('test_handle_tick'))
# jcl_suite.addTest(FeederComponent_TestCase('test_handle_set_register_new_field_mandatory')) # jcl_suite.addTest(FeederComponent_TestCase('test_handle_get_register_new'))
# jcl_suite = unittest.TestSuite((feeder_component_suite)) # jcl_suite = unittest.TestSuite((feeder_component_suite))
# jcl_suite = unittest.TestSuite((component_suite)) # jcl_suite = unittest.TestSuite((component_suite))
jcl_suite = unittest.TestSuite((component_suite, jcl_suite = unittest.TestSuite((component_suite,

View File

@@ -618,7 +618,8 @@ class JCLComponent(Component, object):
# "name" field is mandatory # "name" field is mandatory
reg_form.add_field(field_type = "text-single", \ reg_form.add_field(field_type = "text-single", \
label = lang_class.account_name, \ label = lang_class.account_name, \
var = "name") var = "name", \
required = True)
for (field, field_type, post_func, default_func) in \ for (field, field_type, post_func, default_func) in \
self.account_class.get_register_fields(): self.account_class.get_register_fields():
@@ -628,9 +629,11 @@ class JCLComponent(Component, object):
label = getattr(lang_class, lang_label_attr) label = getattr(lang_class, lang_label_attr)
else: else:
label = field label = field
reg_form.add_field(field_type = field_type, \ field = reg_form.add_field(field_type = field_type, \
label = label, \ label = label, \
var = field) var = field)
if default_func == account.mandatory_field:
field.required = True
## TODO : Add page when empty tuple given ## TODO : Add page when empty tuple given
## TODO : get default value if any ## TODO : get default value if any
return reg_form return reg_form

View File

@@ -100,10 +100,11 @@ class DataForm(object):
field_type = "fixed", \ field_type = "fixed", \
label = None, \ label = None, \
var = None, \ var = None, \
value = ""): value = "", \
required = False):
"""Add a Field to this Xdata form """Add a Field to this Xdata form
""" """
field = Field(field_type, label, var, value) field = Field(field_type, label, var, value, required)
self.fields[var] = field self.fields[var] = field
# fields_tab exist to keep added fields order # fields_tab exist to keep added fields order
self.fields_tab.append(field) self.fields_tab.append(field)

View File

@@ -387,6 +387,7 @@ class JCLComponent_TestCase(unittest.TestCase):
self.assertEquals(fields[0].prop("type"), "text-single") self.assertEquals(fields[0].prop("type"), "text-single")
self.assertEquals(fields[0].prop("var"), "name") self.assertEquals(fields[0].prop("var"), "name")
self.assertEquals(fields[0].prop("label"), Lang.en.account_name) self.assertEquals(fields[0].prop("label"), Lang.en.account_name)
self.assertEquals(fields[0].children.name, "required")
def test_handle_get_register_new_complex(self): def test_handle_get_register_new_complex(self):
self.comp.account_class = AccountExample self.comp.account_class = AccountExample
@@ -417,10 +418,12 @@ class JCLComponent_TestCase(unittest.TestCase):
self.assertEquals(fields[0].prop("type"), "text-single") self.assertEquals(fields[0].prop("type"), "text-single")
self.assertEquals(fields[0].prop("var"), "name") self.assertEquals(fields[0].prop("var"), "name")
self.assertEquals(fields[0].prop("label"), Lang.en.account_name) self.assertEquals(fields[0].prop("label"), Lang.en.account_name)
self.assertEquals(fields[0].children.name, "required")
self.assertEquals(fields[1].prop("type"), "text-single") self.assertEquals(fields[1].prop("type"), "text-single")
self.assertEquals(fields[1].prop("var"), "login") self.assertEquals(fields[1].prop("var"), "login")
self.assertEquals(fields[1].prop("label"), "login") self.assertEquals(fields[1].prop("label"), "login")
self.assertEquals(fields[0].children.name, "required")
self.assertEquals(fields[2].prop("type"), "text-private") self.assertEquals(fields[2].prop("type"), "text-private")
self.assertEquals(fields[2].prop("var"), "password") self.assertEquals(fields[2].prop("var"), "password")
@@ -468,13 +471,10 @@ class JCLComponent_TestCase(unittest.TestCase):
{"jir" : "jabber:iq:register", \ {"jir" : "jabber:iq:register", \
"jxd" : "jabber:x:data"}) "jxd" : "jabber:x:data"})
self.assertEquals(len(fields), 1) self.assertEquals(len(fields), 1)
self.assertEquals(len([field self.assertEquals(fields[0].prop("type"), "hidden")
for field in fields \ self.assertEquals(fields[0].prop("var"), "name")
if field.prop("type") == "hidden" \ self.assertEquals(fields[0].prop("label"), Lang.en.account_name)
and field.prop("var") == "name" \ self.assertEquals(fields[0].children.next.name, "required")
and field.prop("label") == \
Lang.en.account_name]), \
1)
value = iq_sent.xpath_eval("jir:query/jxd:x/jxd:field/jxd:value", \ value = iq_sent.xpath_eval("jir:query/jxd:x/jxd:field/jxd:value", \
{"jir" : "jabber:iq:register", \ {"jir" : "jabber:iq:register", \
"jxd" : "jabber:x:data"}) "jxd" : "jabber:x:data"})
@@ -523,12 +523,14 @@ class JCLComponent_TestCase(unittest.TestCase):
self.assertEquals(field.prop("label"), Lang.en.account_name) self.assertEquals(field.prop("label"), Lang.en.account_name)
self.assertEquals(field.children.name, "value") self.assertEquals(field.children.name, "value")
self.assertEquals(field.children.content, "account1") self.assertEquals(field.children.content, "account1")
self.assertEquals(field.children.next.name, "required")
field = fields[1] field = fields[1]
self.assertEquals(field.prop("type"), "text-single") self.assertEquals(field.prop("type"), "text-single")
self.assertEquals(field.prop("var"), "login") self.assertEquals(field.prop("var"), "login")
self.assertEquals(field.prop("label"), "login") self.assertEquals(field.prop("label"), "login")
self.assertEquals(field.children.name, "value") self.assertEquals(field.children.name, "value")
self.assertEquals(field.children.content, "mylogin") self.assertEquals(field.children.content, "mylogin")
self.assertEquals(field.children.next.name, "required")
field = fields[2] field = fields[2]
self.assertEquals(field.prop("type"), "text-private") self.assertEquals(field.prop("type"), "text-private")
self.assertEquals(field.prop("var"), "password") self.assertEquals(field.prop("var"), "password")