2015-03-18 2 views
2

Я использовал приведенный ниже код и нажав на save. Он сохраняет файл, но при нажатии на сохраненный файл. Он загружает его в формате файла bin.Как загрузить изображения в виде дерева и отобразить его в виде дерева или списка в Openerp 7 или Odoo

У меня 2 сомнения:

  1. Как загрузить его, используя такое же имя файла и расширение, которое было загружено.
  2. Как просмотреть все изображения в древовидной структуре, откуда они были загружены. Использование widget = "image" не работает.

OpenERP .py файл:

{ 
    'name' : 'Vyas File Upload Demo', 
    'version' : '0.1', 
    'category' : 'Demo', 
    'description' : 
    """ 
     Module to test the working of File upload and download in Openerp 7 

    """, 
    'author' : 'Vyas Senthil', 
    'license' : 'AGPL-3', 
    'depends' : [], 
    'init_xml' : [], 
    'demo_xml' : [], 
    'update_xml' : ['file_upload_demo_view.xml'], 
    'active': False, 
    'installable': True, 
} 

загрузки файла demo.py [Python файл]:

from osv import osv,fields 
    from datetime import date,datetime 
    from openerp import netsvc 
    from openerp import SUPERUSER_ID 
    from openerp.tools.translate import _ 
    from operator import itemgetter 
    import base64 
    import time 
    import re 
    import psycopg2 as psy 
    import sys 
    import pprint # To print python objects in a readable format , use "pprint.pprint(obj or dictionary)". 
    import pdb # To debug python files. Use pdb.set_trace() 


    class manage_inspection(osv.osv): 
     ''' Inspection module''' 
     _name = 'manage.inspection' 
     _columns = { 

      'name': fields.char('Inspection Number',required=True), # Inspection Number 
      'file_upload_demo_grid': fields.one2many('file.upload.demo','manage_inspection_id', 'File upload Grid'), 
     } 


    class file_upload_demo(osv.osv): 
     #class to maintain plant type 

     _name = 'file.upload.demo' 


     def _get_contract_file_name(self, cr, uid, ids, field_name, arg, context=None): 
      ''' To set the name_filename field''' 

      result = {} 
      for product_data in self.browse(cr, uid, ids, context=context): 
        result[product_data.id] = product_data['file_path'] 
        return result 
      return result 


     _columns = { 

       'image_upload': fields.binary(string='Image Upload new'), 
       'file_path': fields.char('File Name and Extension', size=128), 
       'name_filename':fields.function(_get_contract_file_name, type="char", size=255, method=True, string="File Name"), 

       'manage_inspection_id': fields.many2one('manage.inspection','Manage Inspection Id'), # Connection to Parent form. 


      } 

    file_upload_demo() 

file_upload_demo_view.xml [XML файл]:

<?xml version="1.0" ?> 
<openerp> 
    <data> 

     <!-- Top Menu --> 
     <menuitem name="Vyas File Upload Demo" 
      id="file_upload_demo_top_menu" 
      sequence="32"/> 

     <!-- Side Menu Heading --> 
     <menuitem name="File Upload Demo" 
      id="file_upload_demo_side_heading" 
      parent="file_upload_demo_top_menu" 
      sequence="1"/> 



     <!-- inspection form view --> 
     <record model="ir.ui.view" id="view_file_upload_demo_form"> 
      <field name="name">manage.inspection.form</field> 
      <field name="model">manage.inspection</field> 
      <field name="arch" type="xml"> 
       <form string="Manage Inspection" version="7.0"> 

        <!-- File Upload method --> 
        <field name="name" placeholder="Inspection Number" style="width:30%%" /> 

        <!-- Grid - Upload Photos --> 
        <field name="file_upload_demo_grid" /> 

       </form> 
      </field> 
     </record> 

     <!-- file_upload_demo tree view --> 
     <record model="ir.ui.view" id="view_file_upload_demo_tree"> 
      <field name="name">file.upload.demo.tree</field> 
      <field name="model">file.upload.demo</field> 
      <field name="arch" type="xml"> 
       <tree string="file upload demo" editable="top"> 

        <!-- File Upload method --> 
        <field name="file_path" /> 
        <field name="image_upload" filename="file_path" /> 
       </tree> 
      </field> 
     </record> 


     <!-- action menu --> 
     <record model="ir.actions.act_window" id="action_upload_files_demo"> 
      <field name="name">Inspection </field>   <!-- view label --> 
      <field name="res_model">manage.inspection</field> 
      <field name="view_type">form</field> 
      <field name="view_mode">tree,form</field> 
     </record> 

     <!-- Side menu to open Manage Sales Invoice --> 
     <menuitem 
      name="Upload Files Demo" 
      id="upload_file_demo" 
      parent="file_upload_demo_side_heading" 
      sequence="3" 
      action="action_upload_files_demo"/> 
    </data> 
</openerp> 
+0

Я смог исправить эту проблему, используя решение из [link] https://www.odoo.com/forum/help-1/question/odoo-7-how-can-i-add-images- in-sale-oder-line-or-in-treeview-обычно-483. Но проблема, с которой я по-прежнему сталкиваюсь, заключается в том, что при загрузке изображения он загружает его в свой первоначальный размер, который занимает большую часть экрана и остается таким образом до тех пор, пока не добавится другое изображение или я не нажму на сохранение, тогда оно сводится к требуемому изображение место хранения размер. Как сделать его размером заполнитель при загрузке самого изображения. –

+0

Моя структура классов имеет вид: - школа (вид формы) -> school_class (вид дерева) -> ученики (вид дерева), все в одной форме. Изображения загружаются у студентов (вид дерева) для каждого школьного класса, и в школе много школьных классов. И в представлении поиска я должен уметь видеть все изображения для данной школы. Но я не уверен, как показать несколько классов в одном представлении поиска. –

ответ

0

Ищите кнопку «Документ» в модуль проекта, это позволяет вам прикрепить несколько вложений и просмотреть их дерево, просмотреть самую красивую вещь, которая сохранит ваше имя и расширение вложений (попробуйте сделать это)
Примечание: это вложение может быть изображением или любым типом приложение

+0

Моя классная структура имеет форму: - школа (вид формы) -> school_class (вид дерева) -> ученики (вид дерева). Изображения загружаются у студентов (вид дерева) для каждого школьного класса, и в школе много школьных классов. Так что этот тип привязки не будет работать для моих требований. И в представлении поиска я должен уметь видеть все изображения для данной школы. Но я не уверен, как показать несколько классов в одном представлении поиска. –

Смежные вопросы