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")
jcl_suite = unittest.TestSuite()
# 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((component_suite))
jcl_suite = unittest.TestSuite((component_suite,

View File

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

View File

@@ -100,10 +100,11 @@ class DataForm(object):
field_type = "fixed", \
label = None, \
var = None, \
value = ""):
value = "", \
required = False):
"""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
# fields_tab exist to keep added fields order
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("var"), "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):
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("var"), "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("var"), "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("var"), "password")
@@ -468,13 +471,10 @@ class JCLComponent_TestCase(unittest.TestCase):
{"jir" : "jabber:iq:register", \
"jxd" : "jabber:x:data"})
self.assertEquals(len(fields), 1)
self.assertEquals(len([field
for field in fields \
if field.prop("type") == "hidden" \
and field.prop("var") == "name" \
and field.prop("label") == \
Lang.en.account_name]), \
1)
self.assertEquals(fields[0].prop("type"), "hidden")
self.assertEquals(fields[0].prop("var"), "name")
self.assertEquals(fields[0].prop("label"), Lang.en.account_name)
self.assertEquals(fields[0].children.next.name, "required")
value = iq_sent.xpath_eval("jir:query/jxd:x/jxd:field/jxd:value", \
{"jir" : "jabber:iq:register", \
"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.children.name, "value")
self.assertEquals(field.children.content, "account1")
self.assertEquals(field.children.next.name, "required")
field = fields[1]
self.assertEquals(field.prop("type"), "text-single")
self.assertEquals(field.prop("var"), "login")
self.assertEquals(field.prop("label"), "login")
self.assertEquals(field.children.name, "value")
self.assertEquals(field.children.content, "mylogin")
self.assertEquals(field.children.next.name, "required")
field = fields[2]
self.assertEquals(field.prop("type"), "text-private")
self.assertEquals(field.prop("var"), "password")