diff --git a/.gitignore b/.gitignore index 8e55f49..fbace20 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ *.pyc *.log *.bak -*.bat .venv .idea diff --git a/deploy/.gcloudignore b/deploy/.gcloudignore index f70ae98..b04599c 100644 --- a/deploy/.gcloudignore +++ b/deploy/.gcloudignore @@ -7,6 +7,7 @@ # $ gcloud topic gcloudignore # .gcloudignore + # If you would like to upload your .git directory, .gitignore file or files # from your .gitignore file, remove the corresponding line # below: @@ -15,12 +16,8 @@ # Python pycache: __pycache__/ + # Ignored by the build system /setup.cfg node_modules/ -/viur/docs/ -/viur/CHANGELOG.md -/viur/LICENSE -/viur/README.md -/viur/.readthedocs.yml diff --git a/deploy/html/example_list.html b/deploy/html/empty_list.html similarity index 57% rename from deploy/html/example_list.html rename to deploy/html/empty_list.html index 226b073..b58a84e 100644 --- a/deploy/html/example_list.html +++ b/deploy/html/empty_list.html @@ -6,10 +6,9 @@

View {{ moduleName() }}

{% for skel in skellist %}
{{ skel["name"] }}
{% if skel["image"] %} -
- -
- {% endif %} +
+ +
+ {% endif %} {% endfor %} - {% endblock %} diff --git a/deploy/main.py b/deploy/main.py index 381538b..b6f62c0 100644 --- a/deploy/main.py +++ b/deploy/main.py @@ -58,7 +58,7 @@ class ProjectConfig(ConfigType): # {"width": 1920}, # {"width": 1280}, # {"width": 900}, - # {"width": 500} + # {"width": 500}, # ] # } @@ -71,8 +71,6 @@ class ProjectConfig(ConfigType): conf.valid_application_ids = list(conf.project.appnames.keys()) -# Client-ID for OAuth with google -# conf.user.google_client_id = "" # ------------------------------------------------------------------------------ # Debugging & Performance @@ -95,6 +93,23 @@ class ProjectConfig(ConfigType): # render old-style tuple-list in SelectBone's values structure conf.compatibility.remove("bone.select.structure.values.keytuple") +# ------------------------------------------------------------------------------ +# User module +# + +# Client-ID for OAuth with Google Account +# conf.user.google_client_id = "" +# conf.user.google_gsuite_domains = ["example.com"] + +# User roles +# +# conf.user.roles = { +# "custom": "Custom setting", +# "admin": "Administrator", +# "backoffice": "Back office worker", +# "salesforce": "Sales force worker", +# } + # ------------------------------------------------------------------------------ # File module # @@ -137,11 +152,13 @@ class ProjectConfig(ConfigType): # Email configuration # -conf.email.sendinblue_api_key = "xkeysib-XXX" # better: use secret.get("sib-api-key") -conf.email.transport_class = email.EmailTransportSendInBlue -conf.email.send_from_local_development_server = True # enable sending emails from local development server +# conf.email.transport_class = email.EmailTransportMailjet( +# api_key=secret.get("mailjet-api-key"), +# secret_key=secret.get("mailjet-api-secret"), +# ) +# conf.email.send_from_local_development_server = True # enable sending emails from local development server # conf.email.sender_override = "mail@viur.dev" -# conf.email.recipient_override = ["mail@viur.dev"] # send all emails to this recipient +# conf.email.recipient_override = "mail@viur.dev" # send all emails to this recipient # ------------------------------------------------------------------------------ # Content Security Policy (CSP) @@ -206,23 +223,35 @@ class ProjectConfig(ConfigType): # conf.request_preprocessor = maintenance_mode # ------------------------------------------------------------------------------ -# VueJS development +# CORS configuration for VueJS development # -# if conf.instance.is_dev_server: -# def vuejs_cors_allow_all(path): -# current.request.get().response.headers["Access-Control-Allow-Origin"] = "http://localhost:8081" -# current.request.get().response.headers["Access-Control-Allow-Credentials"] = "true" -# return path +# import re +# +# conf.security.cors_max_age = datetime.timedelta(seconds=30) +# conf.security.cors_allow_credentials = True +# conf.security.cors_origins = "*" +# conf.security.cors_origins = [ +# # "*", +# # "http://localhost:8080", +# # "http://localhost:9090", +# # Allows any localhost port: +# re.compile(r"^(http://localhost:(\d{4,5}))/?$", flags=re.IGNORECASE), +# ] +# # conf.security.cors_origins_use_wildcard = True # -# conf.request_preprocessor = vuejs_cors_allow_all +# # Allows the header "X-Requested-With" and "X-ViUR-*" +# conf.security.cors_allow_headers = [ +# "X-Requested-With", +# re.compile(r"^X-ViUR-.*$", flags=re.IGNORECASE), +# ] # ------------------------------------------------------------------------------ # Server startup # -import modules -import render +import modules # noqa +import render # noqa # core.setDefaultLanguage("de") app = setup(modules, render) diff --git a/deploy/modules/empty.py b/deploy/modules/empty.py new file mode 100644 index 0000000..10fa771 --- /dev/null +++ b/deploy/modules/empty.py @@ -0,0 +1,12 @@ +from viur.core.prototypes import List + + +class Empty(List): + listTemplate = "empty_list" + + def listFilter(self, query): + return query # This content is public! + + +Empty.html = True # enable for HTML-rendering +Empty.json = True # enable for JSON-rendering diff --git a/deploy/modules/file.py b/deploy/modules/file.py index 05dd957..cdc92d8 100644 --- a/deploy/modules/file.py +++ b/deploy/modules/file.py @@ -1,4 +1,4 @@ -from viur.core import i18n, db, current +from viur.core import i18n, current from viur.core.modules.file import File diff --git a/deploy/skeletons/empty.py b/deploy/skeletons/empty.py new file mode 100644 index 0000000..72f6ddb --- /dev/null +++ b/deploy/skeletons/empty.py @@ -0,0 +1,9 @@ +from viur.core.bones import * +from viur.core.skeleton import Skeleton + + +class EmptySkel(Skeleton): + name = StringBone( + descr="Name", + required=True, + ) diff --git a/deploy/skeletons/example.py b/deploy/skeletons/example.py index 9178c22..509c0cd 100644 --- a/deploy/skeletons/example.py +++ b/deploy/skeletons/example.py @@ -7,45 +7,43 @@ class ExampleSkel(Skeleton): # Defaults name = StringBone( descr="Name", - required=True + required=True, ) - sortindex = NumericBone( - descr="Sort index", - indexed=True, - required=True + sortindex = SortIndexBone( + required=True, ) image = FileBone( descr="Image", - derive=conf["derives"] + # derive=conf.project.standard_derives, ) # SEO seo_title = StringBone( descr="SEO Title", params={ - "category": "SEO" - } + "category": "SEO", + }, ) seo_description = StringBone( descr="SEO Description", params={ "category": "SEO" - } + }, ) seo_keywords = StringBone( descr="SEO Keywords", params={ "category": "SEO" - } + }, ) seo_image = FileBone( descr="SEO Preview Image", params={ "category": "SEO" - } + }, ) diff --git a/deploy/vi_plugins/__init__.py b/deploy/vi_plugins/__init__.py deleted file mode 100644 index c0a9c24..0000000 --- a/deploy/vi_plugins/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -# This is the major Vi plugin init file. -# Do custom plugin imports and customized settings here. - -# Plugin imports -# import vi_plugins.bones - -# Vi config -from vi.config import conf - -# Change default batch size -# conf["batchSize"] = 64 - -# Show bone name identifiers instead of descriptions: -# conf["showBoneNames"] = False - -# To globally disable the internal preview, uncomment this: -# conf["internalPreview"] = False - -# Change language -# from i18n import setLanguage, getLanguage -# conf["currentlanguage"] = "de" -# setLanguage(conf["currentlanguage"]) - -print(conf) -print("!!! ALL PROJECT CUSTOMIZATIONS LOADED !!!") diff --git a/deploy/vi_plugins/files.json b/deploy/vi_plugins/files.json deleted file mode 100644 index 6564c80..0000000 --- a/deploy/vi_plugins/files.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "__init__.py" -] \ No newline at end of file diff --git a/resources/allbones/README.md b/resources/allbones/README.md deleted file mode 100644 index bbeb38a..0000000 --- a/resources/allbones/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# allbones - -This is only a test module that generates bones in any valid configurations. - -It is used for Vi testing and development. Copy modules/allbones.py into the deploy/modules and skeletons/allbones.py into deploy/skeletons of your ViUR project to use it. diff --git a/resources/allbones/modules/allbones.py b/resources/allbones/modules/allbones.py deleted file mode 100644 index 83f88f3..0000000 --- a/resources/allbones/modules/allbones.py +++ /dev/null @@ -1,153 +0,0 @@ -from viur.core.bones import * -from viur.core.prototypes import List - -flags = [ - { - "required": False, - "readOnly": False, - "visible": False, - "multiple": False, - }, - { - "required": True, - "readOnly": False, - "visible": False, - "multiple": False, - }, - { - "required": False, - "readOnly": True, - "visible": False, - "multiple": False, - }, - { - "required": False, - "readOnly": False, - "visible": True, - "multiple": False, - }, - { - "required": True, - "readOnly": True, - "visible": False, - "multiple": False, - }, - { - "required": True, - "readOnly": False, - "visible": True, - "multiple": False, - }, - { - "required": False, - "readOnly": True, - "visible": True, - "multiple": False, - }, - { - "required": True, - "readOnly": True, - "visible": True, - "multiple": False, - }, - { - "required": False, - "readOnly": False, - "visible": False, - "multiple": True, - }, - { - "required": True, - "readOnly": False, - "visible": False, - "multiple": True, - }, - { - "required": False, - "readOnly": True, - "visible": False, - "multiple": True, - }, - { - "required": False, - "readOnly": False, - "visible": True, - "multiple": True, - }, - { - "required": True, - "readOnly": True, - "visible": False, - "multiple": True, - }, - { - "required": True, - "readOnly": False, - "visible": True, - "multiple": True, - }, - { - "required": False, - "readOnly": True, - "visible": True, - "multiple": True, - }, - { - "required": True, - "readOnly": True, - "visible": True, - "multiple": True, - }, -] - -bonesToTest = [ - # (baseBone, [], {}), - (booleanBone, [], {}), - # (captchaBone, [], {"privateKey": "foo", "publicKey": "bar"}), - # (colorBone, [], {}), - # (credentialBone, [], {}), - # (dateBone, [], {}), - # (emailBone, [], {}), - # (fileBone, [], {}), - # (keyBone, [], {}), - (numericBone, [], {}), - # (passwordBone, [], {}), - # (randomSliceBone, [], {}), - # (recordBone, [], {"using": CoordRelSkel, "format": "$(lat) - $(lng)"}), - # (relationalBone, [], {"module": "feedentry", "kind": "feedentry"}), - # (selectBone, [], {"values": {"true": "Option A", "false": "Option B"}}), - # (selectCountryBone, [], {}), - # (spatialBone, [(50, 57), (7, 0), (10, 10)], {}), - (stringBone, [], {}), - # (treeLeafBone, [], {"module": "file", "kind": "file"}), - # (treeNodeBone, [], {"module": "file", "kind": "file"}), - # (userBone, [], {}), -] - - -class AllBones(List): - pass - -# def addSkel(self, *args, **kwargs): -# skel = super().addSkel() -# count = 0 -# for testBone, extraArgs, extraKwargs in bonesToTest: -# for flagCombination in flags: -# mergedArgs = flagCombination.copy() -# mergedArgs["extra"] = "_".join(map(str, extraKwargs.values())) -# mergedArgs["params"] = {"tooltip": json.dumps(mergedArgs, indent=4)} -# boneName = urllib.parse.quote_plus("{}_{}_{}_{}_{}_{}".format(testBone.__name__, *mergedArgs.values())) -# logging.debug("boneName: %r, %r, %r, %r, %r", count, testBone, boneName, flagCombination, extraKwargs) -# try: -# skel.__setattr__( -# boneName, -# testBone(*extraArgs, descr=boneName, **flagCombination, **extraKwargs) -# ) -# count += 1 -# except Exception as err: -# logging.exception(err) -# return skel -# -# viewSkel = addSkel -# editSkel = addSkel -# diff --git a/resources/allbones/skeletons/allbones.py b/resources/allbones/skeletons/allbones.py deleted file mode 100644 index 8593fb4..0000000 --- a/resources/allbones/skeletons/allbones.py +++ /dev/null @@ -1,361 +0,0 @@ -import logging - -from viur.core.bones import * -from viur.core.skeleton import RelSkel, Skeleton - - -class StringRelSkel(RelSkel): - lat = stringBone( - descr=u"Latitude", - indexed=True, - searchable=True, - required=True - ) - - lng = stringBone( - descr=u"Longitude", - indexed=True, - searchable=True, - required=True - ) - - -class allbonesSkel(Skeleton): - # baseBone_0 = baseBone(descr="baseBone_0", required=False, readOnly=False, visible=False, multiple=False) - # baseBone_1 = baseBone(descr="baseBone_1", required=True, readOnly=False, visible=False, multiple=False) - # baseBone_2 = baseBone(descr="baseBone_2", required=False, readOnly=True, visible=False, multiple=False) - # baseBone_3 = baseBone(descr="baseBone_3", required=False, readOnly=False, visible=True, multiple=False) - # baseBone_4 = baseBone(descr="baseBone_4", required=True, readOnly=True, visible=False, multiple=False) - # baseBone_5 = baseBone(descr="baseBone_5", required=True, readOnly=False, visible=True, multiple=False) - # baseBone_6 = baseBone(descr="baseBone_6", required=False, readOnly=True, visible=True, multiple=False) - # baseBone_7 = baseBone(descr="baseBone_7", required=True, readOnly=True, visible=True, multiple=False) - # baseBone_8 = baseBone(descr="baseBone_8", required=False, readOnly=False, visible=False, multiple=True) - # baseBone_9 = baseBone(descr="baseBone_9", required=True, readOnly=False, visible=False, multiple=True) - # baseBone_10 = baseBone(descr="baseBone_10", required=False, readOnly=True, visible=False, multiple=True) - # baseBone_11 = baseBone(descr="baseBone_11", required=False, readOnly=False, visible=True, multiple=True) - # baseBone_12 = baseBone(descr="baseBone_12", required=True, readOnly=True, visible=False, multiple=True) - # baseBone_13 = baseBone(descr="baseBone_13", required=True, readOnly=False, visible=True, multiple=True) - # baseBone_14 = baseBone(descr="baseBone_14", required=False, readOnly=True, visible=True, multiple=True) - # baseBone_15 = baseBone(descr="baseBone_15", required=True, readOnly=True, visible=True, multiple=True) - booleanBone_0 = booleanBone(descr="booleanBone_0", required=False, readOnly=False, visible=False, multiple=False) - # booleanBone_1 = booleanBone(descr="booleanBone_1", required=True, readOnly=False, visible=False, multiple=False) - booleanBone_2 = booleanBone(descr="booleanBone_2", required=False, readOnly=True, visible=False, multiple=False) - booleanBone_3 = booleanBone(descr="booleanBone_3", required=False, readOnly=False, visible=True, multiple=False) - booleanBone_4 = booleanBone(descr="booleanBone_4", required=True, readOnly=True, visible=False, multiple=False) - booleanBone_5 = booleanBone(descr="booleanBone_5", required=True, readOnly=False, visible=True, multiple=False) - booleanBone_6 = booleanBone(descr="booleanBone_6", required=False, readOnly=True, visible=True, multiple=False) - booleanBone_7 = booleanBone(descr="booleanBone_7", required=True, readOnly=True, visible=True, multiple=False) - booleanBone_8 = booleanBone(descr="booleanBone_8", required=False, readOnly=False, visible=False, multiple=True) - booleanBone_9 = booleanBone(descr="booleanBone_9", required=True, readOnly=False, visible=False, multiple=True) - booleanBone_10 = booleanBone(descr="booleanBone_10", required=False, readOnly=True, visible=False, multiple=True) - booleanBone_11 = booleanBone(descr="booleanBone_11", required=False, readOnly=False, visible=True, multiple=True) - # booleanBone_12 = booleanBone(descr="booleanBone_12", required=True, readOnly=True, visible=False, multiple=True) - # booleanBone_13 = booleanBone(descr="booleanBone_13", required=True, readOnly=False, visible=True, multiple=True) - booleanBone_14 = booleanBone(descr="booleanBone_14", required=False, readOnly=True, visible=True, multiple=True) - booleanBone_15 = booleanBone(descr="booleanBone_15", required=True, readOnly=True, visible=True, multiple=True) - # captchaBone_0 = captchaBone(descr="captchaBone_0", required=False, readOnly=False, visible=False, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_1 = captchaBone(descr="captchaBone_1", required=True, readOnly=False, visible=False, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_2 = captchaBone(descr="captchaBone_2", required=False, readOnly=True, visible=False, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_3 = captchaBone(descr="captchaBone_3", required=False, readOnly=False, visible=True, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_4 = captchaBone(descr="captchaBone_4", required=True, readOnly=True, visible=False, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_5 = captchaBone(descr="captchaBone_5", required=True, readOnly=False, visible=True, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_6 = captchaBone(descr="captchaBone_6", required=False, readOnly=True, visible=True, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_7 = captchaBone(descr="captchaBone_7", required=True, readOnly=True, visible=True, multiple=False, privateKey="foo", publicKey="bar") - # captchaBone_8 = captchaBone(descr="captchaBone_8", required=False, readOnly=False, visible=False, multiple=True, privateKey="foo", publicKey="bar") - # captchaBone_9 = captchaBone(descr="captchaBone_9", required=True, readOnly=False, visible=False, multiple=True, privateKey="foo", publicKey="bar") - # captchaBone_10 = captchaBone(descr="captchaBone_10", required=False, readOnly=True, visible=False, multiple=True, privateKey="foo", publicKey="bar") - # captchaBone_11 = captchaBone(descr="captchaBone_11", required=False, readOnly=False, visible=True, multiple=True, privateKey="foo", publicKey="bar") - # captchaBone_12 = captchaBone(descr="captchaBone_12", required=True, readOnly=True, visible=False, multiple=True, privateKey="foo", publicKey="bar") - # captchaBone_13 = captchaBone(descr="captchaBone_13", required=True, readOnly=False, visible=True, multiple=True, privateKey="foo", publicKey="bar") - # captchaBone_14 = captchaBone(descr="captchaBone_14", required=False, readOnly=True, visible=True, multiple=True, privateKey="foo", publicKey="bar") - # captchaBone_15 = captchaBone(descr="captchaBone_15", required=True, readOnly=True, visible=True, multiple=True, privateKey="foo", publicKey="bar") - # colorBone_0 = colorBone(descr="colorBone_0", required=False, readOnly=False, visible=False, multiple=False) - # colorBone_1 = colorBone(descr="colorBone_1", required=True, readOnly=False, visible=False, multiple=False) - # colorBone_2 = colorBone(descr="colorBone_2", required=False, readOnly=True, visible=False, multiple=False) - # colorBone_3 = colorBone(descr="colorBone_3", required=False, readOnly=False, visible=True, multiple=False) - # colorBone_4 = colorBone(descr="colorBone_4", required=True, readOnly=True, visible=False, multiple=False) - # colorBone_5 = colorBone(descr="colorBone_5", required=True, readOnly=False, visible=True, multiple=False) - # colorBone_6 = colorBone(descr="colorBone_6", required=False, readOnly=True, visible=True, multiple=False) - # colorBone_7 = colorBone(descr="colorBone_7", required=True, readOnly=True, visible=True, multiple=False) - # colorBone_8 = colorBone(descr="colorBone_8", required=False, readOnly=False, visible=False, multiple=True) - # colorBone_9 = colorBone(descr="colorBone_9", required=True, readOnly=False, visible=False, multiple=True) - # colorBone_10 = colorBone(descr="colorBone_10", required=False, readOnly=True, visible=False, multiple=True) - # colorBone_11 = colorBone(descr="colorBone_11", required=False, readOnly=False, visible=True, multiple=True) - # colorBone_12 = colorBone(descr="colorBone_12", required=True, readOnly=True, visible=False, multiple=True) - # colorBone_13 = colorBone(descr="colorBone_13", required=True, readOnly=False, visible=True, multiple=True) - # colorBone_14 = colorBone(descr="colorBone_14", required=False, readOnly=True, visible=True, multiple=True) - # colorBone_15 = colorBone(descr="colorBone_15", required=True, readOnly=True, visible=True, multiple=True) - # credentialBone_0 = credentialBone(descr="credentialBone_0", required=False, readOnly=False, visible=False, multiple=False) - # credentialBone_1 = credentialBone(descr="credentialBone_1", required=True, readOnly=False, visible=False, multiple=False) - # credentialBone_2 = credentialBone(descr="credentialBone_2", required=False, readOnly=True, visible=False, multiple=False) - # credentialBone_3 = credentialBone(descr="credentialBone_3", required=False, readOnly=False, visible=True, multiple=False) - # credentialBone_4 = credentialBone(descr="credentialBone_4", required=True, readOnly=True, visible=False, multiple=False) - # credentialBone_5 = credentialBone(descr="credentialBone_5", required=True, readOnly=False, visible=True, multiple=False) - # credentialBone_6 = credentialBone(descr="credentialBone_6", required=False, readOnly=True, visible=True, multiple=False) - # credentialBone_7 = credentialBone(descr="credentialBone_7", required=True, readOnly=True, visible=True, multiple=False) - # # credentialBone_8 = credentialBone(descr="credentialBone_8", required=False, readOnly=False, visible=False, multiple=True) - # # credentialBone_9 = credentialBone(descr="credentialBone_9", required=True, readOnly=False, visible=False, multiple=True) - # # credentialBone_10 = credentialBone(descr="credentialBone_10", required=False, readOnly=True, visible=False, multiple=True) - # # credentialBone_11 = credentialBone(descr="credentialBone_11", required=False, readOnly=False, visible=True, multiple=True) - # # credentialBone_12 = credentialBone(descr="credentialBone_12", required=True, readOnly=True, visible=False, multiple=True) - # # credentialBone_13 = credentialBone(descr="credentialBone_13", required=True, readOnly=False, visible=True, multiple=True) - # # credentialBone_14 = credentialBone(descr="credentialBone_14", required=False, readOnly=True, visible=True, multiple=True) - # # credentialBone_15 = credentialBone(descr="credentialBone_15", required=True, readOnly=True, visible=True, multiple=True) - # dateBone_0 = dateBone(descr="dateBone_0", required=False, readOnly=False, visible=False, multiple=False) - # dateBone_1 = dateBone(descr="dateBone_1", required=True, readOnly=False, visible=False, multiple=False) - # dateBone_2 = dateBone(descr="dateBone_2", required=False, readOnly=True, visible=False, multiple=False) - # dateBone_3 = dateBone(descr="dateBone_3", required=False, readOnly=False, visible=True, multiple=False) - # dateBone_4 = dateBone(descr="dateBone_4", required=True, readOnly=True, visible=False, multiple=False) - # dateBone_5 = dateBone(descr="dateBone_5", required=True, readOnly=False, visible=True, multiple=False) - # dateBone_6 = dateBone(descr="dateBone_6", required=False, readOnly=True, visible=True, multiple=False) - # dateBone_7 = dateBone(descr="dateBone_7", required=True, readOnly=True, visible=True, multiple=False) - # dateBone_8 = dateBone(descr="dateBone_8", required=False, readOnly=False, visible=False, multiple=True) - # dateBone_9 = dateBone(descr="dateBone_9", required=True, readOnly=False, visible=False, multiple=True) - # dateBone_10 = dateBone(descr="dateBone_10", required=False, readOnly=True, visible=False, multiple=True) - # dateBone_11 = dateBone(descr="dateBone_11", required=False, readOnly=False, visible=True, multiple=True) - # dateBone_12 = dateBone(descr="dateBone_12", required=True, readOnly=True, visible=False, multiple=True) - # dateBone_13 = dateBone(descr="dateBone_13", required=True, readOnly=False, visible=True, multiple=True) - # dateBone_14 = dateBone(descr="dateBone_14", required=False, readOnly=True, visible=True, multiple=True) - # dateBone_15 = dateBone(descr="dateBone_15", required=True, readOnly=True, visible=True, multiple=True) - # emailBone_0 = emailBone(descr="emailBone_0", required=False, readOnly=False, visible=False, multiple=False) - # emailBone_1 = emailBone(descr="emailBone_1", required=True, readOnly=False, visible=False, multiple=False) - # emailBone_2 = emailBone(descr="emailBone_2", required=False, readOnly=True, visible=False, multiple=False) - # emailBone_3 = emailBone(descr="emailBone_3", required=False, readOnly=False, visible=True, multiple=False) - # emailBone_4 = emailBone(descr="emailBone_4", required=True, readOnly=True, visible=False, multiple=False) - # emailBone_5 = emailBone(descr="emailBone_5", required=True, readOnly=False, visible=True, multiple=False) - # emailBone_6 = emailBone(descr="emailBone_6", required=False, readOnly=True, visible=True, multiple=False) - # emailBone_7 = emailBone(descr="emailBone_7", required=True, readOnly=True, visible=True, multiple=False) - # emailBone_8 = emailBone(descr="emailBone_8", required=False, readOnly=False, visible=False, multiple=True) - # emailBone_9 = emailBone(descr="emailBone_9", required=True, readOnly=False, visible=False, multiple=True) - # emailBone_10 = emailBone(descr="emailBone_10", required=False, readOnly=True, visible=False, multiple=True) - # emailBone_11 = emailBone(descr="emailBone_11", required=False, readOnly=False, visible=True, multiple=True) - # emailBone_12 = emailBone(descr="emailBone_12", required=True, readOnly=True, visible=False, multiple=True) - # emailBone_13 = emailBone(descr="emailBone_13", required=True, readOnly=False, visible=True, multiple=True) - # emailBone_14 = emailBone(descr="emailBone_14", required=False, readOnly=True, visible=True, multiple=True) - # emailBone_15 = emailBone(descr="emailBone_15", required=True, readOnly=True, visible=True, multiple=True) - # fileBone_0 = fileBone(descr="fileBone_0", required=False, readOnly=False, visible=False, multiple=False) - # fileBone_1 = fileBone(descr="fileBone_1", required=True, readOnly=False, visible=False, multiple=False) - # fileBone_2 = fileBone(descr="fileBone_2", required=False, readOnly=True, visible=False, multiple=False) - # fileBone_3 = fileBone(descr="fileBone_3", required=False, readOnly=False, visible=True, multiple=False) - # fileBone_4 = fileBone(descr="fileBone_4", required=True, readOnly=True, visible=False, multiple=False) - # fileBone_5 = fileBone(descr="fileBone_5", required=True, readOnly=False, visible=True, multiple=False) - # fileBone_6 = fileBone(descr="fileBone_6", required=False, readOnly=True, visible=True, multiple=False) - # fileBone_7 = fileBone(descr="fileBone_7", required=True, readOnly=True, visible=True, multiple=False) - # fileBone_8 = fileBone(descr="fileBone_8", required=False, readOnly=False, visible=False, multiple=True) - # fileBone_9 = fileBone(descr="fileBone_9", required=True, readOnly=False, visible=False, multiple=True) - # fileBone_10 = fileBone(descr="fileBone_10", required=False, readOnly=True, visible=False, multiple=True) - # fileBone_11 = fileBone(descr="fileBone_11", required=False, readOnly=False, visible=True, multiple=True) - # fileBone_12 = fileBone(descr="fileBone_12", required=True, readOnly=True, visible=False, multiple=True) - # fileBone_13 = fileBone(descr="fileBone_13", required=True, readOnly=False, visible=True, multiple=True) - # fileBone_14 = fileBone(descr="fileBone_14", required=False, readOnly=True, visible=True, multiple=True) - # fileBone_15 = fileBone(descr="fileBone_15", required=True, readOnly=True, visible=True, multiple=True) - # keyBone_0 = keyBone(descr="keyBone_0", required=False, readOnly=False, visible=False, multiple=False) - # keyBone_1 = keyBone(descr="keyBone_1", required=True, readOnly=False, visible=False, multiple=False) - # keyBone_2 = keyBone(descr="keyBone_2", required=False, readOnly=True, visible=False, multiple=False) - # keyBone_3 = keyBone(descr="keyBone_3", required=False, readOnly=False, visible=True, multiple=False) - # keyBone_4 = keyBone(descr="keyBone_4", required=True, readOnly=True, visible=False, multiple=False) - # keyBone_5 = keyBone(descr="keyBone_5", required=True, readOnly=False, visible=True, multiple=False) - # keyBone_6 = keyBone(descr="keyBone_6", required=False, readOnly=True, visible=True, multiple=False) - # keyBone_7 = keyBone(descr="keyBone_7", required=True, readOnly=True, visible=True, multiple=False) - # keyBone_8 = keyBone(descr="keyBone_8", required=False, readOnly=False, visible=False, multiple=True) - # keyBone_9 = keyBone(descr="keyBone_9", required=True, readOnly=False, visible=False, multiple=True) - # keyBone_10 = keyBone(descr="keyBone_10", required=False, readOnly=True, visible=False, multiple=True) - # keyBone_11 = keyBone(descr="keyBone_11", required=False, readOnly=False, visible=True, multiple=True) - # keyBone_12 = keyBone(descr="keyBone_12", required=True, readOnly=True, visible=False, multiple=True) - # keyBone_13 = keyBone(descr="keyBone_13", required=True, readOnly=False, visible=True, multiple=True) - # keyBone_14 = keyBone(descr="keyBone_14", required=False, readOnly=True, visible=True, multiple=True) - # keyBone_15 = keyBone(descr="keyBone_15", required=True, readOnly=True, visible=True, multiple=True) - numericBone_0 = numericBone(descr="numericBone_0", required=False, readOnly=False, visible=False, multiple=False) - # numericBone_1 = numericBone(descr="numericBone_1", required=True, readOnly=False, visible=False, multiple=False) - numericBone_2 = numericBone(descr="numericBone_2", required=False, readOnly=True, visible=False, multiple=False) - numericBone_3 = numericBone(descr="numericBone_3", required=False, readOnly=False, visible=True, multiple=False) - # numericBone_4 = numericBone(descr="numericBone_4", required=True, readOnly=True, visible=False, multiple=False) - numericBone_5 = numericBone(descr="numericBone_5", required=True, readOnly=False, visible=True, multiple=False) - numericBone_6 = numericBone(descr="numericBone_6", required=False, readOnly=True, visible=True, multiple=False) - numericBone_7 = numericBone(descr="numericBone_7", required=True, readOnly=True, visible=True, multiple=False) - numericBone_8 = numericBone(descr="numericBone_8", required=False, readOnly=False, visible=False, multiple=True) - # numericBone_9 = numericBone(descr="numericBone_9", required=True, readOnly=False, visible=False, multiple=True) - numericBone_10 = numericBone(descr="numericBone_10", required=False, readOnly=True, visible=False, multiple=True) - numericBone_11 = numericBone(descr="numericBone_11", required=False, readOnly=False, visible=True, multiple=True) - # numericBone_12 = numericBone(descr="numericBone_12", required=True, readOnly=True, visible=False, multiple=True) - numericBone_13 = numericBone(descr="numericBone_13", required=True, readOnly=False, visible=True, multiple=True) - numericBone_14 = numericBone(descr="numericBone_14", required=False, readOnly=True, visible=True, multiple=True) - numericBone_15 = numericBone(descr="numericBone_15", required=True, readOnly=True, visible=True, multiple=True) - # passwordBone_0 = passwordBone(descr="passwordBone_0", required=False, readOnly=False, visible=False, multiple=False) - # passwordBone_1 = passwordBone(descr="passwordBone_1", required=True, readOnly=False, visible=False, multiple=False) - # passwordBone_2 = passwordBone(descr="passwordBone_2", required=False, readOnly=True, visible=False, multiple=False) - # passwordBone_3 = passwordBone(descr="passwordBone_3", required=False, readOnly=False, visible=True, multiple=False) - # passwordBone_4 = passwordBone(descr="passwordBone_4", required=True, readOnly=True, visible=False, multiple=False) - # passwordBone_5 = passwordBone(descr="passwordBone_5", required=True, readOnly=False, visible=True, multiple=False) - # passwordBone_6 = passwordBone(descr="passwordBone_6", required=False, readOnly=True, visible=True, multiple=False) - # passwordBone_7 = passwordBone(descr="passwordBone_7", required=True, readOnly=True, visible=True, multiple=False) - # passwordBone_8 = passwordBone(descr="passwordBone_8", required=False, readOnly=False, visible=False, multiple=True) - # passwordBone_9 = passwordBone(descr="passwordBone_9", required=True, readOnly=False, visible=False, multiple=True) - # passwordBone_10 = passwordBone(descr="passwordBone_10", required=False, readOnly=True, visible=False, multiple=True) - # passwordBone_11 = passwordBone(descr="passwordBone_11", required=False, readOnly=False, visible=True, multiple=True) - # passwordBone_12 = passwordBone(descr="passwordBone_12", required=True, readOnly=True, visible=False, multiple=True) - # passwordBone_13 = passwordBone(descr="passwordBone_13", required=True, readOnly=False, visible=True, multiple=True) - # passwordBone_14 = passwordBone(descr="passwordBone_14", required=False, readOnly=True, visible=True, multiple=True) - # passwordBone_15 = passwordBone(descr="passwordBone_15", required=True, readOnly=True, visible=True, multiple=True) - # # randomSliceBone_0 = randomSliceBone(descr="randomSliceBone_0", required=False, readOnly=False, visible=False, multiple=False) - # # randomSliceBone_1 = randomSliceBone(descr="randomSliceBone_1", required=True, readOnly=False, visible=False, multiple=False) - # randomSliceBone_2 = randomSliceBone(descr="randomSliceBone_2", required=False, readOnly=True, visible=False, multiple=False) - # # randomSliceBone_3 = randomSliceBone(descr="randomSliceBone_3", required=False, readOnly=False, visible=True, multiple=False) - # randomSliceBone_4 = randomSliceBone(descr="randomSliceBone_4", required=True, readOnly=True, visible=False, multiple=False) - # # randomSliceBone_5 = randomSliceBone(descr="randomSliceBone_5", required=True, readOnly=False, visible=True, multiple=False) - # # randomSliceBone_6 = randomSliceBone(descr="randomSliceBone_6", required=False, readOnly=True, visible=True, multiple=False) - # # randomSliceBone_7 = randomSliceBone(descr="randomSliceBone_7", required=True, readOnly=True, visible=True, multiple=False) - # # randomSliceBone_8 = randomSliceBone(descr="randomSliceBone_8", required=False, readOnly=False, visible=False, multiple=True) - # # randomSliceBone_9 = randomSliceBone(descr="randomSliceBone_9", required=True, readOnly=False, visible=False, multiple=True) - # randomSliceBone_10 = randomSliceBone(descr="randomSliceBone_10", required=False, readOnly=True, visible=False, multiple=True) - # # randomSliceBone_11 = randomSliceBone(descr="randomSliceBone_11", required=False, readOnly=False, visible=True, multiple=True) - # randomSliceBone_12 = randomSliceBone(descr="randomSliceBone_12", required=True, readOnly=True, visible=False, multiple=True) - # # randomSliceBone_13 = randomSliceBone(descr="randomSliceBone_13", required=True, readOnly=False, visible=True, multiple=True) - # # randomSliceBone_14 = randomSliceBone(descr="randomSliceBone_14", required=False, readOnly=True, visible=True, multiple=True) - # # randomSliceBone_15 = randomSliceBone(descr="randomSliceBone_15", required=True, readOnly=True, visible=True, multiple=True) - # # recordBone_0 = recordBone(descr="recordBone_0", required=False, readOnly=False, visible=False, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - # # recordBone_1 = recordBone(descr="recordBone_1", required=True, readOnly=False, visible=False, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - # # recordBone_2 = recordBone(descr="recordBone_2", required=False, readOnly=True, visible=False, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - # # recordBone_3 = recordBone(descr="recordBone_3", required=False, readOnly=False, visible=True, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - # # recordBone_4 = recordBone(descr="recordBone_4", required=True, readOnly=True, visible=False, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - # # recordBone_5 = recordBone(descr="recordBone_5", required=True, readOnly=False, visible=True, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - # # recordBone_6 = recordBone(descr="recordBone_6", required=False, readOnly=True, visible=True, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - # # recordBone_7 = recordBone(descr="recordBone_7", required=True, readOnly=True, visible=True, multiple=False, using=StringRelSkel, format="$(lat) - $(lng)") - recordBone_8 = recordBone(descr="recordBone_8", required=False, readOnly=False, visible=False, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - # recordBone_9 = recordBone(descr="recordBone_9", required=True, readOnly=False, visible=False, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - recordBone_10 = recordBone(descr="recordBone_10", required=False, readOnly=True, visible=False, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - recordBone_11 = recordBone(descr="recordBone_11", required=False, readOnly=False, visible=True, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - # recordBone_12 = recordBone(descr="recordBone_12", required=True, readOnly=True, visible=False, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - recordBone_13 = recordBone(descr="recordBone_13", required=True, readOnly=False, visible=True, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - recordBone_14 = recordBone(descr="recordBone_14", required=False, readOnly=True, visible=True, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - recordBone_15 = recordBone(descr="recordBone_15", required=True, readOnly=True, visible=True, multiple=True, using=StringRelSkel, format="$(lat) - $(lng)") - relationalBone_0 = relationalBone(descr="relationalBone_0", required=False, readOnly=False, visible=False, multiple=False, module="feedentry", kind="feedentry") - # relationalBone_1 = relationalBone(descr="relationalBone_1", required=True, readOnly=False, visible=False, multiple=False, module="feedentry", kind="feedentry") - relationalBone_2 = relationalBone(descr="relationalBone_2", required=False, readOnly=True, visible=False, multiple=False, module="feedentry", kind="feedentry") - relationalBone_3 = relationalBone(descr="relationalBone_3", required=False, readOnly=False, visible=True, multiple=False, module="feedentry", kind="feedentry") - # relationalBone_4 = relationalBone(descr="relationalBone_4", required=True, readOnly=True, visible=False, multiple=False, module="feedentry", kind="feedentry") - relationalBone_5 = relationalBone(descr="relationalBone_5", required=True, readOnly=False, visible=True, multiple=False, module="feedentry", kind="feedentry") - relationalBone_6 = relationalBone(descr="relationalBone_6", required=False, readOnly=True, visible=True, multiple=False, module="feedentry", kind="feedentry") - relationalBone_7 = relationalBone(descr="relationalBone_7", required=True, readOnly=True, visible=True, multiple=False, module="feedentry", kind="feedentry") - relationalBone_8 = relationalBone(descr="relationalBone_8", required=False, readOnly=False, visible=False, multiple=True, module="feedentry", kind="feedentry") - # relationalBone_9 = relationalBone(descr="relationalBone_9", required=True, readOnly=False, visible=False, multiple=True, module="feedentry", kind="feedentry") - relationalBone_10 = relationalBone(descr="relationalBone_10", required=False, readOnly=True, visible=False, multiple=True, module="feedentry", kind="feedentry") - relationalBone_11 = relationalBone(descr="relationalBone_11", required=False, readOnly=False, visible=True, multiple=True, module="feedentry", kind="feedentry") - # relationalBone_12 = relationalBone(descr="relationalBone_12", required=True, readOnly=True, visible=False, multiple=True, module="feedentry", kind="feedentry") - relationalBone_13 = relationalBone(descr="relationalBone_13", required=True, readOnly=False, visible=True, multiple=True, module="feedentry", kind="feedentry") - relationalBone_14 = relationalBone(descr="relationalBone_14", required=False, readOnly=True, visible=True, multiple=True, module="feedentry", kind="feedentry") - relationalBone_15 = relationalBone(descr="relationalBone_15", required=True, readOnly=True, visible=True, multiple=True, module="feedentry", kind="feedentry") - relationalBone_16 = relationalBone(descr="relationalBone_16", required=True, readOnly=True, visible=True, multiple=True, module="feedentry", kind="feedentry") - relationalBone_17 = relationalBone(descr="relationalBone_17", required=True, readOnly=False, visible=True, multiple=True, module="feedentry", kind="feedentry", using=StringRelSkel) - selectBone_0 = selectBone(descr="selectBone_0", required=False, readOnly=False, visible=False, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - # selectBone_1 = selectBone(descr="selectBone_1", required=True, readOnly=False, visible=False, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_2 = selectBone(descr="selectBone_2", required=False, readOnly=True, visible=False, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_3 = selectBone(descr="selectBone_3", required=False, readOnly=False, visible=True, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - # selectBone_4 = selectBone(descr="selectBone_4", required=True, readOnly=True, visible=False, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_5 = selectBone(descr="selectBone_5", required=True, readOnly=False, visible=True, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_6 = selectBone(descr="selectBone_6", required=False, readOnly=True, visible=True, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_7 = selectBone(descr="selectBone_7", required=True, readOnly=True, visible=True, multiple=False, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_8 = selectBone(descr="selectBone_8", required=False, readOnly=False, visible=False, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - # selectBone_9 = selectBone(descr="selectBone_9", required=True, readOnly=False, visible=False, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_10 = selectBone(descr="selectBone_10", required=False, readOnly=True, visible=False, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_11 = selectBone(descr="selectBone_11", required=False, readOnly=False, visible=True, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - # selectBone_12 = selectBone(descr="selectBone_12", required=True, readOnly=True, visible=False, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_13 = selectBone(descr="selectBone_13", required=True, readOnly=False, visible=True, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_14 = selectBone(descr="selectBone_14", required=False, readOnly=True, visible=True, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - selectBone_15 = selectBone(descr="selectBone_15", required=True, readOnly=True, visible=True, multiple=True, values={'true': '"Option A"', 'false': '"Option B"'}) - # selectCountryBone_0 = selectCountryBone(descr="selectCountryBone_0", required=False, readOnly=False, visible=False, multiple=False) - # selectCountryBone_1 = selectCountryBone(descr="selectCountryBone_1", required=True, readOnly=False, visible=False, multiple=False) - # selectCountryBone_2 = selectCountryBone(descr="selectCountryBone_2", required=False, readOnly=True, visible=False, multiple=False) - # selectCountryBone_3 = selectCountryBone(descr="selectCountryBone_3", required=False, readOnly=False, visible=True, multiple=False) - # selectCountryBone_4 = selectCountryBone(descr="selectCountryBone_4", required=True, readOnly=True, visible=False, multiple=False) - # selectCountryBone_5 = selectCountryBone(descr="selectCountryBone_5", required=True, readOnly=False, visible=True, multiple=False) - # selectCountryBone_6 = selectCountryBone(descr="selectCountryBone_6", required=False, readOnly=True, visible=True, multiple=False) - # selectCountryBone_7 = selectCountryBone(descr="selectCountryBone_7", required=True, readOnly=True, visible=True, multiple=False) - # selectCountryBone_8 = selectCountryBone(descr="selectCountryBone_8", required=False, readOnly=False, visible=False, multiple=True) - # selectCountryBone_9 = selectCountryBone(descr="selectCountryBone_9", required=True, readOnly=False, visible=False, multiple=True) - # selectCountryBone_10 = selectCountryBone(descr="selectCountryBone_10", required=False, readOnly=True, visible=False, multiple=True) - # selectCountryBone_11 = selectCountryBone(descr="selectCountryBone_11", required=False, readOnly=False, visible=True, multiple=True) - # selectCountryBone_12 = selectCountryBone(descr="selectCountryBone_12", required=True, readOnly=True, visible=False, multiple=True) - # selectCountryBone_13 = selectCountryBone(descr="selectCountryBone_13", required=True, readOnly=False, visible=True, multiple=True) - # selectCountryBone_14 = selectCountryBone(descr="selectCountryBone_14", required=False, readOnly=True, visible=True, multiple=True) - # selectCountryBone_15 = selectCountryBone(descr="selectCountryBone_15", required=True, readOnly=True, visible=True, multiple=True) - # spatialBone_0 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_0", required=False, readOnly=False, visible=False, multiple=False) - # spatialBone_1 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_1", required=True, readOnly=False, visible=False, multiple=False) - # spatialBone_2 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_2", required=False, readOnly=True, visible=False, multiple=False) - # spatialBone_3 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_3", required=False, readOnly=False, visible=True, multiple=False) - # spatialBone_4 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_4", required=True, readOnly=True, visible=False, multiple=False) - # spatialBone_5 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_5", required=True, readOnly=False, visible=True, multiple=False) - # spatialBone_6 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_6", required=False, readOnly=True, visible=True, multiple=False) - # spatialBone_7 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_7", required=True, readOnly=True, visible=True, multiple=False) - # spatialBone_8 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_8", required=False, readOnly=False, visible=False, multiple=True) - # spatialBone_9 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_9", required=True, readOnly=False, visible=False, multiple=True) - # spatialBone_10 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_10", required=False, readOnly=True, visible=False, multiple=True) - # spatialBone_11 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_11", required=False, readOnly=False, visible=True, multiple=True) - # spatialBone_12 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_12", required=True, readOnly=True, visible=False, multiple=True) - # spatialBone_13 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_13", required=True, readOnly=False, visible=True, multiple=True) - # spatialBone_14 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_14", required=False, readOnly=True, visible=True, multiple=True) - # spatialBone_15 = spatialBone((50, 57), (7, 0), (10, 10), descr="spatialBone_15", required=True, readOnly=True, visible=True, multiple=True) - stringBone_0 = stringBone(descr="stringBone_0", required=False, readOnly=False, visible=False, multiple=False) - # stringBone_1 = stringBone(descr="stringBone_1", required=True, readOnly=False, visible=False, multiple=False) - stringBone_2 = stringBone(descr="stringBone_2", required=False, readOnly=True, visible=False, multiple=False) - stringBone_3 = stringBone(descr="stringBone_3", required=False, readOnly=False, visible=True, multiple=False) - # stringBone_4 = stringBone(descr="stringBone_4", required=True, readOnly=True, visible=False, multiple=False) - stringBone_5 = stringBone(descr="stringBone_5", required=True, readOnly=False, visible=True, multiple=False) - stringBone_6 = stringBone(descr="stringBone_6", required=False, readOnly=True, visible=True, multiple=False) - stringBone_7 = stringBone(descr="stringBone_7", required=True, readOnly=True, visible=True, multiple=False) - stringBone_8 = stringBone(descr="stringBone_8", required=False, readOnly=False, visible=False, multiple=True) - # stringBone_9 = stringBone(descr="stringBone_9", required=True, readOnly=False, visible=False, multiple=True) - stringBone_10 = stringBone(descr="stringBone_10", required=False, readOnly=True, visible=False, multiple=True) - stringBone_11 = stringBone(descr="stringBone_11", required=False, readOnly=False, visible=True, multiple=True) - # stringBone_12 = stringBone(descr="stringBone_12", required=True, readOnly=True, visible=False, multiple=True) - stringBone_13 = stringBone(descr="stringBone_13", required=True, readOnly=False, visible=True, multiple=True) - stringBone_14 = stringBone(descr="stringBone_14", required=False, readOnly=True, visible=True, multiple=True) - stringBone_15 = stringBone(descr="stringBone_15", required=True, readOnly=True, visible=True, multiple=True) - # treeLeafBone_0 = treeLeafBone(descr="treeLeafBone_0", required=False, readOnly=False, visible=False, multiple=False, module="file", kind="file") - # treeLeafBone_1 = treeLeafBone(descr="treeLeafBone_1", required=True, readOnly=False, visible=False, multiple=False, module="file", kind="file") - # treeLeafBone_2 = treeLeafBone(descr="treeLeafBone_2", required=False, readOnly=True, visible=False, multiple=False, module="file", kind="file") - # treeLeafBone_3 = treeLeafBone(descr="treeLeafBone_3", required=False, readOnly=False, visible=True, multiple=False, module="file", kind="file") - # treeLeafBone_4 = treeLeafBone(descr="treeLeafBone_4", required=True, readOnly=True, visible=False, multiple=False, module="file", kind="file") - # treeLeafBone_5 = treeLeafBone(descr="treeLeafBone_5", required=True, readOnly=False, visible=True, multiple=False, module="file", kind="file") - # treeLeafBone_6 = treeLeafBone(descr="treeLeafBone_6", required=False, readOnly=True, visible=True, multiple=False, module="file", kind="file") - # treeLeafBone_7 = treeLeafBone(descr="treeLeafBone_7", required=True, readOnly=True, visible=True, multiple=False, module="file", kind="file") - # treeLeafBone_8 = treeLeafBone(descr="treeLeafBone_8", required=False, readOnly=False, visible=False, multiple=True, module="file", kind="file") - # treeLeafBone_9 = treeLeafBone(descr="treeLeafBone_9", required=True, readOnly=False, visible=False, multiple=True, module="file", kind="file") - # treeLeafBone_10 = treeLeafBone(descr="treeLeafBone_10", required=False, readOnly=True, visible=False, multiple=True, module="file", kind="file") - # treeLeafBone_11 = treeLeafBone(descr="treeLeafBone_11", required=False, readOnly=False, visible=True, multiple=True, module="file", kind="file") - # treeLeafBone_12 = treeLeafBone(descr="treeLeafBone_12", required=True, readOnly=True, visible=False, multiple=True, module="file", kind="file") - # treeLeafBone_13 = treeLeafBone(descr="treeLeafBone_13", required=True, readOnly=False, visible=True, multiple=True, module="file", kind="file") - # treeLeafBone_14 = treeLeafBone(descr="treeLeafBone_14", required=False, readOnly=True, visible=True, multiple=True, module="file", kind="file") - # treeLeafBone_15 = treeLeafBone(descr="treeLeafBone_15", required=True, readOnly=True, visible=True, multiple=True, module="file", kind="file") - # treeNodeBone_0 = treeNodeBone(descr="treeNodeBone_0", required=False, readOnly=False, visible=False, multiple=False, module="file", kind="file") - # treeNodeBone_1 = treeNodeBone(descr="treeNodeBone_1", required=True, readOnly=False, visible=False, multiple=False, module="file", kind="file") - # treeNodeBone_2 = treeNodeBone(descr="treeNodeBone_2", required=False, readOnly=True, visible=False, multiple=False, module="file", kind="file") - # treeNodeBone_3 = treeNodeBone(descr="treeNodeBone_3", required=False, readOnly=False, visible=True, multiple=False, module="file", kind="file") - # treeNodeBone_4 = treeNodeBone(descr="treeNodeBone_4", required=True, readOnly=True, visible=False, multiple=False, module="file", kind="file") - # treeNodeBone_5 = treeNodeBone(descr="treeNodeBone_5", required=True, readOnly=False, visible=True, multiple=False, module="file", kind="file") - # treeNodeBone_6 = treeNodeBone(descr="treeNodeBone_6", required=False, readOnly=True, visible=True, multiple=False, module="file", kind="file") - # treeNodeBone_7 = treeNodeBone(descr="treeNodeBone_7", required=True, readOnly=True, visible=True, multiple=False, module="file", kind="file") - # treeNodeBone_8 = treeNodeBone(descr="treeNodeBone_8", required=False, readOnly=False, visible=False, multiple=True, module="file", kind="file") - # treeNodeBone_9 = treeNodeBone(descr="treeNodeBone_9", required=True, readOnly=False, visible=False, multiple=True, module="file", kind="file") - # treeNodeBone_10 = treeNodeBone(descr="treeNodeBone_10", required=False, readOnly=True, visible=False, multiple=True, module="file", kind="file") - # treeNodeBone_11 = treeNodeBone(descr="treeNodeBone_11", required=False, readOnly=False, visible=True, multiple=True, module="file", kind="file") - # treeNodeBone_12 = treeNodeBone(descr="treeNodeBone_12", required=True, readOnly=True, visible=False, multiple=True, module="file", kind="file") - # treeNodeBone_13 = treeNodeBone(descr="treeNodeBone_13", required=True, readOnly=False, visible=True, multiple=True, module="file", kind="file") - # treeNodeBone_14 = treeNodeBone(descr="treeNodeBone_14", required=False, readOnly=True, visible=True, multiple=True, module="file", kind="file") - # treeNodeBone_15 = treeNodeBone(descr="treeNodeBone_15", required=True, readOnly=True, visible=True, multiple=True, module="file", kind="file") - # userBone_0 = userBone(descr="userBone_0", required=False, readOnly=False, visible=False, multiple=False) - # userBone_1 = userBone(descr="userBone_1", required=True, readOnly=False, visible=False, multiple=False) - # userBone_2 = userBone(descr="userBone_2", required=False, readOnly=True, visible=False, multiple=False) - # userBone_3 = userBone(descr="userBone_3", required=False, readOnly=False, visible=True, multiple=False) - # userBone_4 = userBone(descr="userBone_4", required=True, readOnly=True, visible=False, multiple=False) - # userBone_5 = userBone(descr="userBone_5", required=True, readOnly=False, visible=True, multiple=False) - # userBone_6 = userBone(descr="userBone_6", required=False, readOnly=True, visible=True, multiple=False) - # userBone_7 = userBone(descr="userBone_7", required=True, readOnly=True, visible=True, multiple=False) - # userBone_8 = userBone(descr="userBone_8", required=False, readOnly=False, visible=False, multiple=True) - # userBone_9 = userBone(descr="userBone_9", required=True, readOnly=False, visible=False, multiple=True) - # userBone_10 = userBone(descr="userBone_10", required=False, readOnly=True, visible=False, multiple=True) - # userBone_11 = userBone(descr="userBone_11", required=False, readOnly=False, visible=True, multiple=True) - # userBone_12 = userBone(descr="userBone_12", required=True, readOnly=True, visible=False, multiple=True) - # userBone_13 = userBone(descr="userBone_13", required=True, readOnly=False, visible=True, multiple=True) - # userBone_14 = userBone(descr="userBone_14", required=False, readOnly=True, visible=True, multiple=True) - # userBone_15 = userBone(descr="userBone_15", required=True, readOnly=True, visible=True, multiple=True) diff --git a/viur-project.md b/viur-project.md index a0ac63b..48f645d 100644 --- a/viur-project.md +++ b/viur-project.md @@ -23,6 +23,37 @@ After that, you always can locally fire-up your new ViUR project with `pipenv ru To deploy your project, use `pipenv run viur deploy app`, with additional options. +## Setting up Google Login + +1. https://console.cloud.google.com/apis/credentials/consent?project={{app_id}} +2. Internal -> Create +3. App name: "{{app_id}}" or your project's name +4. User-support email (your Gcloud account mail) +5. Authorized domain 1: {{app_id}}.appspot.com +6. Developer contact: (you contact mail) +7. Save & continue +8. https://console.cloud.google.com/apis/credentials/oauthclient?project={{app_id}} +9. "Web Application" - "Web client 1" +10. Configure authorized JavaScript origins + - https://{{app_id}}.appspot.com + - http://localhost:8080 + - http://localhost:8081 (for VueJS development) + - http://localhost:8082 (for VueJS development) + - http://localhost +11. Configure authorized redirect URIs + - https://{{app_id}}.appspot.com + - http://localhost:8080 + - http://localhost:8081 (for VueJS development) + - http://localhost:8082 (for VueJS development) + - http://localhost +12. Create +13. Copy the client id and assign it to `conf.user.google_client_id` in `main.py` or, + when you have multiple projects with the same code-base, you can also store this client id as a secret value and use the same + identifier. To do this, follow these steps: + - https://console.cloud.google.com/security/secret-manager/create?project={{app_id}} + - Name: google-clientid + - Paste copyied client id and set `conf.user.google_client_id = secret.get("google-clientid")` in your `main.py` +14. Optionally set `conf.user.google_gsuite_domains` to authorized Gsuite domains that allow for User registration in your project ## Contact