itsulu-blog-publisher/addons/itsulu_blog_publisher/views/blog_topic_views.xml
Nicholas Riegel 34647c3742 docs: add Kubernetes test infrastructure documentation
- Add comprehensive K8s test setup guide to CLAUDE.md (section 8)
- Document K8s architecture, Docker image requirements, and job execution
- Update ARCHITECTURE.md with CI/CD infrastructure details
- Fix Dockerfile to use python3 -m pip and proper non-root user handling
- Upgrade addon to Odoo 17.0 and update XML view syntax
2026-05-29 18:13:32 -04:00

108 lines
5.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ================================================================
TOPIC QUEUE VIEWS
================================================================ -->
<record id="view_blog_topic_tree" model="ir.ui.view">
<field name="name">itsulu.blog.topic.tree</field>
<field name="model">itsulu.blog.topic</field>
<field name="arch" type="xml">
<tree string="Topic Queue" decoration-muted="state=='used'" decoration-warning="priority=='urgent'">
<field name="sequence" widget="handle"/>
<field name="priority" widget="priority"/>
<field name="name"/>
<field name="blog_id"/>
<field name="state" widget="badge"
decoration-success="state=='pending'"
decoration-info="state=='used'"
decoration-warning="state=='skipped'"/>
<field name="used_date" optional="show"/>
<button name="action_mark_pending" type="object" string="↩ Reset"
invisible="state == 'pending'"
class="btn-sm btn-secondary"/>
<button name="action_mark_skipped" type="object" string="Skip"
invisible="state != 'pending'"
class="btn-sm btn-warning"/>
</tree>
</field>
</record>
<record id="view_blog_topic_form" model="ir.ui.view">
<field name="name">itsulu.blog.topic.form</field>
<field name="model">itsulu.blog.topic</field>
<field name="arch" type="xml">
<form string="Blog Topic">
<header>
<button name="action_mark_pending" type="object" string="Reset to Pending"
invisible="state == 'pending'"
class="btn-secondary"/>
<button name="action_mark_skipped" type="object" string="Skip"
invisible="state != 'pending'"
class="btn-warning"/>
<field name="state" widget="statusbar" statusbar_visible="pending,used"/>
</header>
<sheet>
<group>
<group string="Topic">
<field name="name" placeholder="e.g. How ITSulu Helps SMBs Migrate to the Cloud"/>
<field name="priority" widget="priority"/>
<field name="sequence"/>
<field name="blog_id"/>
<field name="tone"/>
</group>
<group string="Status">
<field name="state"/>
<field name="used_date" readonly="1"/>
<field name="generation_log_id" readonly="1"/>
</group>
</group>
<notebook>
<page string="Notes / Context for LLM">
<field name="notes" placeholder="Additional context: specific services to highlight, recent news, preferred angle, key statistics..."/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="action_blog_topic_list" model="ir.actions.act_window">
<field name="name">Topic Queue</field>
<field name="res_model">itsulu.blog.topic</field>
<field name="view_mode">tree,form</field>
<field name="context">{'search_default_state_pending': 1}</field>
</record>
<record id="view_blog_topic_search" model="ir.ui.view">
<field name="name">itsulu.blog.topic.search</field>
<field name="model">itsulu.blog.topic</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<filter name="state_pending" string="Pending" domain="[('state','=','pending')]"/>
<filter name="state_used" string="Used" domain="[('state','=','used')]"/>
<filter name="priority_urgent" string="Urgent" domain="[('priority','=','urgent')]"/>
<group expand="0" string="Group By">
<filter name="group_state" string="State" context="{'group_by': 'state'}"/>
<filter name="group_priority" string="Priority" context="{'group_by': 'priority'}"/>
<filter name="group_blog" string="Blog" context="{'group_by': 'blog_id'}"/>
</group>
</search>
</field>
</record>
<!-- ================================================================
SETTINGS ACTION
================================================================ -->
<record id="action_blog_publisher_settings" model="ir.actions.act_window">
<field name="name">Blog Publisher Settings</field>
<field name="res_model">res.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="context">{'module': 'itsulu_blog_publisher'}</field>
</record>
</odoo>