You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

63 lines
1.9 KiB

# Copyright 2020 Coop IT Easy SCRL fs
# Robin Keunen <robin@coopiteasy.be>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import _
from odoo.fields import Date
def date_validator(field, value, error):
try:
Date.from_string(value)
except ValueError as e:
return error(
field, _("{} does not match format '%Y-%m-%d'".format(value))
)
# todo consistency: S_SR_GET, S_SR_RETURN_GET, S_SR_POST ...
S_SUBSCRIPTION_REQUEST_BASE = {
"name": {"type": "string", "required": True, "empty": False},
"email": {"type": "string", "required": True, "empty": False},
"ordered_parts": {"type": "integer", "required": True},
"address": {
"type": "dict",
"schema": {
"street": {"type": "string", "required": True, "empty": False},
"zip_code": {"type": "string", "required": True, "empty": False},
"city": {"type": "string", "required": True, "empty": False},
"country": {"type": "string", "required": True, "empty": False},
},
},
"lang": {"type": "string", "required": True, "empty": False},
}
S_SUBSCRIPTION_REQUEST_GET = {
**S_SUBSCRIPTION_REQUEST_BASE,
**{
"id": {"type": "integer", "required": True},
"date": {"type": "string", "required": True, "empty": False},
"share_product": {
"type": "dict",
"schema": {
"id": {"type": "integer", "required": True},
"name": {"type": "string", "required": True, "empty": False},
},
},
},
}
S_SUBSCRIPTION_REQUEST_CREATE = {
**S_SUBSCRIPTION_REQUEST_BASE,
**{"share_product": {"type": "integer", "required": True}},
}
S_SUBSCRIPTION_REQUEST_LIST = {
"count": {"type": "integer", "required": True},
"rows": {
"type": "list",
"schema": {"type": "dict", "schema": S_SUBSCRIPTION_REQUEST_GET},
},
}