新增Local App和Local Marketplace
This commit is contained in:
parent
057d8164f5
commit
d962ea476a
0
jcloud/jcloud/pagetype/local_app/__init__.py
Normal file
0
jcloud/jcloud/pagetype/local_app/__init__.py
Normal file
8
jcloud/jcloud/pagetype/local_app/local_app.js
Normal file
8
jcloud/jcloud/pagetype/local_app/local_app.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
// Copyright (c) 2025, Jingrow and contributors
|
||||||
|
// For license information, please see license.txt
|
||||||
|
|
||||||
|
// jingrow.ui.form.on("Local App", {
|
||||||
|
// refresh(frm) {
|
||||||
|
|
||||||
|
// },
|
||||||
|
// });
|
||||||
151
jcloud/jcloud/pagetype/local_app/local_app.json
Normal file
151
jcloud/jcloud/pagetype/local_app/local_app.json
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
{
|
||||||
|
"actions": [],
|
||||||
|
"allow_rename": 1,
|
||||||
|
"creation": "2025-10-22 15:50:31.087391",
|
||||||
|
"editable_grid": 1,
|
||||||
|
"engine": "InnoDB",
|
||||||
|
"field_order": [
|
||||||
|
"title",
|
||||||
|
"enabled",
|
||||||
|
"column_break_5",
|
||||||
|
"category",
|
||||||
|
"public",
|
||||||
|
"section_break_9",
|
||||||
|
"url",
|
||||||
|
"branch",
|
||||||
|
"repo_owner",
|
||||||
|
"repo",
|
||||||
|
"column_break_wbyw",
|
||||||
|
"team",
|
||||||
|
"installation",
|
||||||
|
"enable_auto_deploy",
|
||||||
|
"skip_review"
|
||||||
|
],
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldname": "branch",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Branch",
|
||||||
|
"set_only_once": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "url",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Repository URL",
|
||||||
|
"set_only_once": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "repo_owner",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Repository Owner"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "team",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Team",
|
||||||
|
"options": "Team"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "installation",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Installation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "public",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Public"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "repo",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Repository"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_5",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_9",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "enable_auto_deploy",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Enable Auto Deploy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "skip_review",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Skip Review"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "1",
|
||||||
|
"fieldname": "enabled",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Enabled"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "title",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"in_standard_filter": 1,
|
||||||
|
"label": "Title",
|
||||||
|
"reqd": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "category",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Category",
|
||||||
|
"options": "Marketplace App Category"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_wbyw",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"links": [],
|
||||||
|
"modified": "2025-10-22 18:10:13.615747",
|
||||||
|
"modified_by": "Administrator",
|
||||||
|
"module": "Jcloud",
|
||||||
|
"name": "Local App",
|
||||||
|
"owner": "Administrator",
|
||||||
|
"pagetype": "PageType",
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"delete": 1,
|
||||||
|
"email": 1,
|
||||||
|
"export": 1,
|
||||||
|
"print": 1,
|
||||||
|
"read": 1,
|
||||||
|
"report": 1,
|
||||||
|
"role": "System Manager",
|
||||||
|
"share": 1,
|
||||||
|
"write": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"read": 1,
|
||||||
|
"role": "Jcloud Admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"read": 1,
|
||||||
|
"role": "Jcloud Member"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"row_format": "Dynamic",
|
||||||
|
"sort_field": "modified",
|
||||||
|
"sort_order": "DESC",
|
||||||
|
"states": [],
|
||||||
|
"title_field": "title",
|
||||||
|
"track_changes": 1
|
||||||
|
}
|
||||||
30
jcloud/jcloud/pagetype/local_app/local_app.py
Normal file
30
jcloud/jcloud/pagetype/local_app/local_app.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Copyright (c) 2025, Jingrow and contributors
|
||||||
|
# For license information, please see license.txt
|
||||||
|
|
||||||
|
# import jingrow
|
||||||
|
from jingrow.model.page import Page
|
||||||
|
|
||||||
|
|
||||||
|
class LocalApp(Page):
|
||||||
|
# begin: auto-generated types
|
||||||
|
# This code is auto-generated. Do not modify anything in this block.
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from jingrow.types import DF
|
||||||
|
|
||||||
|
branch: DF.Data | None
|
||||||
|
category: DF.Link | None
|
||||||
|
enable_auto_deploy: DF.Check
|
||||||
|
enabled: DF.Check
|
||||||
|
installation: DF.Data | None
|
||||||
|
public: DF.Check
|
||||||
|
repo: DF.Data | None
|
||||||
|
repo_owner: DF.Data | None
|
||||||
|
skip_review: DF.Check
|
||||||
|
team: DF.Link | None
|
||||||
|
title: DF.Data
|
||||||
|
url: DF.Data | None
|
||||||
|
# end: auto-generated types
|
||||||
|
pass
|
||||||
9
jcloud/jcloud/pagetype/local_app/test_local_app.py
Normal file
9
jcloud/jcloud/pagetype/local_app/test_local_app.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Copyright (c) 2025, Jingrow and Contributors
|
||||||
|
# See license.txt
|
||||||
|
|
||||||
|
# import jingrow
|
||||||
|
from jingrow.tests.utils import JingrowTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class TestLocalApp(JingrowTestCase):
|
||||||
|
pass
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
// Copyright (c) 2025, Jingrow and contributors
|
||||||
|
// For license information, please see license.txt
|
||||||
|
|
||||||
|
// jingrow.ui.form.on("Local Marketplace", {
|
||||||
|
// refresh(frm) {
|
||||||
|
|
||||||
|
// },
|
||||||
|
// });
|
||||||
458
jcloud/jcloud/pagetype/local_marketplace/local_marketplace.json
Normal file
458
jcloud/jcloud/pagetype/local_marketplace/local_marketplace.json
Normal file
@ -0,0 +1,458 @@
|
|||||||
|
{
|
||||||
|
"actions": [],
|
||||||
|
"allow_guest_to_view": 1,
|
||||||
|
"allow_rename": 1,
|
||||||
|
"creation": "2024-12-19 10:00:00",
|
||||||
|
"editable_grid": 1,
|
||||||
|
"engine": "InnoDB",
|
||||||
|
"field_order": [
|
||||||
|
"image",
|
||||||
|
"app",
|
||||||
|
"title",
|
||||||
|
"column_break_3",
|
||||||
|
"team",
|
||||||
|
"route",
|
||||||
|
"section_break_7",
|
||||||
|
"jingrow_approved",
|
||||||
|
"subscription_type",
|
||||||
|
"subscription_level",
|
||||||
|
"column_break_10",
|
||||||
|
"categories",
|
||||||
|
"published",
|
||||||
|
"section_break_5",
|
||||||
|
"sources",
|
||||||
|
"descriptions_tab",
|
||||||
|
"description",
|
||||||
|
"app_screenshots_section",
|
||||||
|
"screenshots",
|
||||||
|
"section_break_15",
|
||||||
|
"long_description",
|
||||||
|
"links_section",
|
||||||
|
"website",
|
||||||
|
"support",
|
||||||
|
"documentation",
|
||||||
|
"column_break_16",
|
||||||
|
"privacy_policy",
|
||||||
|
"terms_of_service",
|
||||||
|
"saas_tab",
|
||||||
|
"outgoing_email",
|
||||||
|
"outgoing_sender_name",
|
||||||
|
"signup_email_template_section",
|
||||||
|
"message",
|
||||||
|
"column_break_32",
|
||||||
|
"signature",
|
||||||
|
"column_break_30",
|
||||||
|
"subject",
|
||||||
|
"poll_method",
|
||||||
|
"column_break_33",
|
||||||
|
"custom_verify_template",
|
||||||
|
"subscription_update_hook",
|
||||||
|
"site_config_section",
|
||||||
|
"site_config",
|
||||||
|
"scripts_tab",
|
||||||
|
"run_after_install_script",
|
||||||
|
"after_install_script",
|
||||||
|
"run_after_uninstall_script",
|
||||||
|
"after_uninstall_script",
|
||||||
|
"review_tab",
|
||||||
|
"stop_auto_review",
|
||||||
|
"review_stage",
|
||||||
|
"status",
|
||||||
|
"dashboard_tab",
|
||||||
|
"onboarding_related_section",
|
||||||
|
"show_for_site_creation",
|
||||||
|
"localisation_apps",
|
||||||
|
"section_break_tlpw",
|
||||||
|
"average_rating"
|
||||||
|
],
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"fieldname": "image",
|
||||||
|
"fieldtype": "Attach Image",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Image"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fetch_from": "app.title",
|
||||||
|
"fetch_if_empty": 1,
|
||||||
|
"fieldname": "title",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"label": "Title",
|
||||||
|
"reqd": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_3",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "Draft",
|
||||||
|
"fieldname": "status",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"in_standard_filter": 1,
|
||||||
|
"label": "Status",
|
||||||
|
"options": "Draft\nPublished\nIn Review\nAttention Required\nRejected\nDisabled"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_5",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "Please add a short description about your app here...",
|
||||||
|
"fieldname": "description",
|
||||||
|
"fieldtype": "Small Text",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"label": "Description",
|
||||||
|
"reqd": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "long_description",
|
||||||
|
"fieldtype": "Text Editor",
|
||||||
|
"label": "Long Description"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "links_section",
|
||||||
|
"fieldtype": "Tab Break",
|
||||||
|
"label": "Support Links"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "website",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Website",
|
||||||
|
"options": "URL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "support",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Support",
|
||||||
|
"options": "URL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "privacy_policy",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Privacy Policy",
|
||||||
|
"options": "URL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "documentation",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Documentation",
|
||||||
|
"options": "URL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "terms_of_service",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Terms of Service",
|
||||||
|
"options": "URL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "route",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Route"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "published",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Published",
|
||||||
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "app",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "App",
|
||||||
|
"options": "App",
|
||||||
|
"reqd": 1,
|
||||||
|
"unique": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_16",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "team",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"in_standard_filter": 1,
|
||||||
|
"label": "Team",
|
||||||
|
"options": "Team"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "sources",
|
||||||
|
"fieldtype": "Table",
|
||||||
|
"label": "Sources",
|
||||||
|
"options": "Marketplace App Version"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "app_screenshots_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "App Screenshots"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "screenshots",
|
||||||
|
"fieldtype": "Table",
|
||||||
|
"label": "Screenshots",
|
||||||
|
"options": "Marketplace App Screenshot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_15",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "categories",
|
||||||
|
"fieldtype": "Table",
|
||||||
|
"label": "Categories",
|
||||||
|
"options": "Marketplace App Categories"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "Free",
|
||||||
|
"fieldname": "subscription_type",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"in_standard_filter": 1,
|
||||||
|
"label": "Subscription Type",
|
||||||
|
"options": "Free\nPaid\nFreemium"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "signup_email_template_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Signup Email Template"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "custom_verify_template",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Use custom verify template"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "subject",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Subject"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "message",
|
||||||
|
"fieldtype": "Text Editor",
|
||||||
|
"label": "Message"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "signature",
|
||||||
|
"fieldtype": "Text Editor",
|
||||||
|
"label": "Signature"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "poll_method",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Poll Method"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "subscription_update_hook",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Subscription Update Hook"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "saas_tab",
|
||||||
|
"fieldtype": "Tab Break",
|
||||||
|
"label": "SaaS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_32",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_30",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_33",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "descriptions_tab",
|
||||||
|
"fieldtype": "Tab Break",
|
||||||
|
"label": "Descriptions"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_7",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "column_break_10",
|
||||||
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "outgoing_email",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Outgoing Email"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "outgoing_sender_name",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Outgoing Sender Name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "scripts_tab",
|
||||||
|
"fieldtype": "Tab Break",
|
||||||
|
"label": "Scripts"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "after_install_script",
|
||||||
|
"fieldtype": "Code",
|
||||||
|
"label": "After Install Script",
|
||||||
|
"options": "Python"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "after_uninstall_script",
|
||||||
|
"fieldtype": "Code",
|
||||||
|
"label": "After Uninstall Script",
|
||||||
|
"options": "Python"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "run_after_install_script",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Rut After Install Script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "run_after_uninstall_script",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Run After Uninstall Script"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "review_tab",
|
||||||
|
"fieldtype": "Tab Break",
|
||||||
|
"label": "Review"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "Not Started",
|
||||||
|
"fieldname": "review_stage",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"label": "Review Stage",
|
||||||
|
"options": "Not Started\nDescription Missing\nLogo Missing\nApp Release Not Reviewed\nReady for Review\nReady to Publish\nRejected"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "jingrow_approved",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Jingrow Approved"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "stop_auto_review",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Stop Auto Review"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "This keys are added to site config on saas signup",
|
||||||
|
"fieldname": "site_config",
|
||||||
|
"fieldtype": "JSON",
|
||||||
|
"label": "Site Config"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "site_config_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Site Config"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "onboarding_related_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Onboarding/Site Creation Related"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "show_for_site_creation",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Show for site creation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "dashboard_tab",
|
||||||
|
"fieldtype": "Tab Break",
|
||||||
|
"label": "Dashboard"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_tlpw",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "average_rating",
|
||||||
|
"fieldtype": "Float",
|
||||||
|
"hidden": 1,
|
||||||
|
"label": "Average Rating",
|
||||||
|
"precision": "2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "localisation_apps",
|
||||||
|
"fieldtype": "Table",
|
||||||
|
"label": "Localisation Apps",
|
||||||
|
"options": "Marketplace Localisation App"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "1",
|
||||||
|
"fieldname": "subscription_level",
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"in_standard_filter": 1,
|
||||||
|
"label": "Subscription Level",
|
||||||
|
"options": "1\n2\n3\n4\n5"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"has_web_view": 1,
|
||||||
|
"image_field": "image",
|
||||||
|
"index_web_pages_for_search": 1,
|
||||||
|
"is_published_field": "published",
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"group": "General",
|
||||||
|
"link_fieldname": "marketplace_app",
|
||||||
|
"link_pagetype": "App Release Approval Request"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "App Subscription",
|
||||||
|
"link_fieldname": "app",
|
||||||
|
"link_pagetype": "Marketplace App Plan"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group": "App Subscription",
|
||||||
|
"link_fieldname": "app",
|
||||||
|
"link_pagetype": "Marketplace App Subscription"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"modified": "2025-10-22 15:50:31.087391",
|
||||||
|
"modified_by": "Administrator",
|
||||||
|
"module": "Jcloud",
|
||||||
|
"name": "Local Marketplace",
|
||||||
|
"owner": "Administrator",
|
||||||
|
"pagetype": "PageType",
|
||||||
|
"permissions": [
|
||||||
|
{
|
||||||
|
"create": 1,
|
||||||
|
"delete": 1,
|
||||||
|
"email": 1,
|
||||||
|
"export": 1,
|
||||||
|
"print": 1,
|
||||||
|
"read": 1,
|
||||||
|
"report": 1,
|
||||||
|
"role": "System Manager",
|
||||||
|
"share": 1,
|
||||||
|
"write": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"row_format": "Dynamic",
|
||||||
|
"sort_field": "modified",
|
||||||
|
"sort_order": "DESC",
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"color": "Gray",
|
||||||
|
"title": "Draft"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "Green",
|
||||||
|
"title": "Published"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"title_field": "title",
|
||||||
|
"track_changes": 1
|
||||||
|
}
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
# Copyright (c) 2025, Jingrow and contributors
|
||||||
|
# For license information, please see license.txt
|
||||||
|
|
||||||
|
# import jingrow
|
||||||
|
from jingrow.model.page import Page
|
||||||
|
|
||||||
|
|
||||||
|
class LocalMarketplace(Page):
|
||||||
|
# begin: auto-generated types
|
||||||
|
# This code is auto-generated. Do not modify anything in this block.
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from jcloud.jcloud.pagetype.marketplace_app_categories.marketplace_app_categories import MarketplaceAppCategories
|
||||||
|
from jcloud.jcloud.pagetype.marketplace_app_screenshot.marketplace_app_screenshot import MarketplaceAppScreenshot
|
||||||
|
from jcloud.jcloud.pagetype.marketplace_app_version.marketplace_app_version import MarketplaceAppVersion
|
||||||
|
from jcloud.jcloud.pagetype.marketplace_localisation_app.marketplace_localisation_app import MarketplaceLocalisationApp
|
||||||
|
from jingrow.types import DF
|
||||||
|
|
||||||
|
after_install_script: DF.Code | None
|
||||||
|
after_uninstall_script: DF.Code | None
|
||||||
|
app: DF.Link
|
||||||
|
average_rating: DF.Float
|
||||||
|
categories: DF.Table[MarketplaceAppCategories]
|
||||||
|
custom_verify_template: DF.Check
|
||||||
|
description: DF.SmallText
|
||||||
|
documentation: DF.Data | None
|
||||||
|
image: DF.AttachImage | None
|
||||||
|
jingrow_approved: DF.Check
|
||||||
|
localisation_apps: DF.Table[MarketplaceLocalisationApp]
|
||||||
|
long_description: DF.TextEditor | None
|
||||||
|
message: DF.TextEditor | None
|
||||||
|
outgoing_email: DF.Data | None
|
||||||
|
outgoing_sender_name: DF.Data | None
|
||||||
|
poll_method: DF.Data | None
|
||||||
|
privacy_policy: DF.Data | None
|
||||||
|
published: DF.Check
|
||||||
|
review_stage: DF.Literal["Not Started", "Description Missing", "Logo Missing", "App Release Not Reviewed", "Ready for Review", "Ready to Publish", "Rejected"]
|
||||||
|
route: DF.Data | None
|
||||||
|
run_after_install_script: DF.Check
|
||||||
|
run_after_uninstall_script: DF.Check
|
||||||
|
screenshots: DF.Table[MarketplaceAppScreenshot]
|
||||||
|
show_for_site_creation: DF.Check
|
||||||
|
signature: DF.TextEditor | None
|
||||||
|
site_config: DF.JSON | None
|
||||||
|
sources: DF.Table[MarketplaceAppVersion]
|
||||||
|
status: DF.Literal["Draft", "Published", "In Review", "Attention Required", "Rejected", "Disabled"]
|
||||||
|
stop_auto_review: DF.Check
|
||||||
|
subject: DF.Data | None
|
||||||
|
subscription_level: DF.Literal["1", "2", "3", "4", "5"]
|
||||||
|
subscription_type: DF.Literal["Free", "Paid", "Freemium"]
|
||||||
|
subscription_update_hook: DF.Data | None
|
||||||
|
support: DF.Data | None
|
||||||
|
team: DF.Link | None
|
||||||
|
terms_of_service: DF.Data | None
|
||||||
|
title: DF.Data
|
||||||
|
website: DF.Data | None
|
||||||
|
# end: auto-generated types
|
||||||
|
pass
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
{% extends "templates/web.html" %}
|
||||||
|
|
||||||
|
{% block page_content %}
|
||||||
|
<h1>{{ title }}</h1>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
<!-- this is a sample default web page template -->
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
<div>
|
||||||
|
<a href="{{ pg.route }}">{{ pg.title or pg.name }}</a>
|
||||||
|
</div>
|
||||||
|
<!-- this is a sample default list template -->
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
# Copyright (c) 2025, Jingrow and Contributors
|
||||||
|
# See license.txt
|
||||||
|
|
||||||
|
# import jingrow
|
||||||
|
from jingrow.tests.utils import JingrowTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class TestLocalMarketplace(JingrowTestCase):
|
||||||
|
pass
|
||||||
Loading…
x
Reference in New Issue
Block a user