class LoginSchema(Schema): allow_extra_fields = True filter_extra_fields = True LoginName = validators.UnicodeString(max=50, not_empty=True) LoginPwd = validators.String(not_empty=True) came_from = validators.UnicodeString()
class PasswordValidator(validators.Schema): if_key_missing = None CurrentPassword = validators.UnicodeString() Password = validators.Pipe(validators.UnicodeString(), validators.SecurePassword()) ConfirmPassword = validators.UnicodeString() chained_validators = [validators.CheckPassword()]
class ExternalCommunityBaseSchema(validators.Schema): AreaName = validators.UnicodeString(max=200, not_empty=True) PrimaryAreaType = validators.String(max=30) SubAreaType = validators.String(max=30) ProvinceState = validators.IntID() ExternalID = validators.String(max=50) AIRSExportType = validators.String(max=20) Parent_ID = validators.IntID() Parent_IDName = validators.UnicodeString() CM_ID = validators.IntID() CM_IDName = validators.UnicodeString()
def autocomplete_parents(self): request = self.request _ = request.translate term_validator = validators.UnicodeString(not_empty=True) try: terms = term_validator.to_python(request.params.get('term')) except validators.Invalid: return [] SystemCode = request.context.external_system.SystemCode retval = [] with request.connmgr.get_connection() as conn: ext_id_validator = validators.IntID() try: ext_id = ext_id_validator.to_python(request.params.get('extid')) except validators.Invalid: ext_id = None cursor = conn.execute('EXEC sp_External_Community_ls_ParentSelector ?, ?, ?', SystemCode, ext_id, terms) cols = ['chkid', 'value', 'label'] in_tmpl = _(' (in %s)') values = (x[:2] + (x[2] + ((in_tmpl % x[3]) if x[3] else ''),) for x in cursor.fetchall()) retval = [dict(zip(cols, x)) for x in values] cursor.close() return retval
class CommunityBaseSchema(validators.Schema): ParentCommunity = validators.IntID() ParentCommunityName = validators.UnicodeString() ProvinceState = validators.IntID(not_empty=True) chained_validators = [validators.RequireIfPredicate(cannot_save_without_parent, ['ParentCommunity'])]
class RequestAccessValidator(BaseUserValidator): ManageAreaRequest = validators.Bool() ManageAreaDetail = validators.UnicodeString() chained_validators = [ validators.RequireIfPredicate(is_manage_area_detail_required, 'ManageAreaDetail') ]
class CommunitySchema(validators.Schema): allow_extra_fields = True filter_extra_fields = True community = CommunityBaseSchema() descriptions = validators.CultureDictSchema(CommunityDescriptionSchema(), pre_validators=[validators.DeleteKeyIfEmpty()], chained_validators=[validators.FlagRequiredIfNoCulture(CommunityDescriptionSchema)]) ReasonForChange = validators.UnicodeString(not_empty=True) alt_names = validators.ForEach(AltNameSchema())
def autocomplete(self): request = self.request if not request.user or not (request.user.Admin or request.user.ManageAreaList): return [] term_validator = validators.UnicodeString(not_empty=True) try: terms = term_validator.to_python(request.params.get('term')) except validators.Invalid: return [] cm_id_validator = validators.IntID() try: cur_parent = cm_id_validator.to_python( request.params.get('parent')) except validators.Invalid: cur_parent = None cur_cm_id = None if request.matched_route.name == 'json_search_areas': try: cur_cm_id = cm_id_validator.to_python( request.params.get('cmid')) except validators.Invalid: pass retval = [] search_areas = request.matched_route.name == 'json_search_areas' with request.connmgr.get_connection() as conn: if search_areas: cursor = conn.execute( 'EXEC sp_Community_ls_SearchAreaSelector ?, ?, ?, ?', request.user.User_ID, cur_cm_id, cur_parent, terms) else: cursor = conn.execute( 'EXEC sp_Community_ls_ParentSelector ?, ?, ?', request.user.User_ID, cur_parent, terms) cols = ['chkid', 'value', 'label'] retval = [dict(zip(cols, x)) for x in cursor.fetchall()] cursor.close() return retval
def search(self): request = self.request model_state = request.model_state model_state.validators = { 'terms': validators.UnicodeString(not_empty=True) } model_state.method = None communities = [] if model_state.validate(): with request.connmgr.get_connection() as conn: communities = conn.execute( 'EXEC sp_Community_ls ?,?', (request.user and request.user.User_ID), model_state.value('terms')) return {'communities': communities}
def autocomplete_communities(self): request = self.request _ = request.translate term_validator = validators.UnicodeString(not_empty=True) try: terms = term_validator.to_python(request.params.get('term')) except validators.Invalid: return [] retval = [] with request.connmgr.get_connection() as conn: cursor = conn.execute('EXEC sp_Community_ls_Autocomplete ?', terms) cols = ['chkid', 'value', 'label'] in_tmpl = _(' (in %s)') values = (x[:2] + (x[2] + ((in_tmpl % x[3]) if x[3] else ''),) for x in cursor.fetchall()) retval = [dict(zip(cols, x)) for x in values] cursor.close() return retval
class DeleteCommunitySchema(validators.Schema): allow_extra_fields = True filter_extra_fields = True ReasonForChange = validators.UnicodeString(not_empty=True)
class AltNameSchema(validators.Schema): if_key_missing = None Delete = validators.Bool() Culture = validators.ActiveCulture() AltName = validators.UnicodeString(max=200)
class CommunityDescriptionSchema(validators.Schema): Name = validators.UnicodeString(not_empty=True, max=200)
class SuggestSchema(validators.Schema): allow_extra_fields = True filter_extra_fields = True Suggestion = validators.UnicodeString(not_empty=True)