mirror of
https://github.com/OCA/knowledge.git
synced 2025-07-14 01:41:26 -06:00
[IMP] document_page: add Browse Wiki Content view Kanban
This commit is contained in:
parent
dcb85fe9e3
commit
d0df693b95
@ -94,6 +94,9 @@ class DocumentPage(models.Model):
|
|||||||
compute="_compute_backend_url",
|
compute="_compute_backend_url",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
image = fields.Binary("Image", attachment=True)
|
||||||
|
color = fields.Integer(string="Color Index")
|
||||||
|
|
||||||
@api.depends("menu_id", "parent_id.menu_id")
|
@api.depends("menu_id", "parent_id.menu_id")
|
||||||
def _compute_backend_url(self):
|
def _compute_backend_url(self):
|
||||||
tmpl = "/web#id={}&model=document.page&view_type=form"
|
tmpl = "/web#id={}&model=document.page&view_type=form"
|
||||||
|
26
document_page/static/src/js/document_page_kanban.js
Normal file
26
document_page/static/src/js/document_page_kanban.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
odoo.define("document_page.update_kanban", function (require) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var KanbanRecord = require("web.KanbanRecord");
|
||||||
|
|
||||||
|
KanbanRecord.include({
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
// Private
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @override
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
_openRecord: function () {
|
||||||
|
if (
|
||||||
|
this.modelName === "document.page" &&
|
||||||
|
this.$(".o_document_page_kanban_boxes a").length
|
||||||
|
) {
|
||||||
|
this.$(".o_document_page_kanban_boxes a").first().click();
|
||||||
|
} else {
|
||||||
|
this._super.apply(this, arguments);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
@ -45,9 +45,12 @@
|
|||||||
/>
|
/>
|
||||||
<field name="active" invisible="1" />
|
<field name="active" invisible="1" />
|
||||||
<field name="type" invisible="1" />
|
<field name="type" invisible="1" />
|
||||||
|
<field name="image" widget="image" class="oe_avatar" />
|
||||||
|
<div class="oe_title">
|
||||||
<h1>
|
<h1>
|
||||||
<field name="name" placeholder="Name" />
|
<field name="name" placeholder="Name" />
|
||||||
</h1>
|
</h1>
|
||||||
|
</div>
|
||||||
<field
|
<field
|
||||||
name="content"
|
name="content"
|
||||||
widget="html"
|
widget="html"
|
||||||
|
@ -9,9 +9,12 @@
|
|||||||
<form string="Category">
|
<form string="Category">
|
||||||
<sheet>
|
<sheet>
|
||||||
<field name="type" invisible="1" />
|
<field name="type" invisible="1" />
|
||||||
|
<field name="image" widget="image" class="oe_avatar" />
|
||||||
|
<div class="oe_title">
|
||||||
<h1>
|
<h1>
|
||||||
<field name="name" placeholder="Name" />
|
<field name="name" placeholder="Name" />
|
||||||
</h1>
|
</h1>
|
||||||
|
</div>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field
|
<field
|
||||||
@ -52,6 +55,171 @@
|
|||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
<record id="view_browse_top_document_filter" model="ir.ui.view">
|
||||||
|
<field name="name">document.page.category.search</field>
|
||||||
|
<field name="model">document.page</field>
|
||||||
|
<field name="inherit_id" ref="view_wiki_filter" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="content_uid" position="after">
|
||||||
|
<separator />
|
||||||
|
<filter
|
||||||
|
string="Top Level Ressources"
|
||||||
|
name="no_parent_id"
|
||||||
|
domain="[('parent_id', '=', False)]"
|
||||||
|
/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
<record id="action_browse_top_content" model="ir.actions.act_window">
|
||||||
|
<field name="name">Browse Wiki Content</field>
|
||||||
|
<field name="res_model">document.page</field>
|
||||||
|
<field name="domain">[]</field>
|
||||||
|
<field
|
||||||
|
name="context"
|
||||||
|
>{'default_type': 'content', 'search_default_no_parent_id':1, }</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="search_view_id" ref="view_browse_top_document_filter" />
|
||||||
|
</record>
|
||||||
|
<record id="action_browse_all_content" model="ir.actions.act_window">
|
||||||
|
<field name="name">Browse Wiki Content</field>
|
||||||
|
<field name="res_model">document.page</field>
|
||||||
|
<field name="domain">[]</field>
|
||||||
|
<field
|
||||||
|
name="context"
|
||||||
|
>{'default_type': 'content', 'search_default_parent_id': [active_id] }</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="search_view_id" ref="view_wiki_filter" />
|
||||||
|
</record>
|
||||||
|
<record id="view_browse_content_kanban" model="ir.ui.view">
|
||||||
|
<field name="name">document.page.browse.kanban</field>
|
||||||
|
<field name="model">document.page</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<kanban>
|
||||||
|
<field name="id" />
|
||||||
|
<field name="name" />
|
||||||
|
<field name="display_name" />
|
||||||
|
<field name="create_uid" />
|
||||||
|
<field name="write_date" />
|
||||||
|
<field name="parent_id" />
|
||||||
|
<field name="content_uid" />
|
||||||
|
<field name="image" />
|
||||||
|
<field name="type" />
|
||||||
|
<field name="color" />
|
||||||
|
<templates>
|
||||||
|
<t t-name="kanban-box">
|
||||||
|
<div
|
||||||
|
t-att-class="'oe_kanban_global_area' + ' oe_kanban_color_'+ (kanban_getcolor(record.color.raw_value)) + ' oe_kanban_global_click' "
|
||||||
|
>
|
||||||
|
<div class="o_kanban_image">
|
||||||
|
<div class="o_kanban_image_wrapper">
|
||||||
|
<t t-if="record.type.raw_value == 'category'">
|
||||||
|
<img
|
||||||
|
class="o_kanban_image"
|
||||||
|
t-if="record.image.raw_value"
|
||||||
|
t-att-src="kanban_image('document.page', 'image', record.id.raw_value)"
|
||||||
|
t-att-alt="record.display_name"
|
||||||
|
/>
|
||||||
|
<span
|
||||||
|
style="font-size: 64px; color: lightslategray"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
t-if="!record.image.raw_value"
|
||||||
|
class="o_kanban_image fa fa-folder-open"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
</t>
|
||||||
|
<t t-if="record.type.raw_value == 'content'">
|
||||||
|
<span style="font-size: 64px; color: lightgray">
|
||||||
|
<i class="o_kanban_image fa fa-file" />
|
||||||
|
</span>
|
||||||
|
</t>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="o_kanban_details">
|
||||||
|
<div class="o_kanban_details_wrapper">
|
||||||
|
<div class="o_kanban_record_top">
|
||||||
|
<div
|
||||||
|
class="o_kanban_record_title o_text_overflow"
|
||||||
|
>
|
||||||
|
<strong>
|
||||||
|
<field name="name" />
|
||||||
|
</strong>
|
||||||
|
<br />
|
||||||
|
<small t-if="record.parent_id.raw_value">
|
||||||
|
<img
|
||||||
|
t-att-src="kanban_image('document.page', 'image', record.parent_id.raw_value)"
|
||||||
|
t-att-alt="record.parent_id.display_name"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
/>
|
||||||
|
<field name="parent_id" />
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="o_dropdown_kanban dropdown"
|
||||||
|
groups="base.group_user"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
role="button"
|
||||||
|
class="dropdown-toggle o-no-caret btn"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
data-display="static"
|
||||||
|
href="#"
|
||||||
|
aria-label="Dropdown menu"
|
||||||
|
title="Dropdown menu"
|
||||||
|
>
|
||||||
|
<span class="fa fa-ellipsis-v" />
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu" role="menu">
|
||||||
|
<ul
|
||||||
|
class="oe_kanban_colorpicker"
|
||||||
|
data-field="color"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="o_kanban_record_body">
|
||||||
|
<div class="o_kanban_tags_section">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="o_kanban_record_bottom"
|
||||||
|
t-if="record.type.raw_value == 'content'"
|
||||||
|
>
|
||||||
|
<div class="oe_kanban_bottom_left">
|
||||||
|
<field name="write_date" widget="date" />
|
||||||
|
</div>
|
||||||
|
<div class="oe_kanban_bottom_right">
|
||||||
|
<img
|
||||||
|
t-att-src="kanban_image('res.users', 'image_small', record.content_uid.raw_value)"
|
||||||
|
t-att-title="record.content_uid.value"
|
||||||
|
t-att-alt="record.content_uid.value"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
class="oe_kanban_avatar"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
t-if="record.type.raw_value == 'category'"
|
||||||
|
class="o_document_page_kanban_boxes"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="o_document_page_kanban_box"
|
||||||
|
name="%(action_browse_all_content)d"
|
||||||
|
type="action"
|
||||||
|
>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
<record id="view_category_tree" model="ir.ui.view">
|
<record id="view_category_tree" model="ir.ui.view">
|
||||||
<field name="name">document.page.category.list</field>
|
<field name="name">document.page.category.list</field>
|
||||||
<field name="model">document.page</field>
|
<field name="model">document.page</field>
|
||||||
@ -130,4 +298,12 @@
|
|||||||
action="action_category"
|
action="action_category"
|
||||||
sequence="20"
|
sequence="20"
|
||||||
/>
|
/>
|
||||||
|
<menuitem
|
||||||
|
id="menu_browse_content"
|
||||||
|
parent="knowledge.menu_document_root"
|
||||||
|
name="Browse Wiki Content"
|
||||||
|
action="action_browse_top_content"
|
||||||
|
sequence="5"
|
||||||
|
/>
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
Loading…
Reference in New Issue
Block a user