focomy 0.1.109__tar.gz → 0.1.111__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {focomy-0.1.109 → focomy-0.1.111}/PKG-INFO +1 -1
- {focomy-0.1.109 → focomy-0.1.111}/core/api/forms.py +11 -5
- {focomy-0.1.109 → focomy-0.1.111}/pyproject.toml +1 -1
- {focomy-0.1.109 → focomy-0.1.111}/.gitignore +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/LICENSE +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/README.md +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/admin/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/admin/routes.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/admin/url.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/auth.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/comments.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/entities.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/media.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/relations.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/revisions.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/schema.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/search.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/api/seo.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/cli.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/config.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/audit_log.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/category.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/channel.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/comment.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/edit_lock.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/form.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/form_submission.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/menu_item.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/news.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/page.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/plugin.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/plugin_developer.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/plugin_review.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/post.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/redirect.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/scheduled_action.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/series.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/site_setting.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/tag.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/user.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/widget.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/content_types/workflow_history.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/database.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/engine/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/engine/routes.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/main.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/migrations/env.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/migrations/script.py.mako +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/migrations/versions/2038bdf6693b_add_import_jobs_table.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/migrations/versions/3a1b2c3d4e5f_add_file_hash_to_media.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/models/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/models/auth.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/models/entity.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/models/import_job.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/models/media.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/models/relation.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/models/revision.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/plugins/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/plugins/base.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/plugins/hooks.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/plugins/loader.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/plugins/manager.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/rate_limit.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/relations.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/.env.template +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/.gitignore.template +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/config.yaml.template +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/themes/default/templates/archive.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/themes/default/templates/base.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/themes/default/templates/category.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/themes/default/templates/home.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/themes/default/templates/post.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/themes/default/templates/search.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/scaffold/themes/default/theme.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/schemas/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/schemas/import_schema.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/seo/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/api_auth.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/assets.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/audit.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/auth.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/block_converter.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/bulk.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/cache.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/cleanup.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/comment.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/config_priority.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/deployment.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/edit_lock.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/entity.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/export.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/field.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/formula.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/i18n.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/index.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/invite.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/link_validator.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/logging.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/mail.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/marketplace.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/marketplace_verify.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/media.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/media_cleanup.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/menu.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/migration_helpers.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/oauth.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/pagination.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/plugin_resolver.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/plugin_sandbox.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/preview.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/query_optimizer.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/rbac.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/redirect.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/relation.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/revision.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/routing.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/sanitizer.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/schedule.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/search.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/sentry.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/seo.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/settings.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/spam_filter.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/storage.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/theme.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/theme_inheritance.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/thumbnail.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/update.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/widget.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/acf.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/analyzer.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/constants.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/content_sanitizer.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/diff_detector.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/dry_run.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/error_collector.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/id_resolver.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/import_service.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/importer.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/link_fixer.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/media.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/preview.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/redirects.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/rest_client.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/rollback.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/verification.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/wordpress_import/wxr_parser.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/services/workflow.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/backup.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/base.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/comments.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/components/editor.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/customize.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/dashboard.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/entity_form.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/entity_list.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/forgot_password.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/import.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/link_validator.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/login.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/media.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/menus.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/plugins.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/redirects.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/reset_password.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/settings.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/sitemap.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/system.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/themes.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/templates/admin/widgets.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/themes/__init__.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/themes/customizer.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/themes/manager.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/themes/marketplace.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/core/utils.py +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/static/favicon.svg +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/blog/templates/base.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/blog/templates/home.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/blog/templates/post.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/blog/theme.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/corporate/templates/base.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/corporate/templates/home.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/corporate/templates/page.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/corporate/theme.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/404.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/500.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/archive.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/base.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/category.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/channel.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/form.html +63 -63
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/form_success.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/home.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/page.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/post.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/search.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/templates/series.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/default/theme.yaml +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/minimal/templates/base.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/minimal/templates/home.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/minimal/templates/page.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/minimal/templates/post.html +0 -0
- {focomy-0.1.109 → focomy-0.1.111}/themes/minimal/theme.yaml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: focomy
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.111
|
|
4
4
|
Summary: The Most Beautiful CMS - A metadata-driven, zero-duplicate-code content management system
|
|
5
5
|
Project-URL: Homepage, https://github.com/focomy/focomy
|
|
6
6
|
Project-URL: Documentation, https://focomy.dev/docs
|
|
@@ -9,10 +9,10 @@ from pydantic import BaseModel
|
|
|
9
9
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
10
10
|
|
|
11
11
|
from ..database import get_db
|
|
12
|
+
from ..engine.routes import render_template
|
|
12
13
|
from ..rate_limit import limiter
|
|
13
14
|
from ..services.entity import EntityService
|
|
14
15
|
from ..services.mail import mail_service
|
|
15
|
-
from ..services.theme import theme_service
|
|
16
16
|
from ..utils import require_feature_async
|
|
17
17
|
|
|
18
18
|
router = APIRouter(prefix="/forms", tags=["forms"])
|
|
@@ -63,8 +63,9 @@ async def view_form(
|
|
|
63
63
|
except json.JSONDecodeError:
|
|
64
64
|
steps = []
|
|
65
65
|
|
|
66
|
-
# Render form template
|
|
67
|
-
html =
|
|
66
|
+
# Render form template (with admin bar context)
|
|
67
|
+
html = await render_template(
|
|
68
|
+
db,
|
|
68
69
|
"form.html",
|
|
69
70
|
{
|
|
70
71
|
"form": form_data,
|
|
@@ -72,6 +73,9 @@ async def view_form(
|
|
|
72
73
|
"steps": steps,
|
|
73
74
|
"csrf_token": getattr(request.state, "csrf_token", ""),
|
|
74
75
|
},
|
|
76
|
+
request=request,
|
|
77
|
+
entity=form,
|
|
78
|
+
content_type="form",
|
|
75
79
|
)
|
|
76
80
|
|
|
77
81
|
return HTMLResponse(content=html)
|
|
@@ -162,13 +166,15 @@ async def submit_form(
|
|
|
162
166
|
if "application/json" in content_type:
|
|
163
167
|
return {"success": True, "message": success_message}
|
|
164
168
|
|
|
165
|
-
# Render success page
|
|
166
|
-
html =
|
|
169
|
+
# Render success page (with admin bar context)
|
|
170
|
+
html = await render_template(
|
|
171
|
+
db,
|
|
167
172
|
"form_success.html",
|
|
168
173
|
{
|
|
169
174
|
"form": form_data,
|
|
170
175
|
"message": success_message,
|
|
171
176
|
},
|
|
177
|
+
request=request,
|
|
172
178
|
)
|
|
173
179
|
|
|
174
180
|
return HTMLResponse(content=html)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{focomy-0.1.109 → focomy-0.1.111}/core/migrations/versions/2038bdf6693b_add_import_jobs_table.py
RENAMED
|
File without changes
|
{focomy-0.1.109 → focomy-0.1.111}/core/migrations/versions/3a1b2c3d4e5f_add_file_hash_to_media.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,68 +1,5 @@
|
|
|
1
1
|
{% extends "base.html" %}
|
|
2
2
|
|
|
3
|
-
{% block title %}{{ form.title }} - {{ site_name }}{% endblock %}
|
|
4
|
-
|
|
5
|
-
{% block content %}
|
|
6
|
-
<div class="form-page">
|
|
7
|
-
<header class="form-header">
|
|
8
|
-
<h1>{{ form.title }}</h1>
|
|
9
|
-
{% if form.description %}
|
|
10
|
-
<p class="form-description">{{ form.description }}</p>
|
|
11
|
-
{% endif %}
|
|
12
|
-
</header>
|
|
13
|
-
|
|
14
|
-
<form id="dynamic-form" method="POST" action="/forms/{{ form.slug }}" class="dynamic-form">
|
|
15
|
-
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
16
|
-
|
|
17
|
-
{% if steps and steps|length > 1 %}
|
|
18
|
-
<!-- ウィザード形式 -->
|
|
19
|
-
<div class="wizard">
|
|
20
|
-
<div class="wizard-progress">
|
|
21
|
-
{% for step in steps %}
|
|
22
|
-
<div class="wizard-step {% if loop.first %}active{% endif %}" data-step="{{ loop.index }}">
|
|
23
|
-
<span class="step-number">{{ loop.index }}</span>
|
|
24
|
-
<span class="step-title">{{ step.title }}</span>
|
|
25
|
-
</div>
|
|
26
|
-
{% endfor %}
|
|
27
|
-
</div>
|
|
28
|
-
|
|
29
|
-
{% for step in steps %}
|
|
30
|
-
<div class="wizard-panel {% if loop.first %}active{% endif %}" data-step="{{ loop.index }}">
|
|
31
|
-
<h2 class="step-heading">{{ step.title }}</h2>
|
|
32
|
-
{% for field in fields %}
|
|
33
|
-
{% if field.name in step.fields %}
|
|
34
|
-
{{ render_field(field) }}
|
|
35
|
-
{% endif %}
|
|
36
|
-
{% endfor %}
|
|
37
|
-
|
|
38
|
-
<div class="wizard-nav">
|
|
39
|
-
{% if not loop.first %}
|
|
40
|
-
<button type="button" class="btn btn-secondary prev-step">戻る</button>
|
|
41
|
-
{% endif %}
|
|
42
|
-
{% if loop.last %}
|
|
43
|
-
<button type="submit" class="btn btn-primary">{{ form.submit_label or '送信する' }}</button>
|
|
44
|
-
{% else %}
|
|
45
|
-
<button type="button" class="btn btn-primary next-step">次へ</button>
|
|
46
|
-
{% endif %}
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
{% endfor %}
|
|
50
|
-
</div>
|
|
51
|
-
{% else %}
|
|
52
|
-
<!-- 通常フォーム -->
|
|
53
|
-
<div class="form-fields">
|
|
54
|
-
{% for field in fields %}
|
|
55
|
-
{{ render_field(field) }}
|
|
56
|
-
{% endfor %}
|
|
57
|
-
</div>
|
|
58
|
-
|
|
59
|
-
<div class="form-actions">
|
|
60
|
-
<button type="submit" class="btn btn-primary">{{ form.submit_label or '送信する' }}</button>
|
|
61
|
-
</div>
|
|
62
|
-
{% endif %}
|
|
63
|
-
</form>
|
|
64
|
-
</div>
|
|
65
|
-
|
|
66
3
|
{% macro render_field(field) %}
|
|
67
4
|
<div class="form-group">
|
|
68
5
|
<label for="{{ field.name }}">
|
|
@@ -134,6 +71,69 @@
|
|
|
134
71
|
</div>
|
|
135
72
|
{% endmacro %}
|
|
136
73
|
|
|
74
|
+
{% block title %}{{ form.title }} - {{ site_name }}{% endblock %}
|
|
75
|
+
|
|
76
|
+
{% block content %}
|
|
77
|
+
<div class="form-page">
|
|
78
|
+
<header class="form-header">
|
|
79
|
+
<h1>{{ form.title }}</h1>
|
|
80
|
+
{% if form.description %}
|
|
81
|
+
<p class="form-description">{{ form.description }}</p>
|
|
82
|
+
{% endif %}
|
|
83
|
+
</header>
|
|
84
|
+
|
|
85
|
+
<form id="dynamic-form" method="POST" action="/forms/{{ form.slug }}" class="dynamic-form">
|
|
86
|
+
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
87
|
+
|
|
88
|
+
{% if steps and steps|length > 1 %}
|
|
89
|
+
<!-- ウィザード形式 -->
|
|
90
|
+
<div class="wizard">
|
|
91
|
+
<div class="wizard-progress">
|
|
92
|
+
{% for step in steps %}
|
|
93
|
+
<div class="wizard-step {% if loop.first %}active{% endif %}" data-step="{{ loop.index }}">
|
|
94
|
+
<span class="step-number">{{ loop.index }}</span>
|
|
95
|
+
<span class="step-title">{{ step.title }}</span>
|
|
96
|
+
</div>
|
|
97
|
+
{% endfor %}
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
{% for step in steps %}
|
|
101
|
+
<div class="wizard-panel {% if loop.first %}active{% endif %}" data-step="{{ loop.index }}">
|
|
102
|
+
<h2 class="step-heading">{{ step.title }}</h2>
|
|
103
|
+
{% for field in fields %}
|
|
104
|
+
{% if field.name in step.fields %}
|
|
105
|
+
{{ render_field(field) }}
|
|
106
|
+
{% endif %}
|
|
107
|
+
{% endfor %}
|
|
108
|
+
|
|
109
|
+
<div class="wizard-nav">
|
|
110
|
+
{% if not loop.first %}
|
|
111
|
+
<button type="button" class="btn btn-secondary prev-step">戻る</button>
|
|
112
|
+
{% endif %}
|
|
113
|
+
{% if loop.last %}
|
|
114
|
+
<button type="submit" class="btn btn-primary">{{ form.submit_label or '送信する' }}</button>
|
|
115
|
+
{% else %}
|
|
116
|
+
<button type="button" class="btn btn-primary next-step">次へ</button>
|
|
117
|
+
{% endif %}
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
{% endfor %}
|
|
121
|
+
</div>
|
|
122
|
+
{% else %}
|
|
123
|
+
<!-- 通常フォーム -->
|
|
124
|
+
<div class="form-fields">
|
|
125
|
+
{% for field in fields %}
|
|
126
|
+
{{ render_field(field) }}
|
|
127
|
+
{% endfor %}
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<div class="form-actions">
|
|
131
|
+
<button type="submit" class="btn btn-primary">{{ form.submit_label or '送信する' }}</button>
|
|
132
|
+
</div>
|
|
133
|
+
{% endif %}
|
|
134
|
+
</form>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
137
|
<style>
|
|
138
138
|
.form-page {
|
|
139
139
|
max-width: 600px;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|