mirror of
https://gitlab.com/itsulu-odoo/itsulu-blog-publisher.git
synced 2026-05-30 23:41:23 +00:00
Create wizard package and complete view layer: Wizard implementation: - Create wizards/__init__.py with generate_now_wizard import - Wizard already fully implemented in generate_now_wizard.py - Update main addon __init__.py to import wizards Menu structure: - Create menu_views.xml with main menu and submenu structure - Organize menus: Generation, Configuration, Output, Settings View files (split from consolidated views): - Create blog_schedule_views.xml (schedule slot tree/form/action) - Create blog_generation_log_views.xml (log tree/form/action with retry) - Create blog_post_social_views.xml (social copy tree/form/action) - Create generate_now_wizard_views.xml (wizard form/action) - Update blog_topic_views.xml to contain only topic views Features included: - Schedule slot management with LLM provider/model selection - Social media platform toggles per schedule - Generation log viewer with retry capability - Wizard for on-demand blog generation - Complete navigation menu structure - Dark mode and responsive design support All views ready for Odoo 14+ deployment. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
84 lines
4.2 KiB
XML
84 lines
4.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<odoo>
|
||
|
||
<!-- ================================================================
|
||
SOCIAL MEDIA COPY VIEWS
|
||
================================================================ -->
|
||
|
||
<record id="view_blog_post_social_tree" model="ir.ui.view">
|
||
<field name="name">itsulu.blog.post.social.tree</field>
|
||
<field name="model">itsulu.blog.post.social</field>
|
||
<field name="arch" type="xml">
|
||
<tree string="Social Media Copy">
|
||
<field name="blog_post_id"/>
|
||
<field name="twitter_enabled" widget="boolean_toggle" optional="show"/>
|
||
<field name="bluesky_enabled" widget="boolean_toggle" optional="show"/>
|
||
<field name="mastodon_enabled" widget="boolean_toggle" optional="show"/>
|
||
<field name="linkedin_enabled" widget="boolean_toggle" optional="show"/>
|
||
</tree>
|
||
</field>
|
||
</record>
|
||
|
||
<record id="view_blog_post_social_form" model="ir.ui.view">
|
||
<field name="name">itsulu.blog.post.social.form</field>
|
||
<field name="model">itsulu.blog.post.social</field>
|
||
<field name="arch" type="xml">
|
||
<form string="Social Media Copy">
|
||
<sheet>
|
||
<group>
|
||
<field name="blog_post_id" readonly="1"/>
|
||
</group>
|
||
<notebook>
|
||
<page string="🐦 X / Twitter">
|
||
<group>
|
||
<field name="twitter_enabled" widget="toggle_button"/>
|
||
</group>
|
||
<separator string="Post A"/>
|
||
<field name="twitter_post_a" data-test-id="twitter-post-a"
|
||
placeholder="X/Twitter Post A (max 280 chars)"/>
|
||
<separator string="Post B"/>
|
||
<field name="twitter_post_b" data-test-id="twitter-post-b"
|
||
placeholder="X/Twitter Post B (max 280 chars)"/>
|
||
</page>
|
||
<page string="🌐 BlueSky">
|
||
<group>
|
||
<field name="bluesky_enabled" widget="toggle_button"/>
|
||
</group>
|
||
<separator string="Post A"/>
|
||
<field name="bluesky_post_a" data-test-id="bluesky-post-a"
|
||
placeholder="BlueSky Post A (max 300 chars)"/>
|
||
<separator string="Post B"/>
|
||
<field name="bluesky_post_b" data-test-id="bluesky-post-b"
|
||
placeholder="BlueSky Post B (max 300 chars)"/>
|
||
</page>
|
||
<page string="🦣 Mastodon">
|
||
<group>
|
||
<field name="mastodon_enabled" widget="toggle_button"/>
|
||
</group>
|
||
<field name="mastodon_post" data-test-id="mastodon-post"
|
||
placeholder="Mastodon/Fediverse post (max 500 chars)"/>
|
||
</page>
|
||
<page string="💼 LinkedIn">
|
||
<group>
|
||
<field name="linkedin_enabled" widget="toggle_button"/>
|
||
</group>
|
||
<field name="linkedin_post" data-test-id="linkedin-post"
|
||
placeholder="LinkedIn post (150–3000 chars)"/>
|
||
</page>
|
||
<page string="Sources Referenced">
|
||
<field name="sources_referenced" data-test-id="sources-referenced"
|
||
placeholder="Title — https://url.com"/>
|
||
</page>
|
||
</notebook>
|
||
</sheet>
|
||
</form>
|
||
</field>
|
||
</record>
|
||
|
||
<record id="action_blog_post_social_list" model="ir.actions.act_window">
|
||
<field name="name">Social Media Copy</field>
|
||
<field name="res_model">itsulu.blog.post.social</field>
|
||
<field name="view_mode">tree,form</field>
|
||
</record>
|
||
|
||
</odoo>
|