ayon-core/server_addon/kitsu/server/settings.py
Jakub Trllo 2b37b8af48
AYON: Addon settings in OpenPype (#5347)
* copied addons from 'ayon-addon-settings'

* added AE, photoshop and harmony addon

* moved openpype to subfolder

* cleanup repository files

* updated create package script and README.md

* formatting fixes

* added cli flags to be able keep server structure

* print progress and output dir

* another formatting fixes
2023-07-26 14:08:42 +02:00

111 lines
3.2 KiB
Python

from pydantic import Field
from ayon_server.settings import BaseSettingsModel
class EntityPattern(BaseSettingsModel):
episode: str = Field(title="Episode")
sequence: str = Field(title="Sequence")
shot: str = Field(title="Shot")
def _status_change_cond_enum():
return [
{"value": "equal", "label": "Equal"},
{"value": "not_equal", "label": "Not equal"}
]
class StatusChangeCondition(BaseSettingsModel):
condition: str = Field(
"equal",
enum_resolver=_status_change_cond_enum,
title="Condition"
)
short_name: str = Field("", title="Short name")
class StatusChangeProductTypeRequirementModel(BaseSettingsModel):
condition: str = Field(
"equal",
enum_resolver=_status_change_cond_enum,
title="Condition"
)
product_type: str = Field("", title="Product type")
class StatusChangeConditionsModel(BaseSettingsModel):
status_conditions: list[StatusChangeCondition] = Field(
default_factory=list,
title="Status conditions"
)
product_type_requirements: list[StatusChangeProductTypeRequirementModel] = Field(
default_factory=list,
title="Product type requirements")
class CustomCommentTemplateModel(BaseSettingsModel):
enabled: bool = Field(True)
comment_template: str = Field("", title="Custom comment")
class IntegrateKitsuNotes(BaseSettingsModel):
"""Kitsu supports markdown and here you can create a custom comment template.
You can use data from your publishing instance's data.
"""
set_status_note: bool = Field(title="Set status on note")
note_status_shortname: str = Field(title="Note shortname")
status_change_conditions: StatusChangeConditionsModel = Field(
default_factory=StatusChangeConditionsModel,
title="Status change conditions"
)
custom_comment_template: CustomCommentTemplateModel = Field(
default_factory=CustomCommentTemplateModel,
title="Custom Comment Template",
)
class PublishPlugins(BaseSettingsModel):
IntegrateKitsuNote: IntegrateKitsuNotes = Field(
default_factory=IntegrateKitsuNotes,
title="Integrate Kitsu Note"
)
class KitsuSettings(BaseSettingsModel):
server: str = Field(
"",
title="Kitsu Server"
)
entities_naming_pattern: EntityPattern = Field(
default_factory=EntityPattern,
title="Entities naming pattern"
)
publish: PublishPlugins = Field(
default_factory=PublishPlugins,
title="Publish plugins"
)
DEFAULT_VALUES = {
"entities_naming_pattern": {
"episode": "E##",
"sequence": "SQ##",
"shot": "SH##"
},
"publish": {
"IntegrateKitsuNote": {
"set_status_note": False,
"note_status_shortname": "wfa",
"status_change_conditions": {
"status_conditions": [],
"product_type_requirements": []
},
"custom_comment_template": {
"enabled": False,
"comment_template": "{comment}\n\n| | |\n|--|--|\n| version| `{version}` |\n| product type | `{product[type]}` |\n| name | `{name}` |"
}
}
}
}