ผลต่างระหว่างรุ่นของ "Openerp/histest1"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 46: แถว 46:
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
# encoding=utf-8
 
# encoding=utf-8
 
 
from osv import osv, fields
 
from osv import osv, fields
  
 
class HISPatient(osv.Model):
 
class HISPatient(osv.Model):
     _name = "histest.patient"
+
     _name='histest.patient'
 +
 
 +
    def get_full_name(self, cr, uid, ids, field_name, arg, context):
 +
        patients = self.browse(cr, uid, ids)
 +
        result = {}
 +
        for p in patients:
 +
            result[p.id] = (u'%s %s %s' % (p.title,
 +
                                          p.first_name,
 +
                                          p.last_name))
 +
        return result
 +
 
 +
 
 +
    _rec_name='full_name'
  
 
     _columns={
 
     _columns={
แถว 68: แถว 79:
 
                                 string=u'เลขบัตรประชาชน',
 
                                 string=u'เลขบัตรประชาชน',
 
                                 required=True),
 
                                 required=True),
 +
        'full_name': fields.function(get_full_name,
 +
                                    type='char')
 
     }
 
     }
 
</syntaxhighlight>
 
</syntaxhighlight>

รุ่นแก้ไขเมื่อ 03:50, 27 มีนาคม 2557

สร้างมอดูล histest

ในไดเรคตอรี openerp/addons/ สร้างไดเรคตอรีชื่อ histest

mkdir histest
cd histest

ไฟล์ __openerp__.py

{
    'name': 'HIS Test',
    'version': '0.1',
    'category': 'Tools',
    'description': """
This is a training module for new HIS
=====================================
 
""",
    'author': 'Chaiporn',
    'website': 'http://openerp.com',
    'summary': 'HIS Test',
    'sequence': 9,
    'depends': [],
    'data': [
        'histest_view.xml',
    ],
    'demo': [],
    'test': [],
    'css': [],
    'images': [],
    'installable': True,
    'application': True,
    'auto_install': False,
}

ไฟล์ __init__.py

import histest

ไฟล์ histest.py

# encoding=utf-8
from osv import osv, fields

class HISPatient(osv.Model):
    _name='histest.patient'

    def get_full_name(self, cr, uid, ids, field_name, arg, context):
        patients = self.browse(cr, uid, ids)
        result = {}
        for p in patients:
            result[p.id] = (u'%s %s %s' % (p.title,
                                           p.first_name,
                                           p.last_name))
        return result


    _rec_name='full_name'

    _columns={
        'title': fields.char(size=50,
                             string=u'คำนำหน้าชื่อ',
                             required=True),
        'first_name': fields.char(size=256,
                                  string=u'ชื่อ',
                                  required=True),
        'last_name': fields.char(size=256,
                                 string=u'นามสกุล',
                                 required=True),
        'sex': fields.selection([('M',u'ชาย'),('F',u'หญิง'),],
                                string=u'เพศ',
                                required=True),
        'id_number': fields.char(size=20,
                                 string=u'เลขบัตรประชาชน',
                                 required=True),
        'full_name': fields.function(get_full_name,
                                     type='char')
    }

ไฟล์ histest_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    
    <record model="ir.ui.view" id="view_histest_patient_tree">
      <field name="name">histest.patient.tree</field>
      <field name="model">histest.patient</field>
      <field name="arch" type="xml">
        <tree string="Stages">
          <field name="title"/>
          <field name="first_name"/>
          <field name="last_name"/>
          <field name="sex"/>
          <field name="id_number"/>
        </tree>
      </field>
    </record>

    <record model="ir.ui.view" id="view_histest_patient_form">
      <field name="name">histest.patient.form</field>
      <field name="model">histest.patient</field>
      <field name="arch" type="xml">
        <form string="Patient" version="7.0">
          <group>
            <field name="title"/>
            <field name="first_name"/>
            <field name="last_name"/>
            <field name="sex"/>
            <field name="id_number"/>
          </group>
        </form>
      </field>
    </record>

    <record model="ir.actions.act_window" id="action_histest_patient">
      <field name="name">Patient</field>
      <field name="res_model">histest.patient</field>
      <field name="view_type">form</field>
      <field name="view_mode">form,tree</field>
    </record>

    <menuitem name="HIS" id="menu_histest_top"
              parent="" sequence="1"
              action="histest.action_histest_patient"/>
  </data>
</openerp>