diff options
| author | pinky <> | 2006-12-07 13:41:40 +0000 |
|---|---|---|
| committer | pinky <> | 2006-12-07 13:41:40 +0000 |
| commit | a83dce15e0f33145b2eea7e878ae7eacf3aba90a (patch) | |
| tree | a3d1399cbfebf7d90a8894d97c9b7e0a9d881960 /addons/network | |
| parent | 004a0b996ff8f269451e07346f71a129a1f3fbaf (diff) | |
New trunk
bzr revid: pinky-dedd7f8a42bd4557112a0513082691b8590ad6cc
Diffstat (limited to 'addons/network')
| -rw-r--r-- | addons/network/__init__.py | 1 | ||||
| -rw-r--r-- | addons/network/__terp__.py | 13 | ||||
| -rw-r--r-- | addons/network/network.py | 164 | ||||
| -rw-r--r-- | addons/network/network_demo.xml | 7 | ||||
| -rw-r--r-- | addons/network/network_report.xml | 8 | ||||
| -rw-r--r-- | addons/network/network_view.xml | 305 | ||||
| -rw-r--r-- | addons/network/report/material.xml | 21 | ||||
| -rw-r--r-- | addons/network/report/material.xsl | 106 | ||||
| -rw-r--r-- | addons/network/report/network.xml | 41 | ||||
| -rw-r--r-- | addons/network/report/network.xsl | 143 | ||||
| -rw-r--r-- | addons/network/report/network_list.xml | 21 | ||||
| -rw-r--r-- | addons/network/report/network_list.xsl | 52 |
12 files changed, 882 insertions, 0 deletions
diff --git a/addons/network/__init__.py b/addons/network/__init__.py new file mode 100644 index 00000000000..e82a44ff55b --- /dev/null +++ b/addons/network/__init__.py @@ -0,0 +1 @@ +import network diff --git a/addons/network/__terp__.py b/addons/network/__terp__.py new file mode 100644 index 00000000000..e76e59d09f0 --- /dev/null +++ b/addons/network/__terp__.py @@ -0,0 +1,13 @@ +{ + "name" : "Network Management", + "version" : "1.0", + "author" : "Tiny", + "category" : "Enterprise Specific Modules/Information Technology", + "depends" : ["base"], + "init_xml" : [], + "description": "A simple module to encode your networks and materials. Interventions, waranties, software installed, logins, ...", + "demo_xml" : ["network_demo.xml"], + "update_xml" : ["network_view.xml", "network_report.xml"], + "active" : False, + "installable": True +} diff --git a/addons/network/network.py b/addons/network/network.py new file mode 100644 index 00000000000..1c7e9268483 --- /dev/null +++ b/addons/network/network.py @@ -0,0 +1,164 @@ +############################################################################## +# +# Copyright (c) 2005-2006 TINY SPRL. (http://tiny.be) All Rights Reserved. +# Fabien Pinckaers <fp@tiny.Be> +# +# 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. +# +############################################################################## + +import time +from osv import fields, osv + +#--------------------------------------------------------- +# Type of hardware: Printers, Screens, HD, .... +#--------------------------------------------------------- +class network_hardware_type(osv.osv): + _name = "network.hardware.type" + _description = "Hardware type" + _columns = { + 'name': fields.char('Type of material', size=64, required=True), + 'networkable': fields.boolean('Networkable hardware'), + } + _defaults = { + 'networkable': lambda *a: False, + } +network_hardware_type() + +#-------------------------------------------------------------- +# A network is composed of all kind of networkable materials +#-------------------------------------------------------------- +class network_network(osv.osv): + _name = 'network.network' + _description = 'Network' + _columns = { + 'name': fields.char('Network name', size=64, required=True), + 'range': fields.char('Address range', size=128), + 'user_id': fields.many2one('res.users','Onsite Contact person'), + 'contact_id': fields.many2one('res.partner', 'Partner', required=True), + 'material_ids': fields.one2many('network.material', 'network_id', 'Members'), + } +network_network() + +def _calc_warranty(*args): + now = list(time.localtime()) + now[0] += 1 + return time.strftime('%Y-%m-%d', tuple(now)) + +#---------------------------------------------------------- +# Materials; computer, printer, switch, ... +#---------------------------------------------------------- +class network_material(osv.osv): + _name = "network.material" + _description = "Material" + _columns = { + 'name': fields.char('Device Name', size=64, required=True), + 'ip_addr': fields.char('IP Address', size=16), + 'network_id': fields.many2one('network.network', 'Network'), + 'supplier': fields.many2one('res.partner', 'Supplier'), + 'date': fields.date('Installation Date'), + 'warranty': fields.date('Warranty deadline'), + 'type': fields.many2one('network.hardware.type', + 'Hardware type', required=True), + 'note': fields.text('Notes'), + 'parent_id': fields.many2one('network.material', + 'Parent Material'), + 'child_id': fields.one2many('network.material', 'parent_id', + 'Childs Materials'), + 'software_id': fields.one2many('network.software', + 'material_id', + 'Installed Software'), + 'change_id': fields.one2many('network.changes', + 'machine_id', + 'Changes on this machine'), + } + _defaults = { + 'date': lambda *a: time.strftime('%Y-%m-%d'), + 'warranty': _calc_warranty, + } +network_material() + +#---------------------------------------------------------- +# Changes on this machine +#---------------------------------------------------------- +class network_changes(osv.osv): + _name = 'network.changes' + _description = 'Network changes' + _columns = { + 'name': fields.char('Short Description', size=64, + required=True), + 'description': fields.text('Long Description'), + 'date': fields.date('Change date'), + 'machine_id': fields.many2one('network.material', + 'Machine'), + } + _defaults = { + 'date': lambda *a: time.strftime('%Y-%m-%d'), + } +network_changes() + +#---------------------------------------------------------- +# Type of Software; LDAP, Tiny ERP, Postfix +#---------------------------------------------------------- +class network_soft_type(osv.osv): + _name = "network.software.type" + _description = "Software type" + _columns = { + 'name': fields.char('Composant Name', size=64, required=True), + 'note': fields.text('Notes'), + } +network_soft_type() + +#---------------------------------------------------------- +# A software installed on a material +#---------------------------------------------------------- +class network_software(osv.osv): + _name = "network.software" + _description = "Software" + _columns = { + 'name': fields.char('Composant Name', size=64, required=True), + 'material_id': fields.many2one('network.material', 'Material'), + 'type': fields.many2one('network.software.type', + 'Software Type', required=True), + 'version': fields.char('Software version', size=32), + 'logpass': fields.one2many('network.software.logpass', + 'software_id', 'Login / Password'), + 'email': fields.char('Contact Email', size=32), + 'date': fields.date('Installation Date', size=32), + 'note': fields.text('Notes'), + } +network_software() + +#------------------------------------------------------------ +# Couples of login/password +#------------------------------------------------------------ +class network_software_logpass(osv.osv): + _name = "network.software.logpass" + _description = "Software login" + _rec_name = 'login' + _columns = { + 'login': fields.char('Login', size=64, required=True), + 'password': fields.char('Password', size=64, required=True), + 'software_id': fields.many2one('network.software', + 'Software', required=True), + } +network_software_logpass() diff --git a/addons/network/network_demo.xml b/addons/network/network_demo.xml new file mode 100644 index 00000000000..6586343f1a8 --- /dev/null +++ b/addons/network/network_demo.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<terp> + <data noupdate="1"> + + + </data> +</terp> diff --git a/addons/network/network_report.xml b/addons/network/network_report.xml new file mode 100644 index 00000000000..ffa71a51fa5 --- /dev/null +++ b/addons/network/network_report.xml @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<terp> + <data> + <report string="Print Materials" model="network.material" name="network.material.list" xml="network/report/material.xml" xsl="network/report/material.xsl"/> + <report string="Print Network Materials" model="network.network" name="network.network.list" xml="network/report/network.xml" xsl="network/report/network.xsl"/> + <report string="Print Network List" model="network.network" name="network.network.list2" xml="network/report/network_list.xml" xsl="network/report/network_list.xsl"/> + </data> +</terp> diff --git a/addons/network/network_view.xml b/addons/network/network_view.xml new file mode 100644 index 00000000000..7aef2b6c1d6 --- /dev/null +++ b/addons/network/network_view.xml @@ -0,0 +1,305 @@ +<?xml version="1.0"?> +<terp> + <data> + <menuitem name="Network" groups="admin"/> + <menuitem name="Network/Configuration" id="menu_network_definition" groups="admin" sequence="1"/> + + <record model="ir.ui.view" id="edit_network"> + <field name="name">network.material.form</field> + <field name="model">network.material</field> + <field name="type">form</field> + <field name="priority" eval="1"/> + <field name="arch" type="xml"> + <form string="Network Material"> + <notebook> + <page string="Material Info"> + <separator string="Informations" colspan="4"/> + <field name="name" colspan="3" select="1"/> + <field name="type" select="1"/> + <field name="supplier" select="1" /> + <field name="date" select="1"/> + <field name="warranty" /> + <field name="parent_id"/> + <field name="network_id"/> + <separator string="Softwares" colspan="4"/> + <field name="software_id" nolabel="1" colspan="4" widget="one2many_list"/> + </page> + <page string="Updates"> + <field name="change_id" nolabel="1" colspan="4" widget="one2many_list" /> + </page> + <page string="Notes"> + <field name="note" nolabel="1" colspan="4"/> + </page> + </notebook> + </form> + </field> + </record> + + <record model="ir.ui.view" id="material_view"> + <field name="name">network.material.tree</field> + <field name="model">network.material</field> + <field name="type">tree</field> + <field name="field_parent">child_id</field> + <field name="arch" type="xml"> + <tree string="All Network Material"> + <field name="name"/> + <field name="type"/> + <field name="supplier" /> + <field name="date"/> + <field name="warranty" /> + </tree> + </field> + </record> + + <record model="ir.actions.act_window" id="action_material_tree"> + <field name="name">network.material.tree</field> + <field name="res_model">network.material</field> + <field name="view_type">form</field> + <field name="domain">[('parent_id','=',False)]</field> + </record> + <menuitem name="Network/All Materials" id="menu_action_material_tree" action="action_material_tree" groups="admin"/> + + <record model="ir.ui.view" id="material_view_by_network"> + <field name="name">network.material.tree</field> + <field name="model">network.material</field> + <field name="type">tree</field> + <field name="field_parent">child_id</field> + <field name="arch" type="xml"> + <tree string="Material in this Network"> + <field name="name"/> + <field name="date"/> + <field name="type"/> + </tree> + </field> + </record> + <record model="ir.actions.act_window" id="tree_by_network"> + <field name="name">network.material.tree_by_network</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">network.material</field> + <field name="view_type">tree</field> + <field name="domain">[('network_id', '=', active_id)]</field> + <field name="view_id" ref="material_view_by_network"/> + </record> + <record model="ir.values" id="ir_open_network"> + <field name="key" eval="'action'" /> + <field name="key2" eval="'tree_but_open'" /> + <field name="model" eval="'network.network'"/> + <field name="name">Material</field> + <field name="value" eval="'ir.actions.act_window,%d'%tree_by_network" /> + <field name="object" eval="True" /> + </record> + <record model="ir.values" id="ir_open_network2"> + <field name="key" eval="'action'" /> + <field name="key2" eval="'client_action_multi'" /> + <field name="model" eval="'network.network'"/> + <field name="name">Material</field> + <field name="value" + eval="'ir.actions.act_window,%d'%tree_by_network" /> + <field name="object" eval="True" /> + </record> + + <record model="ir.actions.act_window" id="edit_material_2click"> + <field name="name">network.material.edit_material_2click</field> + <field name="view_mode">tree,form</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">network.material</field> + <field name="view_type">form</field> + <field name="domain">[('id', '=', active_id)]</field> + <field name="view_id" ref="edit_network" /> + </record> + <record model="ir.values" id="ir_open_network3"> + <field name="key" eval="'action'" /> + <field name="key2" eval="'tree_but_open'" /> + <field name="model" eval="'network.material'" /> + <field name="name">Material (edit)</field> + <field name="value" + eval="'ir.actions.act_window,%d'%edit_material_2click" /> + <field name="object" eval="True" /> + </record> + + <record model="ir.ui.view" id="view_software_type_form"> + <field name="name">network.software.type.form</field> + <field name="model">network.software.type</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Software Type"> + <field name="name" colspan="3" select="1"/> + <field name="note" colspan="3"/> + </form> + </field> + </record> + <record model="ir.actions.act_window" id="action_software_type"> + <field name="name">network.software.type</field> + <field name="res_model">network.software.type</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + </record> + <menuitem name="Network/Configuration" groups="admin" /> + <menuitem name="Network/Configuration/Software/Types" id="menu_action_software_type" action="action_software_type"/> + + <record model="ir.ui.view" id="view_hardware_type_form"> + <field name="name">network.hardware.type.form</field> + <field name="model">network.hardware.type</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Hardware Type"> + <field name="name"/> + <field name="networkable"/> + </form> + </field> + </record> + <record model="ir.actions.act_window" id="action_hard_type"> + <field name="name">network.hardware.type</field> + <field name="res_model">network.hardware.type</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + </record> + <menuitem name="Network/Configuration/Hardware/Types" id="menu_action_hard_type" action="action_hard_type" groups="admin"/> + + + <record model="ir.ui.view" id="password_form"> + <field name="name">network.software.logpass.form</field> + <field name="model">network.software.logpass</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Add a password"> + <field name="login" colspan="3"/> + <field name="password" colspan="3"/> + </form> + </field> + </record> + <record model="ir.ui.view" id="password_tree"> + <field name="name">network.software.logpass.tree</field> + <field name="model">network.software.logpass</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Passwords"> + <field name="login"/> + <field name="password"/> + </tree> + </field> + </record> + + <record model="ir.ui.view" id="software_form"> + <field name="name">network.software.form</field> + <field name="model">network.software</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Network Softwares"> + <separator string="General Informations" colspan="4"/> + <field name="name" colspan="3" select="1"/> + <field name="type"/> + <field name="date" select="1"/> + <field name="email" select="1"/> + <separator string="Login / Password" colspan="4" /> + <field name="logpass" colspan="4" nolabel="1"/> + <separator string="Notes" colspan="4"/> + <field name="note" colspan="4" nolabel="1"/> + </form> + </field> + </record> + <record model="ir.ui.view" id="view_software_tree"> + <field name="name">network.software.tree</field> + <field name="model">network.software</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Network Softwares"> + <field name="name"/> + <field name="type"/> + <field name="email"/> + <field name="date"/> + </tree> + </field> + </record> + + <record model="ir.ui.view" id="view_network"> + <field name="name">network.network.tree</field> + <field name="model">network.network</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="All Networks"> + <field name="name" /> + <field name="user_id" /> + <field name="contact_id" /> + </tree> + </field> + </record> + <record model="ir.actions.act_window" id="add_view_network"> + <field name="name">network.network.tree</field> + <field name="res_model">network.network</field> + <field name="view_type">tree</field> + </record> + <menuitem name="Network/Network list" + id="menu_add_view_network" action="add_view_network" groups="admin"/> + + <record model="ir.ui.view" id="add_network_view"> + <field name="name">network.network.form</field> + <field name="model">network.network</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Network Element"> + <separator string="Network Definition" colspan="4"/> + <field name="name" colspan="3" select="1"/> + <field name="range" colspan="3" select="1"/> + <field name="user_id" colspan="3" select="1"/> + <field name="contact_id" colspan="3" select="1"/> + <field name="material_ids" nolabel="1" colspan="4" widget="one2many_list"> + <form string="Network Material"> + <notebook> + <page string="Material Info"> + <separator string="Informations" colspan="4"/> + <field name="name" colspan="3" select="1"/> + <field name="type" select="1"/> + <field name="supplier" select="1" /> + <field name="date" select="1"/> + <field name="warranty" /> + <field name="parent_id"/> + <separator string="Softwares" colspan="4"/> + <field name="software_id" nolabel="1" colspan="4" widget="one2many_list"/> + </page> + <page string="Updates"> + <field name="change_id" nolabel="1" colspan="4" widget="one2many_list" /> + </page> + <page string="Notes"> + <field name="note" nolabel="1" colspan="4"/> + </page> + </notebook> + </form> + </field> + </form> + </field> + </record> + <record model="ir.actions.act_window" id="add_new_network"> + <field name="name">network.network.form</field> + <field name="res_model">network.network</field> + <field name="view_type">form</field> + </record> + <menuitem name="Network/Networks" id="menu_add_new_network" action="add_new_network" groups="admin"/> + + <record model="ir.ui.view" id="add_diary_entry_form"> + <field name="name">network.changes.form</field> + <field name="model">network.changes</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Enter a diary entry"> + <separator string="Diary entry" colspan="4" /> + <field name="name" colspan="3" select="1" /> + <field name="date" colspan="3" select="1"/> + <field name="description" colspan="3" /> + </form> + </field> + </record> + + <record model="ir.ui.view" id="add_diary_entry_tree"> + <field name="name">network.changes.tree</field> + <field name="model">network.changes</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Interventions"> + <field name="date"/> + <field name="name"/> + </tree> + </field> + </record> + </data> +</terp> diff --git a/addons/network/report/material.xml b/addons/network/report/material.xml new file mode 100644 index 00000000000..7ca21198ed7 --- /dev/null +++ b/addons/network/report/material.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<materials> + <material type="fields" name="id"> + <material-name type="field" name="name"/> + <material-date type="field" name="date"/> + <material-type type="field" name="type.name"/> + <material-note type="field" name="note"/> + <softwares> + <software type="zoom" name="software_id"> + <soft-name type="field" name="name"/> + <soft-type type="field" name="type.name"/> + <soft-date type="field" name="date"/> + <soft-version type="field" name="version" /> + <acces type="zoom" name="logpass"> + <username type="field" name="login" /> + <password type="field" name="password" /> + </acces> + </software> + </softwares> + </material> +</materials> diff --git a/addons/network/report/material.xsl b/addons/network/report/material.xsl new file mode 100644 index 00000000000..ad8cfa5d4e1 --- /dev/null +++ b/addons/network/report/material.xsl @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + <xsl:import href="../../custom/corporate_defaults.xsl"/> + <xsl:import href="../../base/report/rml_template.xsl"/> + <xsl:variable name="page_format">a4_normal</xsl:variable> + + <xsl:template name="stylesheet"> + <blockTableStyle id="products"> + <blockFont name="Helvetica-BoldOblique" size="12" + start="0,0" stop="-1,0"/> + <blockBackground colorName="yellow" start="0,0" stop="-1,0"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="logpass"> + <blockFont name="Helvetica" size="8" start="0,0" stop="-1,-1" /> + <blockBackground colorName="grey" start="0,0" stop="-1,-1" /> + </blockTableStyle> + </xsl:template> + + <xsl:template name="story"> + <xsl:apply-templates select="materials"/> + </xsl:template> + + <xsl:template match="/"> + <xsl:call-template name="rml"/> + </xsl:template> + + <xsl:template match="materials"> + <xsl:apply-templates select="material"/> + </xsl:template> + + <xsl:template match="material"> + <setNextTemplate name="other_pages"/> + <para> + <b t="1">Name</b>: + <i><xsl:value-of select="material-name"/></i> + </para> + <para> + <b t="1">Date</b>: + <i><xsl:value-of select="material-date"/></i> + </para> + <para> + <b t="1">Type</b>: + <i><xsl:value-of select="material-type"/></i> + </para> + <para> + <b t="1">Your Contact</b>: + <i><xsl:value-of select="material-user"/></i> + </para> + <para> + <b t="1">Notes</b>: + </para> + <para> + <i><xsl:value-of select="material-note"/></i> + </para> + <spacer length="1cm" width="2mm"/> + <blockTable colWidths="6cm,3cm,2.5cm,2.5cm" style="products"> + <tr> + <td t="1">Software</td> + <td t="1">Type</td> + <td t="1">Date</td> + <td t="1">Version</td> + </tr> + <xsl:apply-templates name="softwares"/> + </blockTable> + <setNextTemplate name="first_page"/> + <pageBreak/> + </xsl:template> + + <xsl:template match="software"> + <tr> + <td> + <xsl:value-of select="soft-name"/> + </td> + <td> + <xsl:value-of select="soft-type"/> + </td> + <td> + <xsl:value-of select="soft-date"/> + </td> + <td> + <xsl:value-of select="soft-version"/> + </td> + </tr> + <xsl:if test="acces"> + <tr> + <td></td> + <td t="1">Login / Password</td> + <td> + <blockTable colWidths="2.5cm,2.5cm" style="logpass"> + <xsl:for-each select="acces"> + <tr> + <td><xsl:value-of select="username" /></td> + <td><xsl:value-of select="password" /></td> + </tr> + </xsl:for-each> + </blockTable> + </td> + </tr> + <tr></tr> + </xsl:if> + </xsl:template> +</xsl:stylesheet> diff --git a/addons/network/report/network.xml b/addons/network/report/network.xml new file mode 100644 index 00000000000..063cc0b0c39 --- /dev/null +++ b/addons/network/report/network.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<networks> + <network type="fields" name="id"> + <network-name type="field" name="name" /> + <network-range type="field" name="range" /> + <partner type="zoom" name="contact_id"> + <name type="field" name="name" /> + <title type="field" name="title" /> + <address type="zoom" name="address"> + <name type="field" name="name" /> + <street type="field" name="street" /> + <postcode type="field" name="zip" /> + <city type="field" name="city" /> + <country type="field" name="country_id.name" /> + </address> + </partner> + <materials> + <material type="zoom" name="material_ids"> + <material-name type="field" name="name"/> + <material-date type="field" name="date"/> + <material-type type="field" name="type.name"/> + <material-note type="field" name="note"/> + <material-supplier type="field" name="supplier" /> + <material-warranty type="field" name="warranty" /> + <softwares> + <software type="zoom" name="software_id"> + <soft-name type="field" name="name"/> + <soft-type type="field" name="type.name"/> + <soft-date type="field" name="date"/> + <soft-version type="field" name="version" /> + <acces type="zoom" name="logpass"> + <username type="field" name="login" /> + <password type="field" name="password" /> + </acces> + </software> + </softwares> + </material> + </materials> + </network> +</networks> + diff --git a/addons/network/report/network.xsl b/addons/network/report/network.xsl new file mode 100644 index 00000000000..b8fc4aa0852 --- /dev/null +++ b/addons/network/report/network.xsl @@ -0,0 +1,143 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + <xsl:import href="../../custom/corporate_defaults.xsl"/> + <xsl:import href="../../base/report/rml_template.xsl"/> + <xsl:variable name="page_format">a4_letter</xsl:variable> + + <xsl:template name="stylesheet"> + <blockTableStyle id="products"> + <blockFont name="Helvetica-BoldOblique" size="12" + start="0,0" stop="-1,0"/> + <blockBackground colorName="yellow" start="0,0" stop="-1,0"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="logpass"> + <blockFont name="Helvetica" size="8" start="0,0" stop="-1,-1" /> + <blockBackground colorName="grey" start="0,0" stop="-1,-1" /> + </blockTableStyle> + </xsl:template> + + <xsl:template name="story"> + <xsl:apply-templates select="networks"/> + </xsl:template> + + <xsl:template match="/"> + <xsl:call-template name="rml"/> + </xsl:template> + + <xsl:template match="network"> + <setNextTemplate name="other_pages"/> + <para> + <xsl:value-of select="partner/title" /> + <xsl:text> </xsl:text> + <xsl:value-of select="partner/name"/> + </para> + <para> + <xsl:value-of select="partner/address/name"/> + </para> + <para> + <xsl:value-of select="partner/address/street"/> + </para> + <para> + <xsl:value-of select="partner/address/postcode"/> + <xsl:value-of select="partner/address/city"/> + </para> + <para> + <xsl:value-of select="partner/address/country"/> + </para> + <nextFrame /> + <para t="1"> + Hello, + </para> + <para t="1"> + Here is the list of the software and hardware parts we installed during our last intervention. + </para> + <spacer length="1cm" /> + <xsl:apply-templates select="materials/material" /> + </xsl:template> + + <xsl:template match="materials"> + <xsl:apply-templates select="material"/> + </xsl:template> + + <xsl:template match="material"> + <blockTable colWidths="16cm"> + <tr> + <td> + <para> + <b t="1">Name</b>: + <i><xsl:value-of select="material-name"/></i> + </para> + <para> + <b t="1">Type</b>: + <i><xsl:value-of select="material-type"/></i> + </para> + <para> + <b t="1">Date</b>: + <i><xsl:value-of select="material-date"/></i> + </para> + <para> + <b t="1">Warranty date</b>: + <i><xsl:value-of select="material-warranty" /></i> + </para> + <para> + <b t="1">Your Contact</b>: + <i><xsl:value-of select="material-user"/></i> + </para> + </td> + </tr> + </blockTable> + <para> + <i><xsl:value-of select="material-note"/></i> + </para> + <spacer length="1cm" width="2mm"/> + <blockTable colWidths="6cm,3cm,2.5cm,2.5cm" style="products"> + <tr> + <td t="1">Software</td> + <td t="1">Type</td> + <td t="1">Date</td> + <td t="1">Version</td> + </tr> + <xsl:apply-templates name="softwares/software"/> + </blockTable> + <pageBreak/> + </xsl:template> + + <xsl:template match="software"> + <tr> + <td> + <xsl:value-of select="soft-name"/> + </td> + <td> + <xsl:value-of select="soft-type"/> + </td> + <td> + <xsl:value-of select="soft-date"/> + </td> + <td> + <xsl:value-of select="soft-version"/> + </td> + </tr> + <xsl:if test="acces"> + <tr> + <td></td> + <td t="1">Login / Password</td> + <td> + <blockTable colWidths="2.5cm,2.5cm" style="logpass"> + <xsl:for-each select="acces"> + <tr> + <td><xsl:value-of select="username" /></td> + <td><xsl:value-of select="password" /></td> + </tr> + </xsl:for-each> + </blockTable> + </td> + </tr> + <tr></tr> + </xsl:if> + </xsl:template> +</xsl:stylesheet> + diff --git a/addons/network/report/network_list.xml b/addons/network/report/network_list.xml new file mode 100644 index 00000000000..6df2e216fff --- /dev/null +++ b/addons/network/report/network_list.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<networks> + <network type="fields" name="id"> + <network-name type="field" name="name" /> + <network-range type="field" name="range" /> + <partner type="zoom" name="contact_id"> + <name type="field" name="name" /> + <address type="zoom" name="address"> + <name type="field" name="name" /> + <street type="field" name="street" /> + <postcode type="field" name="zip" /> + <city type="field" name="city" /> + <country type="field" name="country_id.name" /> + </address> + </partner> + <onsite type="zoom" name="user_id"> + <name type="field" name="name" /> + </onsite> + </network> +</networks> + diff --git a/addons/network/report/network_list.xsl b/addons/network/report/network_list.xsl new file mode 100644 index 00000000000..406909d93b5 --- /dev/null +++ b/addons/network/report/network_list.xsl @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + + <xsl:import href="../../custom/corporate_defaults.xsl"/> + <xsl:import href="../../base/report/rml_template.xsl"/> + <xsl:variable name="page_format">a4_normal</xsl:variable> + + <xsl:template name="stylesheet"> + <blockTableStyle id="network_list"> + <blockFont name="Helvetica-BoldOblique" size="12" + start="0,0" stop="-1,0"/> + <blockBackground colorName="yellow" start="0,0" stop="-1,0"/> + <blockValign value="TOP"/> + </blockTableStyle> + </xsl:template> + + <xsl:template name="first_page_frames"> + <frame id="main" x1="1cm" y1="3.5cm" width="19.0cm" height="21.5cm" /> + </xsl:template> + + <xsl:template match="/"> + <xsl:call-template name="rml"/> + </xsl:template> + + <xsl:template name="story"> + <blockTable colWidths="5cm,5cm,5cm" style="network_list"> + <tr> + <td t="1">Partner</td> + <td t="1">Network name</td> + <td t="1">Onsite contact</td> + </tr> + <xsl:for-each select="/networks/network"> + <tr> + <td> + <xsl:value-of select="partner/name" /> + </td> + <td> + <xsl:value-of select="network-name" /> + </td> + <td> + <xsl:value-of select="onsite/name" /> + </td> + </tr> + </xsl:for-each> + </blockTable> + <xsl:apply-templates select="networks"/> + </xsl:template> + +</xsl:stylesheet> + |
