class PageSchemaBase(validators.RootSchema): if_key_missing = None Owner = validators.AgencyCodeValidator() Slug = validators.SlugValidator(not_empty=True, max=50) Title = validators.UnicodeString(max=200, not_empty=True) PageContent = validators.UnicodeString(not_empty=True)
class SocialMediaBaseSchema(Schema): if_key_missing = None Active = validators.Bool() DefaultName = ciocvalidators.UnicodeString(max=100, not_empty=True) IconURL16 = ciocvalidators.URLWithProto(max=255, not_empty=True) IconURL24 = ciocvalidators.URLWithProto(max=255, not_empty=True) GeneralURL = ciocvalidators.UnicodeString(max=255)
class CommunityDescriptionSchema(Schema): if_key_missing = None Name = ciocvalidators.UnicodeString(max=200) Display = ciocvalidators.UnicodeString(max=200) chained_validators = [ ciocvalidators.RequireIfAny("Name", present=["Display"]) ]
class LayoutDescriptionSchema(Schema): if_key_missing = None LayoutName = ciocvalidators.UnicodeString(max=150, not_empty=True) LayoutHTML = ciocvalidators.UnicodeString() LayoutHTMLURL = ciocvalidators.Url(max=255) chained_validators = [ ciocvalidators.RequireIfAny("LayoutName", present=["LayoutHTML", "LayoutHTMLURL"]), ]
class MappingSystemDescriptionSchema(Schema): if_key_missing = None Name = ciocvalidators.UnicodeString(max=50) Label = ciocvalidators.UnicodeString(max=200) String = Pipe(ciocvalidators.URLWithProto(max=255), validators.MaxLength(255)) chained_validators = [ ciocvalidators.RequireIfAny("Name", present=("Label", "String")), ciocvalidators.RequireIfAny("Label", present=("Name", "String")), ciocvalidators.RequireIfAny("String", present=("Name", "Label")), ]
class DomainSchema(Schema): if_key_missing = None DMAP_ID = validators.IDValidator(not_empty=True) GoogleAnalyticsCode = validators.UnicodeString(max=50) GoogleAnalyticsAgencyDimension = validators.Int(min=1, max=20) GoogleAnalyticsLanguageDimension = validators.Int(min=1, max=20) GoogleAnalyticsDomainDimension = validators.Int(min=1, max=20) GoogleAnalyticsResultsCountMetric = validators.Int(min=1, max=20) SecondGoogleAnalyticsCode = validators.UnicodeString(max=50) SecondGoogleAnalyticsAgencyDimension = validators.Int(min=1, max=20) SecondGoogleAnalyticsLanguageDimension = validators.Int(min=1, max=20) SecondGoogleAnalyticsDomainDimension = validators.Int(min=1, max=20) SecondGoogleAnalyticsResultsCountMetric = validators.Int(min=1, max=20)
class DomainSchema(Schema): if_key_missing = None DMAP_ID = validators.IDValidator(not_empty=True) DefaultCulture = validators.ActiveCulture(not_empty=True) CICViewType = validators.IDValidator() VOLViewType = validators.IDValidator() SecondaryName = validators.Bool() GoogleMapsAPIKeyCIC = validators.String(max=100) GoogleMapsClientIDCIC = validators.UnicodeString(max=100) GoogleMapsChannelCIC = validators.UnicodeString(max=100) GoogleMapsAPIKeyVOL = validators.String(max=100) GoogleMapsClientIDVOL = validators.UnicodeString(max=100) GoogleMapsChannelVOL = validators.UnicodeString(max=100)
class APISchema(ciocvalidators.RootSchema): if_key_missing = None Owner = ciocvalidators.UnicodeString(not_empty=True, max=100) CIC = ciocvalidators.Bool() VOL = ciocvalidators.Bool() Inactive = ciocvalidators.Bool()
class AltNameSchema(Schema): if_key_missing = None Delete = validators.Bool() Culture = ciocvalidators.ActiveCulture(record_cultures=True) AltName = ciocvalidators.UnicodeString(max=200) New = validators.Bool()
class ListContactHonorific(ListValuesModel): Table = "GBL_Contact_Honorific" FieldCode = "ch" ID = None id_validator = validators.UnicodeString(max=20) AdminAreaCode = "HONORIFIC" NameField = "Honorific" ListName = _("Contact Honorific") ListNamePlural = _("honorifics") HasModified = False SearchLink1 = ( "~/results.asp", dict( incDel="on", Limit= "EXISTS(SELECT * FROM GBL_Contact WHERE GblNUM IS NOT NULL AND bt.NUM=GblNUM AND NAME_HONORIFIC='IDIDID')", ), ) SearchLink2 = ( "~/volunteer/results.asp", dict( incDel="on", Limit= "EXISTS(SELECT * FROM GBL_Contact WHERE VolVNUM IS NOT NULL AND vo.VNUM=VolVNUM AND NAME_HONORIFIC='IDIDID')", ), )
def make_email_list_schema(request, list_validator): agency_name = request.context.agency_name user = request.user name_validator = ciocvalidators.UnicodeString( max=100, if_missing=agency_name or " ".join([user.FirstName, user.LastName]) ) list_validator = ciocvalidators.CSVForEach(list_validator) return EmailListSchema(IDList=list_validator, FromName=name_validator)
class EmailListSchema(ciocvalidators.RootSchema): ignore_key_missing = True if_key_missing = None EmailAddress = ciocvalidators.All( validators=[ ciocvalidators.String(max=1000), ciocvalidators.EmailListRegexValidator(not_empty=True), ] ) AccessURL = AccessURLValidator(not_empty=True, if_missing=None) PDF = ciocvalidators.Bool() Subject = ciocvalidators.UnicodeString(max=255, not_empty=True) ReplyTo = ciocvalidators.Bool(if_missing=True, accept_iterator=True) BodyPrefix = ciocvalidators.UnicodeString() BodySuffix = ciocvalidators.UnicodeString()
class AgencySchema(Schema): if_key_missing = None AgencyCode = validators.AgencyCodeValidator(not_empty=True) GetInvolvedUser = validators.UnicodeString(max=100) GetInvolvedToken = validators.UnicodeString(max=100) GetInvolvedCommunitySet = validators.IDValidator() GetInvolvedSite = validators.OneOf([x[0] for x in get_involved_sites]) chained_validators = [ validators.RequireNoneOrAll([ "GetInvolvedUser", "GetInvolvedToken", "GetInvolvedCommunitySet", "GetInvolvedSite", ]) ]
class DescriptionSchemaBase(validators.RootSchema): if_key_missing = None Name = validators.UnicodeString(max=200, not_empty=True) StdSubject = validators.UnicodeString(max=100, not_empty=True) StdGreetingStart = validators.UnicodeString(max=100, not_empty=True) StdGreetingEnd = validators.UnicodeString(max=100) StdMessageBody = validators.UnicodeString(max=1500) StdDetailDesc = validators.UnicodeString(max=100) StdFeedbackDesc = validators.UnicodeString(max=100) StdContact = validators.UnicodeString(max=255, not_empty=True) StdSuggestOppDesc = validators.UnicodeString(max=150) StdOrgOppsDesc = validators.UnicodeString(max=150)
class MappingSystemBaseSchema(Schema): if_key_missing = None NewWindow = validators.Bool() DefaultProvince = ciocvalidators.String(min=2, max=2, if_empty=None, not_empty=True) DefaultCountry = ciocvalidators.UnicodeString(max=50, not_empty=True)
class ReminderBaseSchema(validators.Schema): if_key_missing = None ActiveDate = validators.DateConverter() Culture = validators.ActiveCulture(record_cultures=True) DueDate = validators.DateConverter() NoteTypeID = validators.IDValidator() Notes = validators.UnicodeString(not_empty=True) DismissForAll = validators.DictConverter(dismiss_options, not_empty=True)
class LayoutBaseSchema(Schema): if_key_missing = None Owner = ciocvalidators.AgencyCodeValidator() AlmostStandardsMode = validators.StringBool(if_empty=False) LayoutCSS = ciocvalidators.UnicodeString() LayoutCSSURL = ciocvalidators.Url(max=255) UseFontAwesome = validators.Bool() UseFullCIOCBootstrap = validators.Bool()
class MenuItemSchema(Schema): if_key_missing = None delete = validators.Bool() MenuID = Any(ciocvalidators.IDValidator(), validators.OneOf(["NEW"])) Link = ciocvalidators.String(max=150) Display = ciocvalidators.UnicodeString(max=200) MenuGroup = ciocvalidators.Int(min=1, max=3) chained_validators = [ ciocvalidators.RequireIfAny("Display", present=("Link", )), ciocvalidators.RequireIfAny("Link", present=("Display", )), ]
class AIRSExportOptionsSchema(validators.RootSchema): allow_extra_fields = True if_key_missing = None version = validators.OneOf(["3_1", "3_0", "3_0_Testing"], if_empty="3_0") DST = validators.UnicodeString(max=20, not_empty=True) IncludeDeleted = validators.Bool() IncludeSiteAgency = validators.Bool() PartialDate = validators.ISODateConverter() PubCodeSync = validators.Bool() FileSuffix = validators.String(max=100) LabelLangOverride = validators.Int(min=0, max=validators.MAX_TINY_INT) AnyLanguageChange = validators.Bool()
def autocomplete(self): request = self.request if not request.user.SuperUserGlobal: return [] term_validator = ciocvalidators.UnicodeString(not_empty=True) try: terms = term_validator.to_python(request.params.get("term")) except validators.Invalid: return [] cm_id_validator = ciocvalidators.IDValidator() try: cur_parent = cm_id_validator.to_python( request.params.get("parent")) except validators.Invalid: cur_parent = None cur_cm_id = None if request.matchdict.get("action") == "alt_search_area": try: cur_cm_id = cm_id_validator.to_python( request.params.get("cmid")) except validators.Invalid: pass retval = [] search_areas = request.matchdict.get("action") == "alt_search_area" with request.connmgr.get_connection("admin") as conn: if search_areas: cursor = conn.execute( "EXEC sp_GBL_Community_ls_SearchAreaSelector ?, ?, ?", cur_cm_id, cur_parent, terms, ) else: cursor = conn.execute( "EXEC sp_GBL_Community_ls_ParentSelector ?, ?", cur_parent, terms) cols = ["chkid", "value", "label"] retval = [dict(zip(cols, x)) for x in cursor.fetchall()] cursor.close() return retval
class NaicsExampleBaseSchema(Schema): if_key_missing = None Example_ID = Any(ciocvalidators.IDValidator(), validators.OneOf(["NEW"])) LangID = validators.Int(min=0, max=ciocvalidators.MAX_SMALL_INT, not_empty=True) Description = ciocvalidators.UnicodeString( max=255) # sometimes required as per RequireIfPredicate below delete = validators.Bool() chained_validators = [ ciocvalidators.RequireIfPredicate(description_required, ["Description"]) ]
class NaicsExclusionBaseSchema(Schema): if_key_missing = None Exclusion_ID = Any(ciocvalidators.IDValidator(), validators.OneOf(["NEW"])) LangID = validators.Int(min=0, max=ciocvalidators.MAX_SMALL_INT, not_empty=True) Description = ciocvalidators.UnicodeString( max=255) # sometimes required as per RequireIfPredicate below Establishment = validators.Bool() UseCodes = foreach.ForEach(ciocvalidators.NaicsCode()) delete = validators.Bool() chained_validators = [ ciocvalidators.RequireIfPredicate(description_required, ["Description"]) ]
class TemplateBaseSchema(Schema): if_key_missing = None Owner = ciocvalidators.AgencyCodeValidator() BannerRepeat = validators.Bool() BannerHeight = validators.Int(min=10, max=255) BodyTagExtras = ciocvalidators.String(max=150) FontFamily = validators.String(max=100) ExtraCSS = ciocvalidators.UnicodeString() HeaderLayout = ciocvalidators.IDValidator(not_empty=True) FooterLayout = ciocvalidators.IDValidator(not_empty=True) SearchLayoutCIC = ciocvalidators.IDValidator() SearchLayoutVOL = ciocvalidators.IDValidator() HeaderSearchLink = validators.Bool() HeaderSearchIcon = validators.Bool() HeaderSuggestLink = validators.Bool() HeaderSuggestIcon = validators.Bool() ContainerFluid = validators.Bool() ContainerContrast = validators.Bool() SmallTitle = validators.Bool() cornerRadius = ciocvalidators.String(max=10) fsDefault = ciocvalidators.String(max=10) UseFontAwesome = validators.Bool() PreviewTemplate = validators.Bool() chained_validators = [ ciocvalidators.RequireIfAny("SearchLayoutCIC", missing="SearchLayoutVOL"), ciocvalidators.RequireIfAny("SearchLayoutVOL", missing="SearchLayoutCIC"), ]
class ListContactPhoneType(ListValuesModel): Table = "GBL_Contact_PhoneType" FieldCode = "cpt" ID = None id_validator = validators.UnicodeString(max=20) AdminAreaCode = "PHONETYPE" NameField = "PhoneType" ListName = _("Contact Phone Type") ListNamePlural = _("phone types") ExtraFields = [ { "type": "language", "title": _("Language"), "field": "Culture", "kwargs": {}, "validator": validators.ActiveCulture(record_cultures=True), }, ] HasModified = False
class GeneralDescriptionSchema(Schema): if_key_missing = None DatabaseNameCIC = ciocvalidators.UnicodeString(max=255) DatabaseNameVOL = ciocvalidators.UnicodeString(max=255) FeedbackMsgCIC = ciocvalidators.UnicodeString(max=2000) FeedbackMsgVOL = ciocvalidators.UnicodeString(max=2000) VolProfilePrivacyPolicyOrgName = ciocvalidators.UnicodeString(max=255) VolProfilePrivacyPolicy = ciocvalidators.UnicodeString() chained_validators = [ ciocvalidators.RequireIfPredicate( IsCICSuperUser, ["DatabaseNameCIC", "FeedbackMsgCIC"]), ciocvalidators.RequireIfPredicate( IsVOLSuperUser, ["DatabaseNameVOL", "FeedbackMsgVOL"]), ciocvalidators.RequireIfPredicate( IsVOLSuperUserAndProfiles, ["VolProfilePrivacyPolicyOrgName", "VolProfilePrivacyPolicy"], ), ]
class TemplateDescriptionSchema(Schema): if_key_missing = None Name = ciocvalidators.UnicodeString(max=150) Logo = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) LogoAltText = ciocvalidators.UnicodeString(max=255) LogoLink = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) LogoMobile = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) Banner = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) CopyrightNotice = ciocvalidators.UnicodeString(max=255) headerGroup1 = ciocvalidators.UnicodeString(max=100) headerGroup2 = ciocvalidators.UnicodeString(max=100) headerGroup3 = ciocvalidators.UnicodeString(max=100) footerGroup1 = ciocvalidators.UnicodeString(max=100) footerGroup2 = ciocvalidators.UnicodeString(max=100) footerGroup3 = ciocvalidators.UnicodeString(max=100) cicsearchGroup1 = ciocvalidators.UnicodeString(max=100) cicsearchGroup2 = ciocvalidators.UnicodeString(max=100) cicsearchGroup3 = ciocvalidators.UnicodeString(max=100) volsearchGroup1 = ciocvalidators.UnicodeString(max=100) volsearchGroup2 = ciocvalidators.UnicodeString(max=100) volsearchGroup3 = ciocvalidators.UnicodeString(max=100) Agency = ciocvalidators.UnicodeString(max=255) Address = ciocvalidators.UnicodeString(max=255) Phone = ciocvalidators.UnicodeString(max=255) Email = ciocvalidators.UnicodeString(max=150) Web = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) Facebook = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) Twitter = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) Instagram = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) LinkedIn = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) YouTube = Pipe( ciocvalidators.URLWithProto(add_http=True, require_tld=False), validators.MaxLength(255), ) TermsOfUseLink = ciocvalidators.UnicodeString(max=255) TermsOfUseLabel = ciocvalidators.UnicodeString(max=255) FooterNotice = ciocvalidators.UnicodeString(max=3000) FooterNotice2 = ciocvalidators.UnicodeString(max=2000) FooterNoticeContact = ciocvalidators.UnicodeString(max=2000) HeaderNotice = ciocvalidators.UnicodeString(max=2000) HeaderNoticeMobile = ciocvalidators.UnicodeString(max=1000) chained_validators = [ ciocvalidators.RequireIfAny( "Name", present=( "LogoLink", "Logo", "CopyrightNotice", "LogoMobile", "LogoAltText", "Banner", "Agency", "Address", "Phone", "Email", "Web", "Facebook", "Twitter", "Instagram", "LinkedIn", "YouTube", ), ) ]
class MenuTypes(Schema): if_key_missing = None menu_types = ["header", "footer", "cicsearch", "volsearch"] menu_item_list_validator = ciocvalidators.CultureDictSchema( ForEach(MenuItemSchema())) for field in menu_types: MenuTypes.add_field(field, menu_item_list_validator) for field in menu_types: for group in range(1, 4): TemplateDescriptionSchema.add_field( "%sGroup%d" % (field, group), ciocvalidators.UnicodeString(max=100)) class TemplateSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None template = TemplateBaseSchema() descriptions = ciocvalidators.CultureDictSchema( TemplateDescriptionSchema()) menus = MenuTypes() @view_defaults(route_name="admin_template")
class SocialMediaDescriptionSchema(Schema): if_key_missing = None Name = ciocvalidators.UnicodeString(max=100)
class CloseSchema(validators.RootSchema): if_key_missing = None NoticeID = validators.IDValidator(not_empty=True) ActionTaken = validators.Int(min=1, max=2, if_empty=None) ActionNotes = validators.UnicodeString()
class NewSchema(validators.RootSchema): if_key_missing = None AdminAreaID = validators.IDValidator(not_empty=True) RequestDetail = validators.UnicodeString(not_empty=True)