Public release from ruodoo-project: 19.0 - 2026-05-10 21:19:01 UTC
This commit is contained in:
112
dms/views/dms_access_groups_views.xml
Normal file
112
dms/views/dms_access_groups_views.xml
Normal file
@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<record id="view_dms_access_groups_tree" model="ir.ui.view">
|
||||
<field name="name">dms_access_groups.list</field>
|
||||
<field name="model">dms.access.group</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="perm_create" />
|
||||
<field name="perm_write" />
|
||||
<field name="perm_unlink" />
|
||||
<field name="count_users" />
|
||||
<field name="count_directories" />
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_access_groups_form" model="ir.ui.view">
|
||||
<field name="name">dms_access.group.form</field>
|
||||
<field name="model">dms.access.group</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field name="name" />
|
||||
</h1>
|
||||
</div>
|
||||
<group name="group" string="Group">
|
||||
<group>
|
||||
<field name="parent_group_id" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="count_users" />
|
||||
</group>
|
||||
</group>
|
||||
<group string="Settings">
|
||||
<group>
|
||||
<field name="perm_create" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="perm_write" />
|
||||
<field name="perm_unlink" />
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page name="users" string="Users">
|
||||
<field name="users">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="login" />
|
||||
<field name="lang" />
|
||||
<field name="login_date" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page name="groups" string="Groups">
|
||||
<field name="group_ids">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="comment" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page name="extra_users" string="Explicit Users">
|
||||
<field name="explicit_user_ids">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="login" />
|
||||
<field name="lang" />
|
||||
<field name="login_date" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page name="childs" string="Child Groups">
|
||||
<field name="child_group_ids">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="perm_create" />
|
||||
<field name="perm_write" />
|
||||
<field name="perm_unlink" />
|
||||
<field name="count_users" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Directories">
|
||||
<field name="directory_ids" />
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_access_groups" model="ir.actions.act_window">
|
||||
<field name="name">Access Groups</field>
|
||||
<field name="res_model">dms.access.group</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field
|
||||
name="view_ids"
|
||||
eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'list', 'view_id': ref('view_dms_access_groups_tree')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('view_dms_access_groups_form')})]"
|
||||
/>
|
||||
</record>
|
||||
</odoo>
|
||||
110
dms/views/dms_category.xml
Normal file
110
dms/views/dms_category.xml
Normal file
@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<record id="view_dms_category_search" model="ir.ui.view">
|
||||
<field name="name">dms_category.search</field>
|
||||
<field name="model">dms.category</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Categories">
|
||||
<field
|
||||
name="name"
|
||||
filter_domain="['|', ('name', 'ilike', self), ('parent_id', 'child_of', raw_value)]"
|
||||
/>
|
||||
<filter
|
||||
string="All"
|
||||
name="all"
|
||||
domain="['|', ('active', '=', False), ('active', '=', True)]"
|
||||
/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_category_tree" model="ir.ui.view">
|
||||
<field name="name">dms_category.list</field>
|
||||
<field name="model">dms.category</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="parent_id" />
|
||||
<field name="tag_ids" />
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_category_form" model="ir.ui.view">
|
||||
<field name="name">dms_category.form</field>
|
||||
<field name="model">dms.category</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Category">
|
||||
<sheet>
|
||||
<widget
|
||||
name="web_ribbon"
|
||||
title="Archived"
|
||||
bg_color="bg-danger"
|
||||
invisible="active"
|
||||
/>
|
||||
<div class="oe_button_box" name="button_box" />
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field name="name" placeholder="Invoices" />
|
||||
<field name="active" invisible="1" />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="parent_id" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="count_categories" string="Subcategories" />
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="count_tags" string="Tags" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="count_files" string="Files" />
|
||||
<field name="count_directories" string="Directories" />
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Tags">
|
||||
<field
|
||||
name="tag_ids"
|
||||
mode="kanban"
|
||||
context="{'default_category_id': id}"
|
||||
/>
|
||||
</page>
|
||||
<page string="Subcategories">
|
||||
<field
|
||||
name="child_category_ids"
|
||||
widget="one2many"
|
||||
mode="list"
|
||||
context="{'default_parent_id': id}"
|
||||
/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_category" model="ir.actions.act_window">
|
||||
<field name="name">Categories</field>
|
||||
<field name="res_model">dms.category</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="context">{'search_default_all': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new Category.
|
||||
</p>
|
||||
<p>
|
||||
Categories are used to categorize Documents.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
727
dms/views/dms_directory.xml
Normal file
727
dms/views/dms_directory.xml
Normal file
@ -0,0 +1,727 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2021 Tecnativa - Víctor Martínez
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<record id="action_dms_directories_directory" model="ir.actions.act_window">
|
||||
<field name="name">Subdirectories</field>
|
||||
<field name="res_model">dms.directory</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="domain">
|
||||
[
|
||||
("is_hidden", "=", False),
|
||||
]
|
||||
</field>
|
||||
<field name="context">
|
||||
{
|
||||
'default_parent_id': active_id,
|
||||
'searchpanel_default_parent_id': active_id
|
||||
}
|
||||
</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Click to add a new directory.
|
||||
</p>
|
||||
<p>
|
||||
Directories can be used to structure and organize
|
||||
files directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_files_directory" model="ir.actions.act_window">
|
||||
<field name="name">Files</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="view_mode">kanban,list,graph,pivot,form</field>
|
||||
<field name="domain">
|
||||
[
|
||||
("is_hidden", "=", False),
|
||||
]
|
||||
</field>
|
||||
<field name="context">
|
||||
{
|
||||
'default_directory_id': active_id,
|
||||
'searchpanel_default_directory_id': active_id
|
||||
}
|
||||
</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Click to add a new file.
|
||||
</p>
|
||||
<p>
|
||||
Files are used to save content directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_directories_all_directory" model="ir.actions.act_window">
|
||||
<field name="name">Subdirectories</field>
|
||||
<field name="res_model">dms.directory</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="domain">
|
||||
[
|
||||
("parent_id", "child_of", active_id),
|
||||
("is_hidden", "=", False),
|
||||
("id", "!=", active_id),
|
||||
]
|
||||
</field>
|
||||
<field name="context">
|
||||
{
|
||||
'default_parent_id': active_id,
|
||||
}
|
||||
</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Click to add a new directory.
|
||||
</p>
|
||||
<p>
|
||||
Directories can be used to structure and organize
|
||||
files directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_files_all_directory" model="ir.actions.act_window">
|
||||
<field name="name">Files</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="view_mode">kanban,list,graph,pivot,form</field>
|
||||
<field name="domain">
|
||||
[
|
||||
("is_hidden", "=", False),
|
||||
]
|
||||
</field>
|
||||
<field name="context">
|
||||
{
|
||||
'default_directory_id': active_id,
|
||||
'searchpanel_default_directory_id': active_id
|
||||
}
|
||||
</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Click to add a new file.
|
||||
</p>
|
||||
<p>
|
||||
Files are used to save content directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="search_dms_directory" model="ir.ui.view">
|
||||
<field name="name">dms_directory.search</field>
|
||||
<field name="model">dms.directory</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="complete_name" />
|
||||
<filter
|
||||
string="My Directories"
|
||||
name="filter_user"
|
||||
domain="[('create_uid', '=', uid)]"
|
||||
/>
|
||||
<filter
|
||||
string="Starred Directories"
|
||||
name="filter_starred"
|
||||
domain="[('starred', '=', True)]"
|
||||
/>
|
||||
<separator />
|
||||
<filter
|
||||
string="Root Directories"
|
||||
name="filter_root"
|
||||
domain="[('is_root_directory', '=', True)]"
|
||||
/>
|
||||
<separator />
|
||||
<filter
|
||||
string="Creation Date"
|
||||
name="filter_create"
|
||||
date="create_date"
|
||||
/>
|
||||
<filter
|
||||
string="Modification Date"
|
||||
name="filter_write"
|
||||
date="write_date"
|
||||
/>
|
||||
<group>
|
||||
<filter
|
||||
name="group_color"
|
||||
string="Color"
|
||||
domain="[]"
|
||||
context="{'group_by':'color'}"
|
||||
/>
|
||||
<filter
|
||||
name="group_category"
|
||||
string="Category"
|
||||
domain="[]"
|
||||
context="{'group_by':'category_id'}"
|
||||
/>
|
||||
<separator />
|
||||
<filter
|
||||
name="group_storage"
|
||||
string="Storage"
|
||||
domain="[]"
|
||||
context="{'group_by':'storage_id'}"
|
||||
/>
|
||||
</group>
|
||||
<searchpanel>
|
||||
<field
|
||||
name="parent_id"
|
||||
icon="fa-folder"
|
||||
limit="0"
|
||||
enable_counters="1"
|
||||
/>
|
||||
<field
|
||||
name="category_id"
|
||||
select="multi"
|
||||
groupby="parent_id"
|
||||
icon="fa-users"
|
||||
limit="0"
|
||||
/>
|
||||
<field
|
||||
name="tag_ids"
|
||||
select="multi"
|
||||
icon="fa-tag"
|
||||
groupby="category_id"
|
||||
limit="0"
|
||||
enable_counters="1"
|
||||
/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_directory_kanban" model="ir.ui.view">
|
||||
<field name="name">dms_directory.kanban</field>
|
||||
<field name="model">dms.directory</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban
|
||||
class="mk_directory_kanban_view o_kanban_small_column o_kanban_mobile"
|
||||
banner_route="/onboarding/document_onboarding_file"
|
||||
highlight_color="color"
|
||||
>
|
||||
<field name="id" />
|
||||
<field name="tag_ids" />
|
||||
<field name="name" />
|
||||
<field name="color" />
|
||||
<field name="starred" />
|
||||
<field name="create_uid" />
|
||||
<field name="write_date" />
|
||||
<field name="permission_write" />
|
||||
<field name="permission_unlink" />
|
||||
<field name="icon_url" />
|
||||
<field name="count_directories" />
|
||||
<field name="count_files" />
|
||||
<field name="count_directories_title" />
|
||||
<field name="count_files_title" />
|
||||
<field name="count_total_directories" />
|
||||
<field name="count_total_files" />
|
||||
<templates>
|
||||
<t t-name="menu">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div name="card_menu_view" class="col-6">
|
||||
<h5
|
||||
role="menuitem"
|
||||
class="o_kanban_card_manage_title"
|
||||
>
|
||||
<span>Views</span>
|
||||
</h5>
|
||||
<div role="menuitem">
|
||||
<a
|
||||
type="object"
|
||||
name="action_dms_directories_all_directory"
|
||||
>
|
||||
<i class="fa fa-folder-o" />
|
||||
Directories
|
||||
</a>
|
||||
</div>
|
||||
<div role="menuitem">
|
||||
<a
|
||||
type="object"
|
||||
name="action_dms_files_all_directory"
|
||||
>
|
||||
<i class="fa fa-file-o" />
|
||||
Files
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 o_kanban_manage_actions">
|
||||
<h5
|
||||
role="menuitem"
|
||||
class="o_kanban_card_manage_title"
|
||||
>
|
||||
<span>Actions</span>
|
||||
</h5>
|
||||
<div role="menuitem">
|
||||
<a type="open">
|
||||
<i class="fa fa-external-link" />
|
||||
Open
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.permission_write.raw_value"
|
||||
>
|
||||
<a type="edit">
|
||||
<i class="fa fa-pencil-square-o" />
|
||||
Edit
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.permission_unlink.raw_value"
|
||||
>
|
||||
<a type="delete">
|
||||
<i class="fa fa-trash-o" />
|
||||
Delete
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_card_manage_actions row">
|
||||
<div
|
||||
role="menuitem"
|
||||
aria-haspopup="true"
|
||||
class="col-6"
|
||||
t-if="record.permission_write.raw_value"
|
||||
>
|
||||
<field name="color" widget="kanban_color_picker" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="card" class="flex-row">
|
||||
<main>
|
||||
<div
|
||||
t-attf-class="oe_kanban_global_click oe_kanban_content row g-0"
|
||||
>
|
||||
<div class="col-3 h-100">
|
||||
<img
|
||||
t-att-src="record.icon_url.raw_value"
|
||||
alt="Icon"
|
||||
class="img img-fluid object-fit-cover"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<field name="name" class="text-truncate fw-bold" />
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
options="{'color_field': 'color'}"
|
||||
/>
|
||||
<field name="write_date" widget="date" />
|
||||
</div>
|
||||
</div>
|
||||
<footer class="mt-auto pt-0 ms-1">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="d-flex align-items-baseline">
|
||||
<a
|
||||
type="object"
|
||||
name="action_dms_directories_all_directory"
|
||||
role="button"
|
||||
class="me-1"
|
||||
t-att-title="record.count_directories_title.raw_value"
|
||||
>
|
||||
<i class="fa fa-xs fa-folder" />
|
||||
<span>&nbsp;</span>
|
||||
<span
|
||||
class="total_items"
|
||||
t-esc="record.count_total_directories.raw_value"
|
||||
/>
|
||||
<span class="ms-1">Directories</span>
|
||||
</a>
|
||||
<a
|
||||
type="object"
|
||||
name="action_dms_files_all_directory"
|
||||
role="button"
|
||||
class="me-1"
|
||||
t-att-title="record.count_files_title.raw_value"
|
||||
>
|
||||
<i class="fa fa-xs fa-file" />
|
||||
<span>&nbsp;</span>
|
||||
<span
|
||||
class="total_items"
|
||||
t-esc="record.count_total_files.raw_value"
|
||||
/>
|
||||
<span class="ms-1">Files</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex ms-auto">
|
||||
<a
|
||||
role="button"
|
||||
type="object"
|
||||
name="toggle_starred"
|
||||
t-attf-class="fa fa-lg fa-star#{record.starred.raw_value ? ' favorite_sign_button_enabled' : '-o'} favorite_sign_button"
|
||||
title="Starred"
|
||||
/>
|
||||
<img
|
||||
t-attf-src="/web/image/res.users/#{record.create_uid.raw_value}/avatar_128"
|
||||
t-att-title="record.create_uid.value"
|
||||
t-att-alt="record.create_uid.value"
|
||||
class="oe_kanban_avatar"
|
||||
style="max-width:20px;"
|
||||
/>
|
||||
</div>
|
||||
</footer>
|
||||
</main>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_directory_tree" model="ir.ui.view">
|
||||
<field name="name">dms_directory.list</field>
|
||||
<field name="model">dms.directory</field>
|
||||
<field name="arch" type="xml">
|
||||
<list default_order="complete_name asc">
|
||||
<field name="name" />
|
||||
<field name="write_date" />
|
||||
<field name="count_files" string="Files" />
|
||||
<field name="count_directories" string="Directories" />
|
||||
<field name="complete_name" />
|
||||
<field name="storage_id" groups="dms.group_dms_manager" />
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_directory_form" model="ir.ui.view">
|
||||
<field name="name">dms_directory.form</field>
|
||||
<field name="model">dms.directory</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header />
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button
|
||||
type="object"
|
||||
name="action_dms_directories_all_directory"
|
||||
class="oe_stat_button"
|
||||
icon="fa-folder-open-o"
|
||||
>
|
||||
<field
|
||||
string="Subdirectories"
|
||||
name="count_total_directories"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
<button
|
||||
type="object"
|
||||
name="action_dms_files_all_directory"
|
||||
class="oe_stat_button"
|
||||
icon="fa-file-text-o"
|
||||
>
|
||||
<field
|
||||
string="Files"
|
||||
name="count_total_files"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<field
|
||||
name="image_1920"
|
||||
widget="image"
|
||||
class="oe_avatar"
|
||||
nolabel="1"
|
||||
options="{'image_preview': 'image_128'}"
|
||||
/>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field name="name" placeholder="My Documents" />
|
||||
</h1>
|
||||
<h4>
|
||||
<label for="complete_name" class="oe_edit_only" />
|
||||
<field name="complete_name" />
|
||||
</h4>
|
||||
</div>
|
||||
<group name="settings">
|
||||
<group>
|
||||
<field
|
||||
name="is_root_directory"
|
||||
readonly="1"
|
||||
groups="!dms.group_dms_manager"
|
||||
/>
|
||||
<field
|
||||
name="is_root_directory"
|
||||
groups="dms.group_dms_manager"
|
||||
/>
|
||||
<field
|
||||
name="storage_id"
|
||||
options="{'no_open': True}"
|
||||
readonly="not is_root_directory"
|
||||
required="is_root_directory"
|
||||
force_save="1"
|
||||
groups="!dms.group_dms_manager"
|
||||
/>
|
||||
<field
|
||||
name="storage_id"
|
||||
options="{}"
|
||||
readonly="not is_root_directory"
|
||||
required="is_root_directory"
|
||||
force_save="1"
|
||||
groups="dms.group_dms_manager"
|
||||
/>
|
||||
</group>
|
||||
<group>
|
||||
<field
|
||||
name="inherit_group_ids"
|
||||
invisible="is_root_directory"
|
||||
/>
|
||||
<field
|
||||
name="parent_id"
|
||||
options="{'no_quick_create': True}"
|
||||
invisible="is_root_directory"
|
||||
required="not is_root_directory"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="data">
|
||||
<group>
|
||||
<field name="human_size" string="Size" />
|
||||
<field name="count_elements" string="Elements" />
|
||||
</group>
|
||||
<group>
|
||||
<field
|
||||
name="category_id"
|
||||
placeholder="Internal / Human Resource"
|
||||
options="{'no_open': True, 'no_create': True}"
|
||||
/>
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
placeholder="Tags..."
|
||||
options="{'color_field': 'color', 'no_create_edit': True}"
|
||||
/>
|
||||
<field name="starred" widget="boolean_favorite" />
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="storage_id_save_type" invisible="True" />
|
||||
<field
|
||||
name="storage_id_inherit_access_from_parent_record"
|
||||
invisible="True"
|
||||
/>
|
||||
<field name="allowed_model_ids" invisible="True" />
|
||||
<field
|
||||
name="model_id"
|
||||
invisible="storage_id_save_type != 'attachment'"
|
||||
readonly="count_total_files > 0"
|
||||
required="storage_id_save_type == 'attachment'"
|
||||
/>
|
||||
<field name="res_model" invisible="1" force_save="1" />
|
||||
<field
|
||||
name="res_id"
|
||||
readonly="True"
|
||||
invisible="storage_id_save_type != 'attachment'"
|
||||
/>
|
||||
<field
|
||||
name="record_ref"
|
||||
invisible="storage_id_save_type != 'attachment'"
|
||||
/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page name="page_directories" string="Subdirectories">
|
||||
<field
|
||||
name="child_directory_ids"
|
||||
context="{'default_parent_id': id, 'mail_create_nolog': True}"
|
||||
readonly="not permission_create"
|
||||
>
|
||||
<list limit="10">
|
||||
<field name="name" />
|
||||
<field
|
||||
name="count_directories"
|
||||
string="Directories"
|
||||
/>
|
||||
<field name="count_total_files" string="Files" />
|
||||
<field name="human_size" string="Size" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page name="page_files" string="Files">
|
||||
<field
|
||||
name="file_ids"
|
||||
context="{'default_directory_id': id, 'mail_create_nolog': True}"
|
||||
readonly="not permission_create"
|
||||
>
|
||||
<list limit="10">
|
||||
<field name="name" />
|
||||
<field name="mimetype" />
|
||||
<field name="human_size" string="Size" />
|
||||
<field name="write_date" readonly="1" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page name="page_meta" string="Meta Information">
|
||||
<group>
|
||||
<group>
|
||||
<field name="create_date" readonly="1" />
|
||||
<field name="create_uid" readonly="1" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="write_date" readonly="1" />
|
||||
<field name="write_uid" readonly="1" />
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page name="page_access" string="Access Information">
|
||||
<group name="permissions">
|
||||
<group>
|
||||
<field name="permission_read" readonly="1" />
|
||||
<field name="permission_create" readonly="1" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="permission_write" readonly="1" />
|
||||
<field name="permission_unlink" readonly="1" />
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page
|
||||
string="Groups"
|
||||
invisible="storage_id_save_type == 'attachment' and storage_id_inherit_access_from_parent_record"
|
||||
>
|
||||
<field name="group_ids">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="perm_create" />
|
||||
<field name="perm_write" />
|
||||
<field name="perm_unlink" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page
|
||||
string="Complete Groups"
|
||||
invisible="storage_id_save_type == 'attachment' and storage_id_inherit_access_from_parent_record"
|
||||
>
|
||||
<field name="complete_group_ids">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="perm_create" />
|
||||
<field name="perm_write" />
|
||||
<field name="perm_unlink" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
<page name="mail_alias" string="Email Alias">
|
||||
<group>
|
||||
<group>
|
||||
<field
|
||||
name="alias_contact"
|
||||
string="Accept Emails from"
|
||||
/>
|
||||
<field name="alias_process" />
|
||||
</group>
|
||||
<group>
|
||||
<label for="alias_name" string="Email Alias" />
|
||||
<div>
|
||||
<field name="alias_name" class="oe_inline" />
|
||||
<span class="oe_read_only">@</span>
|
||||
<span class="oe_edit_only"> @ </span>
|
||||
<field
|
||||
name="alias_domain"
|
||||
placeholder="mail.catchall.domain"
|
||||
class="oe_inline"
|
||||
readonly="1"
|
||||
/>
|
||||
</div>
|
||||
<field
|
||||
name="alias_id"
|
||||
readonly="1"
|
||||
required="0"
|
||||
groups="base.group_no_one"
|
||||
string="Alias Setting"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<chatter />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_directory" model="ir.actions.act_window">
|
||||
<field name="name">Directories</field>
|
||||
<field name="res_model">dms.directory</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="domain">[("is_hidden", "=", False)]</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Add a new Directory.
|
||||
</p>
|
||||
<p>
|
||||
Directories can be used to structure and organize
|
||||
files directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_directory_new_form" model="ir.ui.view">
|
||||
<field name="name">dms_directory.form</field>
|
||||
<field name="model">dms.directory</field>
|
||||
<field name="inherit_id" ref="view_dms_directory_form" />
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//sheet//div[hasclass('oe_button_box')]" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//sheet//group[@name='settings']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//sheet//group[@name='data']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//sheet//group[@name='data']" position="after">
|
||||
<group>
|
||||
<group>
|
||||
<field
|
||||
name="is_root_directory"
|
||||
readonly="1"
|
||||
groups="!dms.group_dms_manager"
|
||||
/>
|
||||
<field
|
||||
name="is_root_directory"
|
||||
groups="dms.group_dms_manager"
|
||||
/>
|
||||
<field
|
||||
name="storage_id"
|
||||
options="{'no_quick_create': True}"
|
||||
readonly="not is_root_directory"
|
||||
required="is_root_directory"
|
||||
force_save="1"
|
||||
/>
|
||||
</group>
|
||||
<group>
|
||||
<field
|
||||
name="category_id"
|
||||
placeholder="Internal / Human Resource"
|
||||
options="{'no_open': True, 'no_create': True}"
|
||||
/>
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
placeholder="Tags..."
|
||||
options="{'color_field': 'color', 'no_create_edit': True}"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
</xpath>
|
||||
<form position="inside">
|
||||
<footer>
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
type="object"
|
||||
string="Create"
|
||||
name="action_save_onboarding_directory_step"
|
||||
/>
|
||||
<button special="cancel" string="Cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_directory_new" model="ir.actions.act_window">
|
||||
<field name="name">New Root Directory</field>
|
||||
<field name="res_model">dms.directory</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="view_id" ref="view_dms_directory_new_form" />
|
||||
</record>
|
||||
</odoo>
|
||||
638
dms/views/dms_file.xml
Normal file
638
dms/views/dms_file.xml
Normal file
@ -0,0 +1,638 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2021 Tecnativa - Víctor Martínez
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<record id="search_dms_file" model="ir.ui.view">
|
||||
<field name="name">dms_file.search</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name" filter_domain="[('name','ilike',self)]" />
|
||||
<filter
|
||||
string="All Files"
|
||||
name="all"
|
||||
domain="['|',('active', '=', False), ('active', '!=', False)]"
|
||||
/>
|
||||
<filter
|
||||
string="My Files"
|
||||
name="filter_user"
|
||||
domain="[('create_uid', '=', uid)]"
|
||||
/>
|
||||
<separator />
|
||||
<filter
|
||||
string="Archived Files"
|
||||
name="filter_active"
|
||||
domain="[('active', '=', False)]"
|
||||
/>
|
||||
<separator />
|
||||
<filter
|
||||
string="Creation Date"
|
||||
name="filter_create"
|
||||
date="create_date"
|
||||
/>
|
||||
<filter
|
||||
string="Modification Date"
|
||||
name="filter_write"
|
||||
date="write_date"
|
||||
/>
|
||||
<group>
|
||||
<filter
|
||||
name="group_color"
|
||||
string="Color"
|
||||
domain="[]"
|
||||
context="{'group_by':'color'}"
|
||||
/>
|
||||
<filter
|
||||
name="group_category"
|
||||
string="Category"
|
||||
domain="[]"
|
||||
context="{'group_by':'category_id'}"
|
||||
/>
|
||||
<separator />
|
||||
<filter
|
||||
name="group_storage"
|
||||
string="Storage"
|
||||
domain="[]"
|
||||
context="{'group_by':'storage_id'}"
|
||||
/>
|
||||
<filter
|
||||
name="group_directory"
|
||||
string="Directories"
|
||||
domain="[]"
|
||||
context="{'group_by':'directory_id'}"
|
||||
/>
|
||||
</group>
|
||||
<searchpanel>
|
||||
<field
|
||||
name="directory_id"
|
||||
icon="fa-folder"
|
||||
limit="0"
|
||||
enable_counters="1"
|
||||
/>
|
||||
<field
|
||||
name="category_id"
|
||||
icon="fa-users"
|
||||
limit="0"
|
||||
enable_counters="1"
|
||||
/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_file_kanban" model="ir.ui.view">
|
||||
<field name="name">dms_file.kanban</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban
|
||||
js_class="file_kanban"
|
||||
class="mk_file_kanban_view o_kanban_small_column o_kanban_mobile"
|
||||
banner_route="/onboarding/document_onboarding_file"
|
||||
highlight_color="color"
|
||||
>
|
||||
<field name="id" />
|
||||
<field name="tag_ids" />
|
||||
<field name="name" />
|
||||
<field name="color" />
|
||||
<field name="active" />
|
||||
<field name="mimetype" />
|
||||
<field name="icon_url" />
|
||||
<field name="create_uid" />
|
||||
<field name="write_date" />
|
||||
<field name="locked_by" />
|
||||
<field name="is_locked" />
|
||||
<field name="is_lock_editor" />
|
||||
<field name="permission_write" />
|
||||
<field name="permission_unlink" />
|
||||
<field name="write_date" />
|
||||
<templates>
|
||||
<t t-name="menu">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div name="card_menu_Operations" class="col-6">
|
||||
<h5
|
||||
role="menuitem"
|
||||
class="o_kanban_card_manage_title"
|
||||
>
|
||||
<span>Operations</span>
|
||||
</h5>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.permission_write.raw_value and !record.is_locked.raw_value"
|
||||
>
|
||||
<a name="lock" type="object">
|
||||
<i class="fa fa-lock" />
|
||||
Lock
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.is_locked.raw_value and record.is_lock_editor.raw_value"
|
||||
>
|
||||
<a name="unlock" type="object">
|
||||
<i class="fa fa-unlock-alt" />
|
||||
Unlock
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.permission_write.raw_value and record.active.raw_value and (!record.is_locked.raw_value or (record.is_locked.raw_value and record.is_lock_editor.raw_value))"
|
||||
>
|
||||
<a name="toggle_active" type="object">
|
||||
<i class="fa fa-archive" />
|
||||
Archive
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.permission_write.raw_value and !record.active.raw_value and (!record.is_locked.raw_value or (record.is_locked.raw_value and record.is_lock_editor.raw_value))"
|
||||
>
|
||||
<a name="toggle_active" type="object">
|
||||
<i class="fa fa-archive" />
|
||||
Unarchive
|
||||
</a>
|
||||
</div>
|
||||
<div role="menuitem">
|
||||
<a
|
||||
t-attf-href="/web/content?id=#{record.id.raw_value}&field=content&model=dms.file&filename_field=name&download=true"
|
||||
>
|
||||
<i class="fa fa-download" />
|
||||
Download
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 o_kanban_manage_actions">
|
||||
<h5
|
||||
role="menuitem"
|
||||
class="o_kanban_card_manage_title"
|
||||
>
|
||||
<span>Actions</span>
|
||||
</h5>
|
||||
<div role="menuitem">
|
||||
<a type="open">
|
||||
<i class="fa fa-external-link" />
|
||||
Open
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.permission_write.raw_value"
|
||||
>
|
||||
<a type="edit">
|
||||
<i class="fa fa-pencil-square-o" />
|
||||
Edit
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
role="menuitem"
|
||||
t-if="record.permission_unlink.raw_value and (!record.is_locked.raw_value or (record.is_locked.raw_value and record.is_lock_editor.raw_value))"
|
||||
>
|
||||
<a type="delete">
|
||||
<i class="fa fa-trash-o" />
|
||||
Delete
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_card_manage_actions row">
|
||||
<div
|
||||
role="menuitem"
|
||||
aria-haspopup="true"
|
||||
class="col-6"
|
||||
t-if="record.permission_write.raw_value"
|
||||
>
|
||||
<field name="color" widget="kanban_color_picker" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="card" class="flex-row">
|
||||
<main>
|
||||
<div
|
||||
t-attf-class="oe_kanban_global_click oe_kanban_content row g-0"
|
||||
>
|
||||
<div class="col-3">
|
||||
<a
|
||||
class="h-100 d-block o_kanban_dms_file_preview"
|
||||
t-att-data-id="record.id.raw_value"
|
||||
t-att-id="record.id.raw_value"
|
||||
t-att-name="record.name.raw_value"
|
||||
>
|
||||
<img
|
||||
t-att-src="record.icon_url.raw_value"
|
||||
style="height:70px;"
|
||||
alt="Icon"
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-9">
|
||||
<field name="name" class="fw-bold" />
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
options="{'color_field': 'color'}"
|
||||
/>
|
||||
<field name="write_date" widget="date" />
|
||||
</div>
|
||||
<footer class="mt-auto pt-0 ms-1">
|
||||
<div class="d-flex ms-auto oe_kanban_bottom_right">
|
||||
<span
|
||||
t-if="record.is_locked.raw_value"
|
||||
class="o_dms_file_kanban_lock"
|
||||
>
|
||||
<i
|
||||
t-attf-class="fa #{(record.is_locked.raw_value and !record.is_lock_editor.raw_value) ? 'fa-lock' : ''} #{((record.is_locked.raw_value and record.is_lock_editor.raw_value)) ? 'fa-unlock-alt' : ''}"
|
||||
t-att-title="record.locked_by.value"
|
||||
/>
|
||||
</span>
|
||||
<img
|
||||
t-attf-src="/web/image/res.users/#{record.create_uid.raw_value}/avatar_128"
|
||||
t-att-alt="record.create_uid.value"
|
||||
class="oe_kanban_avatar"
|
||||
style="max-width:20px;"
|
||||
/>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</main>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Base view that can be overwritten by other modules as needed !-->
|
||||
<record id="view_dms_file_kanban_wizard_selection" model="ir.ui.view">
|
||||
<field name="name">dms_file.kanban.wizard.selection</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="inherit_id" ref="dms.view_dms_file_kanban" />
|
||||
<field name="priority">9999</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban position="attributes">
|
||||
<attribute name="banner_route" />
|
||||
<attribute name="class">o_kanban_mobile mk_file_kanban_view</attribute>
|
||||
</kanban>
|
||||
<xpath expr="//div[hasclass('oe_kanban_bottom_right')]" position="replace">
|
||||
<div class="oe_kanban_bottom_right" />
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_file_tree" model="ir.ui.view">
|
||||
<field name="name">dms_file.list</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<list
|
||||
js_class="file_list"
|
||||
decoration-warning="not active"
|
||||
decoration-muted="(is_locked and not is_lock_editor)"
|
||||
multi_edit="1"
|
||||
default_order="name asc"
|
||||
>
|
||||
<field name="active" column_invisible="1" />
|
||||
<field name="is_locked" column_invisible="1" />
|
||||
<field name="is_lock_editor" column_invisible="1" />
|
||||
<field name="name" />
|
||||
<field name="directory_id" optional="hide" />
|
||||
<field name="root_directory_id" optional="hide" />
|
||||
<field name="write_date" />
|
||||
<field name="human_size" string="Size" />
|
||||
<field name="mimetype" />
|
||||
<field name="category_id" column_invisible="1" />
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
options="{'color_field': 'color', 'no_create_edit': True}"
|
||||
/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_file_graph" model="ir.ui.view">
|
||||
<field name="name">dms_file.graph</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph type="pie">
|
||||
<field name="directory_id" type="row" />
|
||||
<field name="size" type="measure" />
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_file_pivot" model="ir.ui.view">
|
||||
<field name="name">dms_file.pivot</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot display_quantity="true">
|
||||
<field name="storage_id" type="row" />
|
||||
<field name="directory_id" type="row" />
|
||||
<field name="size" type="measure" />
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_file_form" model="ir.ui.view">
|
||||
<field name="name">dms_file.form</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Files">
|
||||
<header>
|
||||
<button
|
||||
class="oe_highlight"
|
||||
name="lock"
|
||||
type="object"
|
||||
string="Lock"
|
||||
invisible="is_locked or not permission_write"
|
||||
/>
|
||||
<button
|
||||
class="oe_highlight"
|
||||
name="unlock"
|
||||
type="object"
|
||||
string="Unlock"
|
||||
invisible="not is_locked or not is_lock_editor"
|
||||
/>
|
||||
</header>
|
||||
<sheet>
|
||||
<!-- locked ribbon first, so that archived ribbon appear above if archived-->
|
||||
<widget
|
||||
name="web_ribbon"
|
||||
title="Locked"
|
||||
bg_color="text-bg-info"
|
||||
invisible="not is_locked or (is_locked and locked_by != uid)"
|
||||
/>
|
||||
<widget
|
||||
name="web_ribbon"
|
||||
title="Locked"
|
||||
bg_color="text-bg-warning"
|
||||
invisible="not is_locked or (is_locked and locked_by == uid)"
|
||||
/>
|
||||
<widget
|
||||
name="web_ribbon"
|
||||
title="Archived"
|
||||
bg_color="bg-danger"
|
||||
invisible="active"
|
||||
/>
|
||||
<div class="oe_button_box" name="button_box" />
|
||||
<field
|
||||
name="image_1920"
|
||||
widget="image"
|
||||
class="oe_avatar"
|
||||
nolabel="1"
|
||||
options="{'image_preview': 'image_128'}"
|
||||
/>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field name="name" />
|
||||
<field name="active" invisible="1" />
|
||||
</h1>
|
||||
<h4>
|
||||
<field
|
||||
name="path_json"
|
||||
widget="path_json"
|
||||
options="{'prefix': True, 'suffix': False}"
|
||||
invisible="not name or not directory_id"
|
||||
/>
|
||||
</h4>
|
||||
</div>
|
||||
<group name="content">
|
||||
<group>
|
||||
<field name="content" filename="name" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="extension" />
|
||||
<field name="mimetype" />
|
||||
</group>
|
||||
</group>
|
||||
<group name="settings">
|
||||
<group>
|
||||
<field
|
||||
name="directory_id"
|
||||
options="{'no_quick_create': True}"
|
||||
/>
|
||||
<field
|
||||
name="storage_id"
|
||||
options="{'no_open': True}"
|
||||
groups="!dms.group_dms_manager"
|
||||
/>
|
||||
<field name="storage_id" groups="dms.group_dms_manager" />
|
||||
</group>
|
||||
<group>
|
||||
<field
|
||||
name="category_id"
|
||||
placeholder="Internal / Human Resource"
|
||||
options="{'no_open': True, 'no_create': True}"
|
||||
/>
|
||||
<field
|
||||
name="tag_ids"
|
||||
widget="many2many_tags"
|
||||
placeholder="Tags..."
|
||||
options="{'color_field': 'color', 'no_create_edit': True}"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="storage_id_save_type" invisible="True" />
|
||||
<field
|
||||
name="res_model"
|
||||
readonly="True"
|
||||
invisible="storage_id_save_type != 'attachment'"
|
||||
/>
|
||||
<field
|
||||
name="res_id"
|
||||
readonly="True"
|
||||
invisible="storage_id_save_type != 'attachment'"
|
||||
/>
|
||||
<field
|
||||
name="record_ref"
|
||||
invisible="storage_id_save_type != 'attachment'"
|
||||
/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page name="page_meta" string="Meta Information">
|
||||
<group>
|
||||
<group>
|
||||
<field name="create_date" readonly="1" />
|
||||
<field name="create_uid" readonly="1" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="write_date" readonly="1" />
|
||||
<field name="write_uid" readonly="1" />
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page name="page_access" string="Access Information">
|
||||
<group>
|
||||
<group>
|
||||
<field name="permission_write" readonly="1" />
|
||||
<field name="permission_unlink" readonly="1" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="is_lock_editor" invisible="1" />
|
||||
<field name="is_locked" invisible="1" />
|
||||
<field name="locked_by" />
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page
|
||||
name="page_technical"
|
||||
string="Technical Information"
|
||||
invisible="1"
|
||||
groups="dms.group_dms_manager,base.group_no_one"
|
||||
>
|
||||
<group name="technical">
|
||||
<group name="technical_left" />
|
||||
<group name="technical_right" />
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<chatter />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_file" model="ir.actions.act_window">
|
||||
<field name="name">Files</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="view_mode">kanban,list,graph,pivot,form</field>
|
||||
<field name="domain">[("is_hidden", "=", False)]</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Add a new File.
|
||||
</p>
|
||||
<p>
|
||||
Files are used to save content directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Base action to be called when a file selector is to be used !-->
|
||||
<record id="action_dms_file_wizard_selector" model="ir.actions.act_window">
|
||||
<field name="name">Files</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="target">new</field>
|
||||
<field name="view_mode">kanban</field>
|
||||
<field name="context">{'create': False}</field>
|
||||
<field
|
||||
name="view_ids"
|
||||
eval="[(5, 0, 0),(0, 0, {'view_mode': 'kanban', 'view_id': ref('view_dms_file_kanban_wizard_selection')})]"
|
||||
/>
|
||||
</record>
|
||||
<record id="search_dms_file_migration" model="ir.ui.view">
|
||||
<field name="name">dms_file.search</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name" filter_domain="[('name','ilike',self)]" />
|
||||
<group>
|
||||
<filter
|
||||
name="group_storage"
|
||||
string="Storage"
|
||||
domain="[]"
|
||||
context="{'group_by':'storage_id'}"
|
||||
/>
|
||||
</group>
|
||||
<searchpanel>
|
||||
<field
|
||||
name="directory_id"
|
||||
icon="fa-folder"
|
||||
limit="0"
|
||||
enable_counters="1"
|
||||
/>
|
||||
<field
|
||||
name="category_id"
|
||||
icon="fa-users"
|
||||
limit="0"
|
||||
enable_counters="1"
|
||||
/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_file_migration_tree" model="ir.ui.view">
|
||||
<field name="name">dms_file.list</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="arch" type="xml">
|
||||
<list
|
||||
decoration-muted="(is_locked and not is_lock_editor)"
|
||||
create="0"
|
||||
delete="0"
|
||||
>
|
||||
<field name="is_locked" column_invisible="1" />
|
||||
<field name="is_lock_editor" column_invisible="1" />
|
||||
<field name="name" />
|
||||
<field name="write_date" />
|
||||
<field name="human_size" string="Size" />
|
||||
<field name="mimetype" />
|
||||
<field name="storage_id" />
|
||||
<field name="migration" />
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_file_migration" model="ir.actions.act_window">
|
||||
<field name="name">Files</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="view_mode">list</field>
|
||||
<field name="search_view_id" ref="search_dms_file_migration" />
|
||||
<field
|
||||
name="domain"
|
||||
>[('require_migration', '=', True), '|', ('active', '=', False), ('active', '!=', False)]
|
||||
</field>
|
||||
<field name="context">{'search_default_group_storage': 1}</field>
|
||||
<field
|
||||
name="view_ids"
|
||||
eval="[(5, 0, 0), (0, 0, {'view_mode': 'list', 'view_id': ref('view_dms_file_migration_tree')})]"
|
||||
/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Add a new File.
|
||||
</p>
|
||||
<p>
|
||||
Files are used to save content directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_file_new_form" model="ir.ui.view">
|
||||
<field name="name">dms_file.form</field>
|
||||
<field name="model">dms.file</field>
|
||||
<field name="inherit_id" ref="view_dms_file_form" />
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//sheet//div[hasclass('oe_button_box')]" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<form position="inside">
|
||||
<footer>
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
type="object"
|
||||
string="Create"
|
||||
name="action_save_onboarding_file_step"
|
||||
/>
|
||||
<button special="cancel" string="Cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_file_new" model="ir.actions.act_window">
|
||||
<field name="name">New Root Directory</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="view_id" ref="view_dms_file_new_form" />
|
||||
</record>
|
||||
<record id="action_wizard_dms_file_move" model="ir.actions.server">
|
||||
<field name="name">Move</field>
|
||||
<field name="model_id" ref="dms.model_dms_file" />
|
||||
<field name="binding_model_id" ref="dms.model_dms_file" />
|
||||
<field name="group_ids" eval="[(4, ref('dms.group_dms_user'))]" />
|
||||
<field name="binding_view_types">list</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
action = model.action_wizard_dms_file_move()
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
151
dms/views/dms_tag.xml
Normal file
151
dms/views/dms_tag.xml
Normal file
@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<record id="view_dms_tag_search" model="ir.ui.view">
|
||||
<field name="name">dms_tag.search</field>
|
||||
<field name="model">dms.tag</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Categories">
|
||||
<field name="name" filter_domain="[('name', 'ilike', self)]" />
|
||||
<filter
|
||||
string="All"
|
||||
name="all"
|
||||
domain="['|', ('active', '=', False), ('active', '=', True)]"
|
||||
/>
|
||||
<group name="group_by">
|
||||
<filter
|
||||
name="group_by_category"
|
||||
string="Category"
|
||||
domain="[]"
|
||||
context="{'group_by': 'category_id'}"
|
||||
/>
|
||||
<filter
|
||||
name="group_by_color"
|
||||
string="Color"
|
||||
domain="[]"
|
||||
context="{'group_by': 'color'}"
|
||||
/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_tag_kanban" model="ir.ui.view">
|
||||
<field name="name">dms_tag.kanban</field>
|
||||
<field name="model">dms.tag</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban highlight_color="color" group_create="false">
|
||||
<templates>
|
||||
<t t-name="menu">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div name="card_menu_view">
|
||||
<div role="menuitem">
|
||||
<a type="open">
|
||||
<i class="fa fa-external-link" />
|
||||
Open
|
||||
</a>
|
||||
</div>
|
||||
<div role="menuitem">
|
||||
<a type="edit">
|
||||
<i class="fa fa-pencil-square-o" />
|
||||
Edit
|
||||
</a>
|
||||
</div>
|
||||
<div role="menuitem">
|
||||
<a type="delete">
|
||||
<i class="fa fa-trash-o" />
|
||||
Delete
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_card_manage_settings row">
|
||||
<div role="menuitem" aria-haspopup="true" class="col-6">
|
||||
<field name="color" widget="kanban_color_picker" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="card">
|
||||
<div>
|
||||
<field name="name" />
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_tag_tree" model="ir.ui.view">
|
||||
<field name="name">dms_tag.list</field>
|
||||
<field name="model">dms.tag</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="category_id" />
|
||||
<field name="color" widget="color_picker" />
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_tag_form" model="ir.ui.view">
|
||||
<field name="name">dms_tag.form</field>
|
||||
<field name="model">dms.tag</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Tag">
|
||||
<sheet>
|
||||
<widget
|
||||
name="web_ribbon"
|
||||
title="Archived"
|
||||
bg_color="bg-danger"
|
||||
invisible="active"
|
||||
/>
|
||||
<div class="oe_button_box" name="button_box" />
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field name="name" placeholder="Customer" />
|
||||
<field name="active" invisible="1" />
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="category_id" />
|
||||
<field name="color" widget="color_picker" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="count_files" string="Files" />
|
||||
<field name="count_directories" string="Directories" />
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Directories">
|
||||
<field name="directory_ids" widget="one2many" mode="list" />
|
||||
</page>
|
||||
<page string="Files">
|
||||
<field name="file_ids" widget="one2many" mode="list" />
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_tag" model="ir.actions.act_window">
|
||||
<field name="name">Tags</field>
|
||||
<field name="res_model">dms.tag</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="context">{'search_default_group_by_category': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Click to create a new tag.
|
||||
</p>
|
||||
<p>
|
||||
Tags are used to categorize Documents.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
74
dms/views/menu.xml
Normal file
74
dms/views/menu.xml
Normal file
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<menuitem
|
||||
id="main_menu_dms"
|
||||
name="Documents"
|
||||
web_icon="dms,static/description/icon.png"
|
||||
groups="group_dms_user"
|
||||
>
|
||||
<menuitem
|
||||
id="menu_dms_file"
|
||||
name="Files"
|
||||
sequence="20"
|
||||
action="action_dms_file"
|
||||
/>
|
||||
<menuitem
|
||||
id="menu_dms_directory"
|
||||
name="Directories"
|
||||
sequence="30"
|
||||
action="action_dms_directory"
|
||||
/>
|
||||
<menuitem id="cat_menu_dms_config" name="Configuration" sequence="50">
|
||||
<menuitem
|
||||
id="menu_dms_settings_general"
|
||||
name="General Settings"
|
||||
sequence="0"
|
||||
action="action_dms_settings_general"
|
||||
groups="base.group_system"
|
||||
/>
|
||||
<menuitem
|
||||
id="cat_menu_dms_config_organizing"
|
||||
name="Organizing"
|
||||
sequence="5"
|
||||
>
|
||||
<menuitem id="menu_dms_tag" name="Tags" action="action_dms_tag" />
|
||||
<menuitem
|
||||
id="menu_dms_category"
|
||||
name="Categories"
|
||||
action="action_dms_category"
|
||||
/>
|
||||
</menuitem>
|
||||
<menuitem
|
||||
id="cat_menu_dms_config_system"
|
||||
name="System"
|
||||
groups="dms.group_dms_manager"
|
||||
sequence="25"
|
||||
>
|
||||
<menuitem
|
||||
id="menu_dms_storage"
|
||||
name="Storages"
|
||||
action="action_dms_storage"
|
||||
sequence="5"
|
||||
/>
|
||||
<menuitem
|
||||
id="menu_dms_file_migration"
|
||||
name="Migration"
|
||||
action="action_dms_file_migration"
|
||||
sequence="8"
|
||||
/>
|
||||
<menuitem
|
||||
id="menu_dms_access_groups"
|
||||
name="Access Groups"
|
||||
action="action_dms_access_groups"
|
||||
/>
|
||||
</menuitem>
|
||||
</menuitem>
|
||||
</menuitem>
|
||||
</odoo>
|
||||
56
dms/views/res_config_settings.xml
Normal file
56
dms/views/res_config_settings.xml
Normal file
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<record id="res_config_settings_view_form" model="ir.ui.view">
|
||||
<field name="name">res.config.settings.view.form.inherit.dms</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="priority" eval="20" />
|
||||
<field name="inherit_id" ref="base.res_config_settings_view_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//form" position="inside">
|
||||
<app string="Documents" groups="base.group_system" name="dms">
|
||||
<block title="File Upload">
|
||||
<setting
|
||||
string="File Size"
|
||||
help="Define the maximum upload size of a file in MB"
|
||||
>
|
||||
<field name="documents_binary_max_size" />
|
||||
</setting>
|
||||
<setting
|
||||
string="File Extensions"
|
||||
help="Define forbidden file extensions"
|
||||
>
|
||||
<field
|
||||
name="documents_forbidden_extensions"
|
||||
placeholder="exe,msi"
|
||||
/>
|
||||
</setting>
|
||||
<setting string="Storages" help="Show storages">
|
||||
<button
|
||||
name="%(dms.action_dms_storage)d"
|
||||
string="Storages"
|
||||
type="action"
|
||||
class="oe_link"
|
||||
icon="fa-arrow-right"
|
||||
/>
|
||||
</setting>
|
||||
</block>
|
||||
</app>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_settings_general" model="ir.actions.act_window">
|
||||
<field name="name">General Settings</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">res.config.settings</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">current</field>
|
||||
<field name="context">{'module': 'dms'}</field>
|
||||
</record>
|
||||
</odoo>
|
||||
253
dms/views/storage.xml
Normal file
253
dms/views/storage.xml
Normal file
@ -0,0 +1,253 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
|
||||
Copyright 2017-2019 MuK IT GmbH
|
||||
Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
||||
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
-->
|
||||
<odoo>
|
||||
<record id="action_dms_directories_storage" model="ir.actions.act_window">
|
||||
<field name="name">Directories</field>
|
||||
<field name="res_model">dms.directory</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="domain">
|
||||
[
|
||||
("storage_id", "=", active_id),
|
||||
("is_hidden", "=", False),
|
||||
]
|
||||
</field>
|
||||
<field name="context">
|
||||
{
|
||||
'default_storage_id': active_id,
|
||||
'default_is_root_directory': True,
|
||||
}
|
||||
</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Click to add a new directory.
|
||||
</p>
|
||||
<p>
|
||||
Directories can be used to structure and organize
|
||||
files directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_files_storage" model="ir.actions.act_window">
|
||||
<field name="name">Files</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="view_mode">kanban,list,graph,pivot,form</field>
|
||||
<field name="domain">
|
||||
[
|
||||
("storage_id", "=", active_id),
|
||||
("is_hidden", "=", False),
|
||||
]
|
||||
</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Click to add a new file.
|
||||
</p>
|
||||
<p>
|
||||
Files are used to save content directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_file_storage_migration" model="ir.actions.act_window">
|
||||
<field name="name">Files</field>
|
||||
<field name="res_model">dms.file</field>
|
||||
<field name="view_mode">list</field>
|
||||
<field name="search_view_id" ref="search_dms_file_migration" />
|
||||
<field name="domain">
|
||||
[
|
||||
("storage_id", "=", active_id),
|
||||
("require_migration", "=", True),
|
||||
"|",("active", "=", False), ("active", "!=", False)
|
||||
]
|
||||
</field>
|
||||
<field
|
||||
name="view_ids"
|
||||
eval="[(5, 0, 0), (0, 0, {'view_mode': 'list', 'view_id': ref('view_dms_file_migration_tree')})]"
|
||||
/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Add a new File.
|
||||
</p>
|
||||
<p>
|
||||
Files are used to save content directly in Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_storage_search" model="ir.ui.view">
|
||||
<field name="name">dms_storage.search</field>
|
||||
<field name="model">dms.storage</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="name" />
|
||||
<group>
|
||||
<filter
|
||||
string="Save Type"
|
||||
name="group_save_type"
|
||||
domain="[]"
|
||||
context="{'group_by':'save_type'}"
|
||||
/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_storage_tree" model="ir.ui.view">
|
||||
<field name="name">dms_storage.list</field>
|
||||
<field name="model">dms.storage</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="save_type" />
|
||||
<field name="is_hidden" />
|
||||
<field name="company_id" />
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_storage_form" model="ir.ui.view">
|
||||
<field name="name">dms_storage.form</field>
|
||||
<field name="model">dms.storage</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<button
|
||||
name="action_storage_migrate"
|
||||
type="object"
|
||||
string="Migrate Files"
|
||||
invisible="save_type == 'attachment'"
|
||||
/>
|
||||
<button
|
||||
type="action"
|
||||
name="%(dms.action_dms_file_storage_migration)d"
|
||||
class="oe_stat_button"
|
||||
string="Manual File Migration"
|
||||
/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button
|
||||
type="action"
|
||||
name="%(dms.action_dms_directories_storage)d"
|
||||
class="oe_stat_button"
|
||||
icon="fa-folder-open-o"
|
||||
>
|
||||
<field
|
||||
string="Directories"
|
||||
name="count_storage_directories"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
<button
|
||||
type="action"
|
||||
name="%(dms.action_dms_files_storage)d"
|
||||
class="oe_stat_button"
|
||||
icon="fa-file-text-o"
|
||||
>
|
||||
<field
|
||||
string="Files"
|
||||
name="count_storage_files"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only" />
|
||||
<h1>
|
||||
<field name="name" />
|
||||
</h1>
|
||||
</div>
|
||||
<group name="save_storage">
|
||||
<group name="save_storage_left">
|
||||
<field name="save_type" />
|
||||
</group>
|
||||
<group name="save_storage_right" />
|
||||
</group>
|
||||
<group name="data_storage">
|
||||
<group>
|
||||
<field name="is_hidden" />
|
||||
<field
|
||||
name="inherit_access_from_parent_record"
|
||||
invisible="save_type != 'attachment'"
|
||||
/>
|
||||
<field
|
||||
name="include_message_attachments"
|
||||
invisible="save_type != 'attachment'"
|
||||
/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="company_id" />
|
||||
<field name="model_ids" invisible="save_type != 'attachment'" />
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page
|
||||
name="page_roots"
|
||||
string="Root Directories"
|
||||
invisible="not id"
|
||||
>
|
||||
<field
|
||||
name="root_directory_ids"
|
||||
groups="dms.group_dms_manager"
|
||||
context="{'hide_root_storage': True,'default_storage_id': id, 'default_is_root_directory': True}"
|
||||
>
|
||||
<list>
|
||||
<field name="name" />
|
||||
<field name="count_total_directories" />
|
||||
<field name="count_total_files" />
|
||||
<field name="human_size" string="Size" />
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>º
|
||||
<record id="action_dms_storage" model="ir.actions.act_window">
|
||||
<field name="name">Storages</field>
|
||||
<field name="res_model">dms.storage</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new Storage object.
|
||||
</p>
|
||||
<p>
|
||||
Storages are used to configure your Documents.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_dms_storage_new_form" model="ir.ui.view">
|
||||
<field name="name">dms_storage.form</field>
|
||||
<field name="model">dms.storage</field>
|
||||
<field name="inherit_id" ref="view_dms_storage_form" />
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//header" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//sheet//div[hasclass('oe_button_box')]" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
<form position="inside">
|
||||
<footer>
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
type="object"
|
||||
string="Create"
|
||||
name="action_save_onboarding_storage_step"
|
||||
/>
|
||||
<button special="cancel" string="Cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_dms_storage_new" model="ir.actions.act_window">
|
||||
<field name="name">New Storage</field>
|
||||
<field name="res_model">dms.storage</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
<field name="view_id" ref="view_dms_storage_new_form" />
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user