Bonjour. J'ai crée un module qui hérite d'un autre. Il est chargé de modifier
un formulaire. Seulement il n'a pas d'effet sur le module parent.
Est ce que quelqu'un pourrait m'aider ?
Bonjour. J'ai crée un module qui hérite d'un autre. Il est chargé de modifier
un formulaire. Seulement il n'a pas d'effet sur le module parent.
Est ce que quelqu'un pourrait m'aider ?
nom du module = test
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 __init__.py import test __openerp__.py { 'name': 'Gestion des Groupes' , 'version': '1.1' , 'author': 'LAMAT', 'sequence': 2 , 'website': 'https://www.sococam.net' , 'summary': 'Gestion des groupes d ouvriers' , 'description': """ Demande d achats ========================== Ce module permet de gerer les demandes d achats. """ , 'depends': ['hr'] , 'data': ['views/test_view.xml' ] , 'demo': [] , 'test': [ ] , 'installable': True , 'application': False , 'auto_install': False , } test.py import time from datetime import datetime from datetime import date from dateutil.relativedelta import relativedelta from openerp.osv import fields, osv, expression from openerp import SUPERUSER_ID, netsvc, api from openerp import pooler from openerp.tools.translate import _ import openerp.addons.decimal_precision as dp from openerp.osv.orm import browse_record, browse_null # cette classe permet de gerer la sasie des information relatives ? l'envoi d'un colis class test(osv.osv): _inherit = 'hr.department' _columns={ 'champ1':fields.char('OF', size = 64, required=True), 'champ2': fields.char('OBJET DU PROJET', size = 64), 'champ3':fields.char('NO BON DE COMMANDE', size = 64), }
test_view.xml
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?xml version="1.0" ?> <openerp> <data> <!-- hr.department --> <record id="test_view_inherit" model="ir.ui.view"> <field name="name">test.view.inherit1</field> <field name="model">hr.department</field> <field name="arch" type="xml"> <form string="department"> <sheet> <group col="4"> <field name="name"/> <field name="champ1"/> <field name="champ2"/> <field name="champ3"/> <field name="manager_id"/> <field name="parent_id"/> <field name="company_id" widget="selection" groups="base.group_multi_company"/> </group> </sheet> </form> </field> </record> <record id="act_view_department_form_inherit1" model="ir.actions.act_window"> <field name="name">Departments</field> <field name="res_model">hr.department</field> <field name="view_type">form</field> <field name="view_id" ref="test_view_inherit"/> <field name="help" type="html"> <p class="oe_view_nocontent_create"> Click to create a department. </p><p> Odoo's department structure is used to manage all documents related to employees by departments: expenses, timesheets, leaves and holidays, recruitments, etc. </p> </field> </record> </data> </openerp>
Votre vue formulaire n'hérite pas d'une vue parente. Il vous faut un champ de type <field name="inherit_id" ref="hr.nom_de_la_vue" /> .
Puis des expressions du genre <field name="champ_parent" position="after"> ou du XPath. Plus d'informations sur la documentation officielle.
Ce type d'héritage je sais le faire; mais comment procéder si je voudrais modifier l'emplacement des éléments de mon formulaire; c'est-à-dire prendre le contrôle total d'un formulaire comme si c'est moi qui l'avais crée.
Comment faire si je veux supprimer aussi certains éléments de mon formulaire ?
Plusieurs solutions à cela : remplacer la totalité de la balise form ou sheet de la vue parente par exemple ou, mieux, créer une nouvelle vue de type form et modifier l'action pour qu'elle utilise cette vue là (attribut view_id).Ce type d'héritage je sais le faire; mais comment procéder si je voudrais modifier l'emplacement des éléments de mon formulaire; c'est-à-dire prendre le contrôle total d'un formulaire comme si c'est moi qui l'avais crée.
Vous pouvez supprimer un élément en le sélectionnant et en utilisant une position replace vide. Par exemple :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part <field name="old_one" position="replace"></field>
Mais vous devriez songer à plutôt cacher l'élément que de le supprimer purement, car vous risquez de casser des modules qui dépendraient de cet élément. Un exemple de comment cacher un champ ou bloc :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <field name="to_hide" position="attributes"> <attribute name="invisible">1</attribute> </field>
Pour un bloc :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xpath expr="//sheet/group[@name='to_hide']" position="attributes"> <attribute name="invisible">1</attribute> </xpath>
je n'arrive plus à me connecter avec mon compte administrateur sur odoo 8.
Pourtant hier je me suis connecté avec les même paramètres !
Voici mon code il ne m'affiche pas ce que je veux.
Il n'affiche pas ce que vous voulez c'est à dire ?
L'utilisation des on_change au niveau des vues XML est déprécié depuis la v8, préférez l'usage dans le code Python.
ok, merci. je vais essayer ca
Voici mon nouveau code .py mais la valeur percent_marge_brute n'est pas mise à jour; seule la valeur marge_brute change lorsque montant_ht et revient_ht changent.
Pouvez-vous m'aidez svp ?
Bonjour.
je travaille sur une application de gestion des projets avec odoo.
Un projet a un avancement_physique_du_projet et une liste de tâches bien précise. D'autre part, chaque tâche a un avancement_physique_tâche et un poids à un instant t donnée.
Mon problème est que je voudrais calculer avancement_physique_du_projet en fonction de l'avancement physique de toutes les tâches et des poids liés à ce projet.
Il faudrait que lorsqu'on modifie l'avancement d'une tâche, que la mise à jour soit effectuée dans la vue tableau du modèle project_project.
En plus au clic sur un project, comment connaître l'id du project sur lequel j'ai cliquer. Merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager