132 lines
7.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_education_announcement_tree" model="ir.ui.view">
<field name="name">education.announcement.tree</field>
<field name="model">education.announcement</field>
<field name="arch" type="xml">
<list string="Announcements">
<field name="priority" widget="priority"/>
<field name="title"/>
<field name="announcement_type" widget="badge" decoration-info="announcement_type == 'notice'" decoration-warning="announcement_type == 'circular'" decoration-success="announcement_type == 'event'"/>
<field name="audience_type" widget="badge" decoration-primary="audience_type == 'all'" decoration-muted="audience_type == 'cohort'"/>
<field name="date_published"/>
<field name="expiry_date"/>
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'published'" decoration-danger="state == 'archived'"/>
<field name="notification_sent" widget="boolean_toggle" optional="show"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="active" widget="boolean_toggle" optional="hide"/>
</list>
</field>
</record>
<record id="view_education_announcement_form" model="ir.ui.view">
<field name="name">education.announcement.form</field>
<field name="model">education.announcement</field>
<field name="arch" type="xml">
<form string="Announcement">
<header>
<button name="action_publish" string="Publish &amp; Notify" type="object" invisible="state == 'published'" class="oe_highlight"/>
<button name="action_archive" string="Archive" type="object" invisible="state == 'archived'"/>
<button name="action_draft" string="Reset to Draft" type="object" invisible="state == 'draft'"/>
<button name="action_resend_notification" string="Resend Notification" type="object" invisible="state != 'published' or not notification_sent" confirm="Are you sure you want to re-dispatch notifications to students?"/>
<field name="state" widget="statusbar" statusbar_visible="draft,published,archived"/>
</header>
<sheet>
<div class="oe_title">
<label for="title" class="oe_edit_only"/>
<h1><field name="title" placeholder="Announcement Title..."/></h1>
</div>
<group>
<group string="General Information">
<field name="announcement_type"/>
<field name="priority" widget="priority"/>
<field name="date_published"/>
<field name="expiry_date"/>
<field name="circular_filename" invisible="1"/>
<field name="circular_file" filename="circular_filename" widget="binary" invisible="announcement_type != 'circular'"/>
</group>
<group string="Publication &amp; Scope">
<field name="author_id"/>
<field name="audience_type"/>
<field name="active"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
</group>
<notebook>
<page string="Announcement Details" name="content_page">
<field name="content" placeholder="Write full details here..." widget="html" options="{'safe': True}"/>
</page>
<page string="Audience &amp; Cohort Targeting" name="cohort_targeting" invisible="audience_type != 'cohort'">
<group>
<group string="Academic Scope">
<field name="program_id"/>
<field name="academic_year_id"/>
<field name="academic_term_id"/>
</group>
<group string="Class &amp; Cohort Scope">
<field name="batch_id"/>
<field name="semester_id"/>
<field name="section_id"/>
</group>
</group>
</page>
<page string="Notification Audit" name="notification_audit">
<group>
<group>
<field name="notification_sent"/>
<field name="notification_sent_date"/>
<field name="notification_recipient_count"/>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_education_announcement_search" model="ir.ui.view">
<field name="name">education.announcement.search</field>
<field name="model">education.announcement</field>
<field name="arch" type="xml">
<search string="Announcements">
<field name="title"/>
<field name="announcement_type"/>
<field name="program_id"/>
<field name="author_id"/>
<filter string="Published" name="published" domain="[('state', '=', 'published')]"/>
<filter string="Draft" name="draft" domain="[('state', '=', 'draft')]"/>
<filter string="Archived" name="archived_status" domain="[('state', '=', 'archived')]"/>
<separator/>
<filter string="Urgent / Important" name="urgent" domain="[('priority', 'in', ['1', '2'])]"/>
<filter string="All Students" name="all_students" domain="[('audience_type', '=', 'all')]"/>
<filter string="Cohort Specific" name="cohort_students" domain="[('audience_type', '=', 'cohort')]"/>
<separator/>
<filter string="Active" name="active" domain="[('active', '=', True)]"/>
<filter string="Inactive" name="inactive" domain="[('active', '=', False)]"/>
<group>
<filter string="Status" name="group_state" context="{'group_by': 'state'}"/>
<filter string="Type" name="group_type" context="{'group_by': 'announcement_type'}"/>
<filter string="Priority" name="group_priority" context="{'group_by': 'priority'}"/>
<filter string="Audience" name="group_audience" context="{'group_by': 'audience_type'}"/>
<filter string="Published Date" name="group_date" context="{'group_by': 'date_published'}"/>
</group>
</search>
</field>
</record>
<record id="action_education_announcement" model="ir.actions.act_window">
<field name="name">Announcements</field>
<field name="res_model">education.announcement</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_education_announcement_search"/>
</record>
<!-- Menu Item under Configuration -->
<menuitem id="menu_education_announcement_config"
name="Announcements"
parent="education_base.menu_education_base_master_data"
action="action_education_announcement"
sequence="100"/>
</odoo>