[module] +objet studies
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 22 Aug 2012 14:47:48 +0000 (16:47 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 22 Aug 2012 14:47:48 +0000 (16:47 +0200)
__init__.py
__openerp__.py
bikecoop.py [new file with mode: 0644]
data/bikecoop.xml [new file with mode: 0644]
data/res_partner.xml [new file with mode: 0644]
demo/bikecoop.xml [new file with mode: 0644]
view/bikecoop_membership.xml [new file with mode: 0644]

index d2d7f97..387ad52 100644 (file)
@@ -1,5 +1,9 @@
 # -*- coding: utf-8 -*-
 ##############################################################################
-#    
+#
 #
 ##############################################################################
+
+import bikecoop
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index 8e85d91..ed1d633 100644 (file)
@@ -22,11 +22,15 @@ It installs the profile for bike co-ops to manage memberships, membership produc
     'update_xml': [
         'security/ir.model.access.csv',
         'data/base.xml',
+        'data/res_partner.xml',
+        'data/bikecoop.xml',
         'demo/res_partner.xml',
+        'demo/bikecoop.xml',
         'demo/product.xml',
         'demo/account.xml',
         'demo/membership.xml',
         'demo/point_of_sale.xml',
+        'view/bikecoop_membership.xml',
     ],
     'installable': True,
     'auto_install': False,
diff --git a/bikecoop.py b/bikecoop.py
new file mode 100644 (file)
index 0000000..51c4417
--- /dev/null
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+from osv import fields, osv
+
+
+class Studies(osv.osv):
+    _name = 'bikecoop.studies'
+    _description = 'If partner is student, what is his school.'
+
+    _columns = {
+        'code': fields.char('Code', size=8, help='Code of the school'),
+        'name': fields.char('Name', size=128, help='Name of the school.', required=True),
+        'active': fields.boolean('Active', help='If check, this object is always available'),
+    }
+
+    _defaults = {
+        'active': lambda *a: 1,
+    }
+
+Studies()
+
+
+class Partner(osv.osv):
+    _inherit = 'res.partner'
+
+    _columns = {
+        'studies_id': fields.many2one('bikecoop.studies', 'School', help='If partner is student, school where he is studing.'),
+    }
+
+    _defaults = {
+        'studies_id': lambda *a: 1,
+    }
+
+Partner()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/data/bikecoop.xml b/data/bikecoop.xml
new file mode 100644 (file)
index 0000000..44b3b7b
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <record id="bikecoop_studies_no" model="bikecoop.studies">
+            <field name="code">no</field>
+            <field name="name">No studies at the moment</field>
+        </record>
+        <record id="bikecoop_studies_other" model="bikecoop.studies">
+            <field name="code">other</field>
+            <field name="name">An other school that is not yet mentionned</field>
+        </record>
+    </data>
+</openerp>
diff --git a/data/res_partner.xml b/data/res_partner.xml
new file mode 100644 (file)
index 0000000..75b7223
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <record id="base.res_partner_title_madam" model="res.partner.title">
+            <field name="name">Female</field>
+            <field name="shortcut">F</field>
+        </record>
+        <record id="base.res_partner_title_miss" model="res.partner.title">
+            <field name="name">Other</field>
+            <field name="shortcut">O</field>
+        </record>
+        <record id="base.res_partner_title_sir" model="res.partner.title">
+            <field name="name">Male</field>
+            <field name="shortcut">M</field>
+        </record>
+        <record id="res_partner_category_info" model="res.partner.category">
+            <field name="name">Liste d'information</field>
+        </record>
+    </data>
+</openerp>
diff --git a/demo/bikecoop.xml b/demo/bikecoop.xml
new file mode 100644 (file)
index 0000000..5ce0f06
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <record id="bikecoop_studies_upmf" model="bikecoop.studies">
+            <field name="code">upmf</field>
+            <field name="name">Université Pierre Mendès France</field>
+        </record>
+        <record id="bikecoop_studies_stendhal" model="bikecoop.studies">
+            <field name="code">us</field>
+            <field name="name">Université Stendhal</field>
+        </record>
+        <record id="bikecoop_studies_ujf" model="bikecoop.studies">
+            <field name="code">ujf</field>
+            <field name="name">Université Joseph Fourrier</field>
+        </record>
+        <record id="bikecoop_studies_inpg" model="bikecoop.studies">
+            <field name="code">inpg</field>
+            <field name="name">INPG</field>
+        </record>
+    </data>
+</openerp>
diff --git a/view/bikecoop_membership.xml b/view/bikecoop_membership.xml
new file mode 100644 (file)
index 0000000..f611c64
--- /dev/null
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <record id="view_bikecoop_members_tree" model="ir.ui.view">
+            <field name="name">res.partner.tree</field>
+            <field name="model">res.partner</field>
+            <field name="type">tree</field>
+            <field name="priority" eval="8"/>
+            <field name="arch" type="xml">
+            <tree string="Bikecoop members">
+                <field name="name"/>
+                <field name="membership_state"/>
+                <field name="membership_start"/>
+                <field name="membership_stop"/>
+            </tree>
+            </field>
+        </record>
+        
+        <record id="view_bikecoop_members_form" model="ir.ui.view">
+            <field name="name">res.partner.form</field>
+            <field name="model">res.partner</field>
+            <field name="type">form</field>
+            <field name="priority" eval="8"/>
+            <field name="arch" type="xml">
+            <form string="Bikecoop member">
+                <group colspan="4" col="6">
+                    <field name="name" select="1"/>
+                    <newline/>
+                    <field name="membership_state"/>
+                    <field name="membership_start"/>
+                    <field name="membership_stop"/>
+                </group>
+                <group colspan="2" col="2">
+                    <separator string="Postal address" colspan="4" col="4"/>
+                    <field name="address" nolabel="1" colspan="4" mode="form">
+                        <form string="Address">
+                            <field name="street" colspan="4"/>
+                            <field name="street2" colspan="4"/>
+                            <field name="zip" colspan="4"/>
+                            <field name="city" colspan="4"/>
+                            <field name="email" colspan="4"/>
+                        </form>
+                    </field>
+                </group>
+                <group colspan="2" col="2">
+                    <separator string="Other informations" colspan="4" col="4"/>
+                    <field name="date" string="Birthdate"/>
+                    <field name="title" domain="[('domain', '=', 'contact')]" string="Sex" required="1"/>
+                    <field name="studies_id" required="1"/>
+                </group>
+            </form>
+            </field>
+        </record>
+        
+        <record id="view_bikecoop_members_search" model="ir.ui.view">
+            <field name="name">res.partner.search</field>
+            <field name="model">res.partner</field>
+            <field name="type">search</field>
+            <field name="priority" eval="8"/>
+            <field name="arch" type="xml">
+            <search string="Bikecoop members">
+                <field name="name" select="True"/>
+                <filter string="All bikecoop members" name="all_bikecoop_members" domain="[('membership_state','in', ['invoiced','paid','free'])]"/>
+            </search>
+            </field>
+        </record>
+        
+        <record model="ir.actions.act_window" id="act_open_bikecoop_members_view">
+            <field name="name">Bikecoop members</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">res.partner</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form</field>
+            <field name="search_view_id" ref="view_bikecoop_members_search"/>
+            <field name="domain">[]</field>
+            <field name="context">{"search_default_all_bikecoop_members": 1}</field>
+        </record>
+        
+        <record model="ir.actions.act_window.view" id="act_open_bikecoop_members_view_form">
+            <field name="act_window_id" ref="act_open_bikecoop_members_view"/>
+            <field name="sequence" eval="20"/>
+            <field name="view_mode">form</field>
+            <field name="view_id" ref="view_bikecoop_members_form"/>
+        </record>
+        
+        <record model="ir.actions.act_window.view" id="act_open_bikecoop_members_view_tree">
+            <field name="act_window_id" ref="act_open_bikecoop_members_view"/>
+            <field name="sequence" eval="10"/>
+            <field name="view_mode">tree</field>
+            <field name="view_id" ref="view_bikecoop_members_tree"/>
+        </record>
+        
+        <menuitem id="menu_bikecoop_members"
+            parent="membership.menu_membership"
+            sequence="20"
+            action="act_open_bikecoop_members_view"/>
+    </data>
+</openerp>