focomy 0.1.106__py3-none-any.whl → 0.1.107__py3-none-any.whl

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.
core/config.py CHANGED
@@ -143,7 +143,7 @@ class FeaturesConfig(BaseModel):
143
143
 
144
144
  # Phase 5: Extended features
145
145
  comment: bool = False
146
- form: bool = False
146
+ form: bool = True
147
147
  api_auth: bool = False
148
148
  oauth: bool = False
149
149
  mail: bool = False
core/engine/routes.py CHANGED
@@ -163,6 +163,13 @@ async def render_theme(
163
163
  # Build edit URL if entity provided
164
164
  if entity and content_type:
165
165
  context["edit_url"] = f"/admin/{content_type}/{entity.id}/edit"
166
+ # Add content_types for admin bar dropdown
167
+ all_ct = field_service.get_all_content_types()
168
+ context["content_types"] = {
169
+ name: ct.model_dump()
170
+ for name, ct in all_ct.items()
171
+ if ct.admin_menu # Only show types with admin_menu=true
172
+ }
166
173
  else:
167
174
  context["is_admin"] = False
168
175
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: focomy
3
- Version: 0.1.106
3
+ Version: 0.1.107
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
@@ -1,6 +1,6 @@
1
1
  core/__init__.py,sha256=SHwUSW_pu27kEARvwJFRdY2ZkVu6wzFh0eikYJXjbTY,1123
2
2
  core/cli.py,sha256=h5jnf4EJCZ1JZMnDl7W1IaL153UD3dXyKBbxhv1P-KA,35536
3
- core/config.py,sha256=kLhM1yF3rU9KtJ-DiD8pnzG_tFQsiO8G-M_ffN_yKqE,8200
3
+ core/config.py,sha256=VfRNfh5dAw9ax1MIjzaYN_KEvcNjy7X5-LxE22Rm2-I,8199
4
4
  core/database.py,sha256=wqvRuwpDxy25svag9NqreVcNA_VRDDjWsxOMUopsffs,2222
5
5
  core/main.py,sha256=em4na_OJu6E3y_nkeYxH_QvugiLdPzKCMbc5Jbc1y1k,16783
6
6
  core/rate_limit.py,sha256=CX5UjmsU03aFWKXSKjweoHvH2xn0v4NBHNN5ynJC8LE,180
@@ -44,7 +44,7 @@ core/content_types/user.yaml,sha256=y3SwqzIc9_6C7R1GULk7AwYJPxcTT38ZmZe4_wekfyU,
44
44
  core/content_types/widget.yaml,sha256=Jotbts5QQtHaF2bJWQL3rkEoCkp_aq_A3gN-58eJwv8,1454
45
45
  core/content_types/workflow_history.yaml,sha256=3wi58LNLYbk7t6Z2QDRi9whQSedJCXKVKuyBhixNUK0,518
46
46
  core/engine/__init__.py,sha256=ycR0Kdn6buwdCH6QFG8bV69wFciFSKEg9Ro26cHpa2U,83
47
- core/engine/routes.py,sha256=CogulY71HAS2bjIPtqw2MK5og8Izns4xkzbO2Y84LbI,41905
47
+ core/engine/routes.py,sha256=LKJYCoctYk3OB9bhKutVRRaBRWNwQjS7dFxSk5cOrAI,42232
48
48
  core/migrations/env.py,sha256=1dLI8qcGojLDR_--MdgwP5q-V0p2Z-32klSPjokXx4M,1389
49
49
  core/migrations/script.py.mako,sha256=LyYLSC7HzBBGwHZ8s2SguBPMXsWCph0FJp49kPsGhU8,590
50
50
  core/migrations/versions/2038bdf6693b_add_import_jobs_table.py,sha256=v8lPC5WmwpUfHUG_YgQn6jepPtfKWFn0JIj9XvD9224,2325
@@ -186,7 +186,7 @@ themes/default/theme.yaml,sha256=tgcUP1YFptyXVNL2a8DBiPrP7zTjWNH62Cy9D_w6Chk,187
186
186
  themes/default/templates/404.html,sha256=6pYUz7zg5hx3nikgxiZWSkwYnv2nENCSV3KjdIF0_lE,1105
187
187
  themes/default/templates/500.html,sha256=CtU3gEsHsxAh-vbcnx5McH8V8ruKtdP8usj8hPuu8zY,1174
188
188
  themes/default/templates/archive.html,sha256=ZHBxPYewvc2TbrsB745LYO2uM5SJbTFQQR6savWUzYg,2385
189
- themes/default/templates/base.html,sha256=C2SWfi53TRwtowgLd2r4UbARG8n03nyqIVCupoSeWb8,10317
189
+ themes/default/templates/base.html,sha256=06hSyyeAHqfG2thvMMMUQnxgRTdRD4DCGKieThSzEGM,11901
190
190
  themes/default/templates/category.html,sha256=k-yN0vFoOpgxgg6DlGin5X4IzVDBG9xRZ0FOD7OJtU8,3061
191
191
  themes/default/templates/channel.html,sha256=1i1zkAWmvpcqyoEfaeQNDc2zrMao2xSXCkjRuwzxOUU,3213
192
192
  themes/default/templates/form.html,sha256=OvS2yXVu3sruDOYvEjQCEQNohLf94SMQGR1V9Ky1_Sw,8685
@@ -201,8 +201,8 @@ themes/minimal/templates/base.html,sha256=LFkx-XLDMGH7oFHHa0e6KPB0DJITOBvr6GtPkD
201
201
  themes/minimal/templates/home.html,sha256=ygYQgYj1OGCiKwmfsxwkPselVKT8vDH3jLLbfphpqKI,1577
202
202
  themes/minimal/templates/page.html,sha256=7Xcoq-ryaxlp913H2S1ishrAro2wsqqGmvsm1osXxd4,389
203
203
  themes/minimal/templates/post.html,sha256=FkTRHci8HNIIi3DU6Mb3oL0aDisGyDcsT_IUDwHmrvo,1387
204
- focomy-0.1.106.dist-info/METADATA,sha256=WuqHmxR0zsPOR2cyZW0vV6yIEBkUgIneDCm1xXgZ30U,7042
205
- focomy-0.1.106.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
206
- focomy-0.1.106.dist-info/entry_points.txt,sha256=_rF-wxGI1axY7gox3DBsTLHq-JrFKkMCjA65a6b_oqE,41
207
- focomy-0.1.106.dist-info/licenses/LICENSE,sha256=z9Z7gN7NNV7zYCaY-Knh3bv8RBCu89VueYtAlN_-lro,1063
208
- focomy-0.1.106.dist-info/RECORD,,
204
+ focomy-0.1.107.dist-info/METADATA,sha256=3ET-lqecSEWEWYhsRY5f3Fy9kBOJ_KZ5E_y1JOlUpcM,7042
205
+ focomy-0.1.107.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
206
+ focomy-0.1.107.dist-info/entry_points.txt,sha256=_rF-wxGI1axY7gox3DBsTLHq-JrFKkMCjA65a6b_oqE,41
207
+ focomy-0.1.107.dist-info/licenses/LICENSE,sha256=z9Z7gN7NNV7zYCaY-Knh3bv8RBCu89VueYtAlN_-lro,1063
208
+ focomy-0.1.107.dist-info/RECORD,,
@@ -123,7 +123,18 @@
123
123
  <div id="admin-bar">
124
124
  <a href="/" class="admin-bar-site">{{ site_name }}</a>
125
125
  <a href="/admin">ダッシュボード</a>
126
- <a href="/admin/post/new">+ 新規投稿</a>
126
+ <div class="admin-bar-dropdown">
127
+ <button class="admin-bar-dropdown-btn">+ 新規作成</button>
128
+ <div class="admin-bar-dropdown-menu">
129
+ {% if content_types %}
130
+ {% for name, ct in content_types.items()|sort(attribute='0') %}
131
+ <a href="/admin/{{ name }}/new">{{ ct.label or name }}</a>
132
+ {% endfor %}
133
+ {% else %}
134
+ <a href="/admin/post/new">投稿</a>
135
+ {% endif %}
136
+ </div>
137
+ </div>
127
138
  {% if edit_url %}
128
139
  <a href="{{ edit_url }}">編集</a>
129
140
  {% endif %}
@@ -163,6 +174,44 @@
163
174
  .admin-bar-user {
164
175
  color: #94a3b8;
165
176
  }
177
+ .admin-bar-dropdown {
178
+ position: relative;
179
+ }
180
+ .admin-bar-dropdown-btn {
181
+ background: transparent;
182
+ border: none;
183
+ color: white;
184
+ cursor: pointer;
185
+ font-size: inherit;
186
+ padding: 0;
187
+ }
188
+ .admin-bar-dropdown-btn:hover {
189
+ text-decoration: underline;
190
+ }
191
+ .admin-bar-dropdown-menu {
192
+ display: none;
193
+ position: absolute;
194
+ top: 100%;
195
+ left: 0;
196
+ background: #1e293b;
197
+ border: 1px solid #374151;
198
+ border-radius: 4px;
199
+ min-width: 150px;
200
+ padding: 0.5rem 0;
201
+ box-shadow: 0 4px 6px rgba(0,0,0,0.3);
202
+ }
203
+ .admin-bar-dropdown-menu a {
204
+ display: block;
205
+ padding: 0.5rem 1rem;
206
+ white-space: nowrap;
207
+ }
208
+ .admin-bar-dropdown-menu a:hover {
209
+ background: #374151;
210
+ text-decoration: none;
211
+ }
212
+ .admin-bar-dropdown:hover .admin-bar-dropdown-menu {
213
+ display: block;
214
+ }
166
215
  body { padding-top: 32px; }
167
216
  </style>
168
217
  {% endif %}