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,
        ),
    )
Exemple #2
0
class GeneralSchema(Schema):
    allow_extra_fields = True
    filter_extra_fields = True

    if_key_missing = None

    settings = GeneralBaseSchema()
    descriptions = ciocvalidators.CultureDictSchema(GeneralDescriptionSchema())
Exemple #3
0
class NaicsSchema(Schema):
    allow_extra_fields = True
    filter_extra_fields = True

    if_key_missing = None

    naics = NaicsBaseSchema()
    descriptions = ciocvalidators.CultureDictSchema(NaicsDescriptionSchema())
Exemple #4
0
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())
Exemple #5
0
class PublicationSchema(validators.RootSchema):

    if_key_missing = None

    publication = PublicationBaseSchema()
    descriptions = validators.CultureDictSchema(
        PublicationDescriptionSchema(),
        pre_validators=[validators.DeleteKeyIfEmpty()])

    group = ForEach(HeadingGroupBaseSchema())
Exemple #6
0
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)
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #11
0
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)
Exemple #12
0
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())
    )
Exemple #13
0
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)
Exemple #14
0
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()
Exemple #15
0
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,
    )
Exemple #16
0
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,
    )
Exemple #18
0
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)
Exemple #19
0
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)
        ],
    )
Exemple #21
0
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()
Exemple #22
0
    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,
        )
Exemple #23
0
    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