taken report_document from trunk
bzr revid: hmo@tinyerp.com-20080930130548-kem2sy40xmgyxm16
This commit is contained in:
@@ -194,13 +194,6 @@ class node_class(object):
|
||||
path = self.path[1:]
|
||||
return path
|
||||
|
||||
class document_directory_node(osv.osv):
|
||||
_inherit = 'process.node'
|
||||
_columns = {
|
||||
'directory_id': fields.many2one('document.directory', 'Document directory', ondelete="set null"),
|
||||
}
|
||||
document_directory_node()
|
||||
|
||||
class document_directory(osv.osv):
|
||||
_name = 'document.directory'
|
||||
_description = 'Document directory'
|
||||
@@ -233,6 +226,25 @@ class document_directory(osv.osv):
|
||||
('dirname_uniq', 'unique (name,parent_id,ressource_id,ressource_parent_type_id)', 'The directory name must be unique !')
|
||||
]
|
||||
|
||||
def get_resource_path(self,cr,uid,res_model,res_id):
|
||||
# to be need test
|
||||
path=[]
|
||||
def _parent(dir_id):
|
||||
parent=self.browse(cr,uid,dir_id)
|
||||
if parent.parent_id:
|
||||
_parent(parent.parent_id.id)
|
||||
else:
|
||||
path.append(parent.name)
|
||||
return path
|
||||
model_ids=self.pool.get('ir.model').search(cr,uid,[('model','=',res_model)])
|
||||
directory_ids=self.search(cr,uid,[('ressource_type_id','=',model_ids[0]),('ressource_id','=',res_id)])
|
||||
if len(directory_ids):
|
||||
path=parent(directory_ids[0])
|
||||
direc=self.browse(cr,uid,directory_ids)[0]
|
||||
path.append(direc.name)
|
||||
path.append(self.pool.get(direc.ressource_type_id.model).browse(cr,uid,res_id).name)
|
||||
return "ftp://localhost:8021/"+cr.dbname+'/'.join(path)
|
||||
return False
|
||||
def _check_duplication(self, cr, uid,vals):
|
||||
if 'name' in vals:
|
||||
where=" name='%s'"% (vals['name'])
|
||||
@@ -351,6 +363,13 @@ class document_directory(osv.osv):
|
||||
|
||||
document_directory()
|
||||
|
||||
class document_directory_node(osv.osv):
|
||||
_inherit = 'process.node'
|
||||
_columns = {
|
||||
'directory_id': fields.many2one('document.directory', 'Document directory', ondelete="set null"),
|
||||
}
|
||||
document_directory_node()
|
||||
|
||||
class document_directory_content(osv.osv):
|
||||
_name = 'document.directory.content'
|
||||
_description = 'Directory Content'
|
||||
@@ -572,4 +591,4 @@ class document_file(osv.osv):
|
||||
except:
|
||||
pass
|
||||
return super(document_file, self).unlink(cr, uid, ids, context)
|
||||
document_file()
|
||||
document_file()
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
import report_document
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
{
|
||||
"name" : "Document Management - Reporting",
|
||||
"version" : "1.0",
|
||||
"author" : "Tiny",
|
||||
"depends" : ["document"],
|
||||
"category" : "Generic Modules/Document Management",
|
||||
"description": """
|
||||
Reporting for the Document Management module:
|
||||
* Files by my
|
||||
* Files by all users
|
||||
""",
|
||||
"init_xml" : [],
|
||||
"demo_xml" : [],
|
||||
"update_xml" : ["report_document_view.xml"],
|
||||
"active": False,
|
||||
"installable": True
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (c) 2004-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
|
||||
#
|
||||
# $Id: sale.py 1005 2005-07-25 08:41:42Z nicoe $
|
||||
#
|
||||
# WARNING: This program as such is intended to be used by professional
|
||||
# programmers who take the whole responsability of assessing all potential
|
||||
# consequences resulting from its eventual inadequacies and bugs
|
||||
# End users who are looking for a ready-to-use solution with commercial
|
||||
# garantees and support are strongly adviced to contract a Free Software
|
||||
# Service Company
|
||||
#
|
||||
# This program is Free Software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields,osv
|
||||
import time
|
||||
|
||||
|
||||
class report_document_user(osv.osv):
|
||||
_name = "report.document.user"
|
||||
_description = "Files details by Users"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.date('Month', readonly=True),
|
||||
'month': fields.char('Month', size=24,readonly=True),
|
||||
'user_id':fields.integer('Owner', readonly=True),
|
||||
'user':fields.char('User',size=64,readonly=True),
|
||||
'file_title': fields.char('File Name',size=64,readonly=True),
|
||||
'directory': fields.char('Directory',size=64,readonly=True),
|
||||
'create_date': fields.datetime('Date Created', readonly=True),
|
||||
'change_date': fields.datetime('Modified Date', readonly=True),
|
||||
'file_size': fields.integer('File Size', readonly=True),
|
||||
'nbr':fields.integer('# of Files', readonly=True),
|
||||
'type':fields.char('Directory Type',size=64,readonly=True),
|
||||
'partner':fields.char('Partner',size=64,readonly=True),
|
||||
}
|
||||
def init(self, cr):
|
||||
cr.execute("""
|
||||
create or replace view report_document_user as (
|
||||
select
|
||||
min(f.id) as id,
|
||||
f.user_id as user_id,
|
||||
u.name as user,
|
||||
count(*) as nbr,
|
||||
to_char(f.create_date,'YYYY-MM')||'-'||'01' as name,
|
||||
d.name as directory,
|
||||
f.create_date as create_date,
|
||||
f.file_size as file_size,
|
||||
min(f.title) as file_title,
|
||||
min(d.type) as type,
|
||||
min(EXTRACT(MONTH FROM f.create_date)||'-'||substring(to_char(f.create_date,'YY-Month-DD') from 4 for 9)) as month,
|
||||
f.write_date as change_date
|
||||
from ir_attachment f
|
||||
left join document_directory d on (f.parent_id=d.id and d.name<>'')
|
||||
inner join res_users u on (f.user_id=u.id)
|
||||
group by d.name,f.parent_id,d.type,f.create_date,f.user_id,f.file_size,u.name,d.type,f.write_date
|
||||
)
|
||||
""")
|
||||
report_document_user()
|
||||
|
||||
class report_files_partenr(osv.osv):
|
||||
_name = "report.files.partenr"
|
||||
_description = "Files details by Partners"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.date('Month', readonly=True),
|
||||
'file_title': fields.char('File Name',size=64,readonly=True),
|
||||
'directory': fields.char('Directory',size=64,readonly=True),
|
||||
'create_date': fields.datetime('Date Created', readonly=True),
|
||||
'change_date': fields.datetime('Modified Date', readonly=True),
|
||||
'file_size': fields.integer('File Size', readonly=True),
|
||||
'nbr':fields.integer('# of Files', readonly=True),
|
||||
'type':fields.char('Directory Type',size=64,readonly=True),
|
||||
'partner':fields.char('Partner',size=64,readonly=True),
|
||||
}
|
||||
def init(self, cr):
|
||||
cr.execute("""
|
||||
create or replace view report_files_partenr as (
|
||||
select min(f.id) as id,count(*) as nbr,min(to_char(f.create_date,'YYYY-MM')||'-'||'01') as name,min(f.title) as file_title,p.name as partner from ir_attachment f inner join res_partner p on (f.partner_id=p.id) group by p.name
|
||||
)
|
||||
""")
|
||||
report_files_partenr()
|
||||
|
||||
class report_document_file(osv.osv):
|
||||
_name = "report.document.file"
|
||||
_description = "Files details by Directory"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'file_size': fields.integer('File Size', readonly=True),
|
||||
'nbr':fields.integer('# of Files', readonly=True),
|
||||
'month': fields.char('Month', size=24,readonly=True),
|
||||
}
|
||||
_order = "month"
|
||||
def init(self, cr):
|
||||
cr.execute("""
|
||||
create or replace view report_document_file as (
|
||||
select min(f.id) as id,count(*) as nbr,
|
||||
min(EXTRACT(MONTH FROM f.create_date)||'-'||substring(to_char(f.create_date,'YY-Month-DD') from 4 for 9)) as month,
|
||||
sum(f.file_size) as file_size
|
||||
from ir_attachment f
|
||||
group by EXTRACT(MONTH FROM f.create_date)
|
||||
)
|
||||
""")
|
||||
|
||||
report_document_file()
|
||||
|
||||
class report_document_wall(osv.osv):
|
||||
_name = "report.document.wall"
|
||||
_description = "Users that did not inserted documents since one month"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.date('Month', readonly=True),
|
||||
'user_id':fields.many2one('res.users', 'Owner',readonly=True),
|
||||
'user':fields.char('User',size=64,readonly=True),
|
||||
'month': fields.char('Month', size=24,readonly=True),
|
||||
'file_name':fields.char('Last Posted File Name',size=64,readonly=True),
|
||||
'last':fields.datetime('Last Posted Time', readonly=True),
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
cr.execute("""
|
||||
create or replace view report_document_wall as (
|
||||
select max(f.id) as id,
|
||||
min(title) as file_name,
|
||||
to_char(min(f.create_date),'YYYY-MM-DD HH24:MI:SS') as last,
|
||||
f.user_id as user_id,f.user_id as user,
|
||||
substring(to_char(f.create_date,'YY-Month-DD') from 4 for 9) as month
|
||||
from ir_attachment f
|
||||
where create_date in (
|
||||
select max(create_date)
|
||||
from ir_attachment i
|
||||
inner join res_users u on (i.user_id=u.id)
|
||||
group by i.user_id) group by f.user_id,f.create_date
|
||||
having (to_date(substring(CURRENT_DATE for 10),'YYYY-MM-DD') - to_date(substring(f.create_date for 10),'YYYY-MM-DD')) > 30
|
||||
)
|
||||
""")
|
||||
report_document_wall()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,288 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_document_user_form">
|
||||
<field name="name">report.document.user.form</field>
|
||||
<field name="model">report.document.user</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Files">
|
||||
<field name="name" select="1"/>
|
||||
<field name="file_title" select="1"/>
|
||||
<field name="user" select="1"/>
|
||||
<field name="directory" select="1"/>
|
||||
<field name="file_size"/>
|
||||
<field name="create_date"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_document_user_tree">
|
||||
<field name="name">report.document.user.tree</field>
|
||||
<field name="model">report.document.user</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Files">
|
||||
<field name="name" select="1"/>
|
||||
<field name="file_title"/>
|
||||
<field name="user" select="1"/>
|
||||
<field name="directory" select="1"/>
|
||||
<field name="file_size"/>
|
||||
<field name="create_date"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_my_document_tree">
|
||||
<field name="name">My files (This months)</field>
|
||||
<field name="res_model">report.document.user</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="domain">[('user_id','=',uid),('name','=',time.strftime('%Y-%m-01'))]</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Document Management" id="menu_action_view_my_document"/>
|
||||
<menuitem name="Reporting" id="menu_action_view_my_document_report" parent="menu_action_view_my_document"/>
|
||||
<menuitem name="This Month" id="menu_action_view_my_document_report_this" parent="menu_action_view_my_document_report"/>
|
||||
<menuitem name="My files" id="menu_action_view_my_document_report_this_myfile" parent="menu_action_view_my_document_report_this" action="action_view_my_document_tree"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_my_document_tree1">
|
||||
<field name="name">My files (All months)</field>
|
||||
<field name="res_model">report.document.user</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="domain">[('user_id','=',uid)]</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="All Months" id="menu_action_view_my_document_report_all" parent="menu_action_view_my_document_report"/>
|
||||
<menuitem name="My files" id="menu_action_view_my_document_report_all_myfile" parent="menu_action_view_my_document_report_all" action="action_view_my_document_tree1"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_all_document_tree">
|
||||
<field name="name">All Users files (This month)</field>
|
||||
<field name="res_model">report.document.user</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="All Users files" id="menu_action_view_my_document_report_this_userfile" parent="menu_action_view_my_document_report_this" action="action_view_all_document_tree"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_all_document_tree1">
|
||||
<field name="name">All Users files (All months)</field>
|
||||
<field name="res_model">report.document.user</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="All Users files" id="menu_action_view_my_document_report_all_userfile" parent="menu_action_view_my_document_report_all" action="action_view_all_document_tree1"/>
|
||||
|
||||
<!-- -->
|
||||
<record model="ir.ui.view" id="view_document_wall_form">
|
||||
<field name="name">report.document.wall.form</field>
|
||||
<field name="model">report.document.wall</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Wall of Shame">
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="file_name" select="1"/>
|
||||
<field name="last"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_document_wall_tree">
|
||||
<field name="name">report.document.wall.tree</field>
|
||||
<field name="model">report.document.wall</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Wall of Shame">
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="month" select="1"/>
|
||||
<field name="file_name"/>
|
||||
<field name="last"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_wall">
|
||||
<field name="name">Wall of Shame</field>
|
||||
<field name="res_model">report.document.wall</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Wall of Shame" id="menu_action_view_my_document_report_shame" parent="menu_action_view_my_document_report" action="action_view_wall"/>
|
||||
|
||||
<!--***************************************************************************************-->
|
||||
|
||||
<record model="ir.ui.view" id="view_document_by_resourcetype_graph">
|
||||
<field name="name">report.document.resource.graph</field>
|
||||
<field name="model">report.document.user</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Files by Resource Type" type="pie">
|
||||
<field name="type" />
|
||||
<!-- <field name="file_size" operator="+"/>-->
|
||||
<field name="nbr" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <record model="ir.ui.view" id="view_document_by_resourcetype_tree">-->
|
||||
<!-- <field name="name">report.document.resource.tree.view</field>-->
|
||||
<!-- <field name="model">report.document.user</field>-->
|
||||
<!-- <field name="type">tree</field>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <tree string="Files by Resource Type">-->
|
||||
<!-- <field name="type" />-->
|
||||
<!-- <field name="nbr"/>-->
|
||||
<!-- </tree>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_document_by_resourcetype_graph">
|
||||
<field name="name">Files by Resource Type</field>
|
||||
<field name="res_model">report.document.user</field>
|
||||
<field name="view_id" ref="view_document_by_resourcetype_graph"></field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
<!--***************************************************************************************-->
|
||||
|
||||
<record model="ir.ui.view" id="view_size_month">
|
||||
<field name="name">report.document.user.graph</field>
|
||||
<field name="model">report.document.file</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="File Size by Month" type="bar">
|
||||
<field name="month"/>
|
||||
<field name="file_size" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_size_month_tree">
|
||||
<field name="name">report.document.user.tree</field>
|
||||
<field name="model">report.document.file</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="File Size by Month">
|
||||
<field name="month" />
|
||||
<field name="file_size"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_view_size_month">
|
||||
<field name="name">File Size by Month</field>
|
||||
<field name="res_model">report.document.file</field>
|
||||
<field name="view_id" ref="view_size_month"></field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
<!--***************************************************************************************-->
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_files_by_month_graph">
|
||||
<field name="name">report.file.month.graph</field>
|
||||
<field name="model">report.document.user</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Files by Month" type="bar">
|
||||
<field name="month" />
|
||||
<field name="nbr" operator="+"/>
|
||||
<!-- <field name="name" operator="+"/>-->
|
||||
<!-- <field name="file_size" operator="+"/>-->
|
||||
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_files_by_month_tree">
|
||||
<field name="name">report.file.month.tree</field>
|
||||
<field name="model">report.document.user</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Files by Month" type="bar">
|
||||
<field name="name" />
|
||||
<field name="nbr"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_files_by_month_graph">
|
||||
<field name="name">Files by Month</field>
|
||||
<field name="res_model">report.document.user</field>
|
||||
<field name="view_id" ref="view_files_by_month_graph"></field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--***************************************************************************************-->
|
||||
|
||||
<record model="ir.ui.view" id="view_user_graph">
|
||||
<field name="name">report.document.user.graph</field>
|
||||
<field name="model">report.document.user</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Files by users" type="bar">
|
||||
<field name="user" />
|
||||
<field name="nbr" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_view_user_graph">
|
||||
<field name="name">Files By Users</field>
|
||||
<field name="res_model">report.document.user</field>
|
||||
<field name="view_id" ref="view_user_graph"></field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--***************************************************************************************-->
|
||||
|
||||
<record model="ir.ui.view" id="view_files_by_partner_graph">
|
||||
<field name="name">view.files.partenr.graph</field>
|
||||
<field name="model">report.files.partenr</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Files By Partner" type="bar">
|
||||
<field name="partner"/>
|
||||
<field name="nbr"/>
|
||||
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_files_by_partner_tree">
|
||||
<field name="name">view.files.partner.tree</field>
|
||||
<field name="model">report.files.partenr</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Files per Month">
|
||||
<field name="name"/>
|
||||
<field name="partner"/>
|
||||
<field name="nbr"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_view_files_by_partner">
|
||||
<field name="name">Files Per Month</field>
|
||||
<field name="res_model">report.files.partenr</field>
|
||||
<field name="view_id" ref="view_files_by_partner_graph"></field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
<!--***************************************************************************************-->
|
||||
</data>
|
||||
</openerp>
|
||||
Reference in New Issue
Block a user