class InterestSchema(validators.Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None pre_validators = [viewbase.cull_extra_cultures("descriptions")] Code = validators.CodeValidator() descriptions = validators.CultureDictSchema( InterestDescriptionSchema(), record_cultures=True, delete_empty=False, chained_validators=[ validators.FlagRequiredIfNoCulture(InterestDescriptionSchema) ], ) groups = validators.All( validators.Set(use_set=True, if_missing=validators.NoDefault), validators.ForEach( validators.IDValidator(not_empty=True), not_empty=True, if_missing=validators.NoDefault, ), )
class GeneralSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None settings = GeneralBaseSchema() descriptions = ciocvalidators.CultureDictSchema(GeneralDescriptionSchema())
class NaicsSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None naics = NaicsBaseSchema() descriptions = ciocvalidators.CultureDictSchema(NaicsDescriptionSchema())
class ProfileSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None profile = ProfileBaseSchema() descriptions = ciocvalidators.CultureDictSchema(ProfileDescriptionSchema()) Views = All(validators.Set(use_set=True), ForEach(ciocvalidators.IDValidator())) Fields = ForEach(FieldOrderSchema())
class PublicationSchema(validators.RootSchema): if_key_missing = None publication = PublicationBaseSchema() descriptions = validators.CultureDictSchema( PublicationDescriptionSchema(), pre_validators=[validators.DeleteKeyIfEmpty()]) group = ForEach(HeadingGroupBaseSchema())
class TemplateSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None template = TemplateBaseSchema() descriptions = ciocvalidators.CultureDictSchema( TemplateDescriptionSchema()) menus = MenuTypes()
class PageTitleSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None pre_validators = [viewbase.cull_extra_cultures("descriptions")] PageName = ciocvalidators.String(max=255, not_empty=True) descriptions = ciocvalidators.CultureDictSchema( PageTitleDescriptionSchema(), record_cultures=True, delete_empty=False)
class FieldHelpSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None pre_validators = [viewbase.cull_extra_cultures("descriptions")] FieldID = ciocvalidators.IDValidator(not_empty=True) descriptions = ciocvalidators.CultureDictSchema( FieldHelpDescriptionSchema(), record_cultures=True, delete_empty=False)
class FieldBaseSchema(Schema): if_key_missing = None FieldID = ciocvalidators.IDValidator() Descriptions = ciocvalidators.CultureDictSchema( FieldDescriptionSchema(), record_cultures=True, allow_extra_fields=True, fiter_extra_fields=False, )
class SocialMediaSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None socialmedia = SocialMediaBaseSchema() descriptions = ciocvalidators.CultureDictSchema( SocialMediaDescriptionSchema(), record_cultures=True, delete_empty=False)
class MappingSystemSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None mapping = MappingSystemBaseSchema() descriptions = ciocvalidators.CultureDictSchema( MappingSystemDescriptionSchema(), record_cultures=True, delete_empty=False)
class GeneralHeadingSchema(validators.RootSchema): if_key_missing = None generalheading = GeneralHeadingBaseSchema() descriptions = validators.CultureDictSchema( GeneralHeadingDescriptionSchema(), pre_validators=[validators.DeleteKeyIfEmpty()], ) RelatedHeadings = All( validators.Set(use_set=True), ForEach(validators.IDValidator()) )
def make_checklist_base_schema(extra_description_validators=None, **extra_validators): if extra_description_validators is None: extra_description_validators = {} extra_validators["Descriptions"] = ciocvalidators.CultureDictSchema( ChecklistDescriptionSchema(**extra_description_validators), record_cultures=True, allow_extra_fields=True, fiter_extra_fields=False, ) return ChecklistBaseSchema(**extra_validators)
class HeadingGroupBaseSchema(Schema): if_key_missing = None GroupID = Any(validators.IDValidator(), validators.OneOf(["NEW"])) DisplayOrder = validators.Int(min=0, max=256, not_empty=True) Descriptions = validators.CultureDictSchema( HeadingGroupDescriptionSchema(), allow_extra_fields=True, fiter_extra_fields=False, ) IconNameFull = validators.String(max=65) delete = validators.Bool()
class FieldBaseSchema(Schema): if_key_missing = None FieldID = ciocvalidators.IDValidator() DisplayOrder = validators.Int(min=0, max=256, not_empty=True) Required = validators.Bool() Descriptions = ciocvalidators.CultureDictSchema( FieldDescriptionSchema(), record_cultures=True, allow_extra_fields=True, fiter_extra_fields=False, )
class LayoutSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None layout = LayoutBaseSchema() descriptions = ciocvalidators.CultureDictSchema( LayoutDescriptionSchema(), pre_validators=[ciocvalidators.DeleteKeyIfEmpty()], chained_validators=[ ciocvalidators.FlagRequiredIfNoCulture(LayoutDescriptionSchema) ], )
class FieldGroupBaseSchema(Schema): if_key_missing = None DisplayFieldGroupID = Any(ciocvalidators.IDValidator(), validators.OneOf(["NEW"])) DisplayOrder = validators.Int(min=0, max=256, not_empty=True) delete = validators.Bool() Descriptions = ciocvalidators.CultureDictSchema( FieldGroupDescriptionSchema(), record_cultures=True, allow_extra_fields=True, fiter_extra_fields=False, )
class UpdatePubsSchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None descriptions = ciocvalidators.CultureDictSchema( UpdatePubsDescriptionSchema(), pre_validators=[ciocvalidators.DeleteKeyIfEmpty()], ) GHID = All(validators.Set(use_set=True), ForEach(ciocvalidators.IDValidator())) DeleteFeedback = validators.DictConverter({ "Y": True, "N": False }, if_empty=False, if_missing=False)
class CommunitySchema(Schema): allow_extra_fields = True filter_extra_fields = True if_key_missing = None pre_validators = [viewbase.cull_extra_cultures("descriptions")] community = CommunityBaseSchema() descriptions = ciocvalidators.CultureDictSchema( CommunityDescriptionSchema(), record_cultures=True, delete_empty=False, chained_validators=[ ciocvalidators.FlagRequiredIfNoCulture(CommunityDescriptionSchema) ], ) alt_names = ForEach(AltNameSchema())
class QuickSearchBaseSchema(Schema): if_key_missing = None QuickSearchID = Any(ciocvalidators.IDValidator(), validators.OneOf(["NEW"])) DisplayOrder = validators.Int(min=0, max=255, not_empty=True) PageName = validators.OneOf(search_pages) PromoteToTab = validators.Bool() QueryParameters = ciocvalidators.String(max=1000, not_empty=True) delete = validators.Bool() Descriptions = ciocvalidators.CultureDictSchema( QuickSearchDescriptionSchema(), allow_extra_fields=True, fiter_extra_fields=False, chained_validators=[ ciocvalidators.FlagRequiredIfNoCulture( QuickSearchDescriptionSchema) ], )
class ThesaurusFullSchema(validators.RootSchema): if_key_missing = None # subject added at runtime # subject = ThesaurusBaseSchema() descriptions = validators.CultureDictSchema( ThesaurusDescriptionSchema(), pre_validators=[validators.DeleteKeyIfEmpty()], chained_validators=[ validators.FlagRequiredIfNoCulture(ThesaurusDescriptionSchema) ], ) UseSubj_ID = All(validators.Set(use_set=True), ForEach(validators.IDValidator())) BroaderSubj_ID = All( validators.Set(use_set=True), ForEach(validators.IDValidator()) ) RelatedSubj_ID = All( validators.Set(use_set=True), ForEach(validators.IDValidator()) ) MakeShared = validators.Bool()
def save(self): request = self.request user = request.user if not user.SuperUser: self._security_failure() options = self._get_options() if request.params.get("Delete"): query = [("EmailID", request.params.get("EmailID")), ("DM", options.DM.id)] if options.MR: query.append(("MR", "1")) self._go_to_route("admin_email", action="delete", _query=query) is_add = request.matchdict.get("action") == "add" model_state = request.model_state if options.MR: extra_validators = { "descriptions": validators.CultureDictSchema(DescriptionSchemaBase()) } else: extra_validators = { "descriptions": validators.CultureDictSchema(DescriptionSchemaNotAllOpps()) } if not is_add: extra_validators["EmailID"] = validators.IDValidator( not_empty=True) model_state.schema = EmailSchema(**extra_validators) model_state.form.variable_decode = True if model_state.validate(): email_id = model_state.value("EmailID") args = [ email_id, user.Mod, request.dboptions.MemberID, options.DM.id, options.MR, model_state.value("email.DefaultMsg"), model_state.value("email.StdSubjectBilingual"), ] root = ET.Element("DESCS") for culture, data in (model_state.value("descriptions") or {}).items(): desc = ET.SubElement(root, "DESC") ET.SubElement(desc, "Culture").text = culture.replace("_", "-") for name, value in data.items(): if value: ET.SubElement(desc, name).text = str(value) args.append(ET.tostring(root, encoding="unicode")) with request.connmgr.get_connection("admin") as conn: sql = """ DECLARE @ErrMsg as nvarchar(500), @RC as int, @EmailID as int SET @EmailID = ? EXECUTE @RC = dbo.sp_GBL_StandardEmailUpdate_u @EmailID OUTPUT, ?, ?, ?, ?, ?, ?, ?, @ErrMsg=@ErrMsg OUTPUT SELECT @RC as [Return], @ErrMsg AS ErrMsg, @EmailID as EmailID """ cursor = conn.execute(sql, *args) result = cursor.fetchone() cursor.close() if not result.Return: email_id = result.EmailID if is_add: msg = _( "The Standard Email Update Text was successfully added.", request, ) else: msg = _( "The Standard Email Update Text was successfully updated.", request, ) query = [("InfoMsg", msg), ("EmailID", email_id), ("DM", options.DM.id)] if options.MR: query.append(("MR", "1")) self._go_to_route("admin_email", action="edit", _query=query) ErrMsg = _("Unable to save: ") + result.ErrMsg else: if model_state.is_error("EmailID"): self._error_page(_("Invalid Email ID", request)) email_id = model_state.value("EmailID") ErrMsg = _("There were validation errors.") email = None if not is_add: with request.connmgr.get_connection("admin") as conn: cursor = conn.execute( "EXEC dbo.sp_GBL_StandardEmailUpdate_s ?, ?, ?, ?", request.dboptions.MemberID, options.DM.id, options.MR, email_id, ) email = cursor.fetchone() cursor.close() if not email: self._error_page( _("Standard Email Update Text Not Found", request)) log.debug("Errors: %s", model_state.form.errors) title = _("Standard Email Update Text (%s)", request) % _( options.DM.label, request) return self._create_response_namespace( title, title, dict( EmailID=email_id, email=email, is_add=is_add, options=options, ErrMsg=ErrMsg, ), no_index=True, )
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 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