예제 #1
0
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()
예제 #2
0
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
예제 #5
0
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'])]
예제 #6
0
class RequestAccessValidator(BaseUserValidator):

    ManageAreaRequest = validators.Bool()
    ManageAreaDetail = validators.UnicodeString()

    chained_validators = [
        validators.RequireIfPredicate(is_manage_area_detail_required,
                                      'ManageAreaDetail')
    ]
예제 #7
0
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())
예제 #8
0
    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
예제 #9
0
    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}
예제 #10
0
    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
예제 #11
0
class DeleteCommunitySchema(validators.Schema):
    allow_extra_fields = True
    filter_extra_fields = True

    ReasonForChange = validators.UnicodeString(not_empty=True)
예제 #12
0
class AltNameSchema(validators.Schema):
    if_key_missing = None

    Delete = validators.Bool()
    Culture = validators.ActiveCulture()
    AltName = validators.UnicodeString(max=200)
예제 #13
0
class CommunityDescriptionSchema(validators.Schema):
    Name = validators.UnicodeString(not_empty=True, max=200)
예제 #14
0
class SuggestSchema(validators.Schema):
    allow_extra_fields = True
    filter_extra_fields = True

    Suggestion = validators.UnicodeString(not_empty=True)