2015-01-12 9 views
5

मैं एक कार्य में बदलाव की तिथि दिखाने की कोशिश कर रहा हूं। ऐसा करने के लिए, मुझे "mail_thread" विजेट के टेम्पलेट का उत्तराधिकारी होना चाहिए। उस टेम्पलेट में इसकी परिभाषा में एक आईडी नहीं है। यह है:ओडू में कोई आईडी वाला टेम्पलेट कैसे प्राप्त करें?

<?xml version="1.0" encoding="UTF-8"?> 
<template> 

    <!-- 
     mail.Widget template used to namespace the css --> 
    <t t-name="mail.Root"> 
     <div class="oe_mail"> 
     </div> 
    </t> 

... 


        <span t-att-title="widget.date"> 
         <t t-if="widget.timerelative" t-esc="widget.timerelative"/> 
         <t t-if="!widget.timerelative" t-raw="widget.display_date"/> 
        </span> 



... 

</template> 

मेरी मॉड्यूल में, मैं आदेश दिनांक दिखाने के लिए <span> टैग को बदलने की जरूरत है।

तो, उस टेम्पलेट को कैसे प्राप्त करें और टैग को प्रतिस्थापित कैसे करें?

उत्तर

10

ग्राहक के पक्ष टेम्पलेट्स के लिए अलग विरासत तंत्र (वेब ​​टेम्पलेट्स, एक <templates> टैग के अंदर परिभाषित, क्लाइंट में जावास्क्रिप्ट के साथ "संकलित" जब यह लोड हो रहा है) और सर्वर साइड टेम्पलेट्स रहे हैं (आमतौर पर देखा गया, डेटा में शामिल किया जाना चाहिए __openerp__.py फ़ाइल में सूची, ओडू सर्वर लॉन्च/अपग्रेड करते समय 'संकलित')।

आप एक या अधिक <t t-jquery="jquery_selector" t-operation="operation"> जो xpath की तरह थोड़े में कार्य करता है के द्वारा <t t-extend="template_name"> पीछा का उपयोग कर वेब/विजेट टेम्पलेट टेम्पलेट्स का विस्तार है, लेकिन ग्राहक के पक्ष और अधिक 'शक्तिशाली'।
आपको आईडी की आवश्यकता नहीं है, विरासत टेम्पलेट नाम पर आधारित है। (t-name निर्देश)

खाका विरासत मौजूदा टेम्पलेट को बदलने के लिए प्रयोग किया जाता है यथा-स्थान, उदा किसी अन्य मॉड्यूल द्वारा बनाए गए टेम्पलेट्स में जानकारी जोड़ने के लिए।

टेम्पलेट विरासत टी-विस्तार निर्देश के माध्यम से किया जाता है जो पैरामीटर के रूप में बदलने के लिए टेम्पलेट का नाम लेता है।

परिवर्तन तो टी jQuery उप निर्देशों के किसी भी संख्या के साथ किया जाता है:

<t t-extend="base.template"> <t t-jquery="ul" t-operation="append"> <li>new element</li> </t> </t>

टी jQuery निर्देशों एक CSS चयनकर्ता लेता है।

  • संलग्न
    नोड के शरीर (संदर्भ नोड के अंत में जोड़ी जाती संदर्भ नोड के बाद: इस चयनकर्ता जो करने के लिए निर्दिष्ट टी आपरेशन लागू किया जाता है संदर्भ नोड्स का चयन करने के विस्तारित टेम्पलेट पर प्रयोग किया जाता है आखिरी बच्चा)
  • आगे जोड़ते
    नोड के शरीर से पहले
    नोड के शरीर सही संदर्भ से पहले डाला जाता है संदर्भ नोड (संदर्भ नोड के पहले बच्चे से पहले सम्मिलित)
  • के लिए prepended है नोड
  • के बाद
    नोड के शरीर सही संदर्भ नोड
  • भीतरी
    के बाद डाला जाता है नोड के शरीर संदर्भ नोड के बच्चों

  • की जगह की जगह नोड के शरीर संदर्भ नोड को बदलने के लिए प्रयोग किया जाता है itsel
  • कोई ऑपरेशन
    यदि कोई टी-ऑपरेशन निर्दिष्ट नहीं किया गया है, तो टेम्पलेट बॉडी को जावास्क्रिप्ट कोड के रूप में व्याख्या किया गया है और संदर्भ नोड के साथ निष्पादित किया गया है क्योंकि यह
0

मैं भी इस XML फ़ाइल में दिनांक शो प्रारूप को बदलना चाहता था। इसलिए मैंने पूरे टेम्पलेट को इस नए लेआउट के लिए अपने नए मॉड्यूल में कॉपी किया और केवल स्पैन टैग में दिनांक बदल दिया। अपने __openerp__.py

यह मेरे लिए काम किया में इस xml फ़ाइल घोषित करने के लिए

<?xml version="1.0" encoding="UTF-8"?> 
<template> 

    <!-- default layout --> 
    <t t-name="mail.thread.message"> 
    .... 

     <span t-att-title="widget.date"> 
      <!--<t t-if="widget.timerelative" t-esc="widget.timerelative"/>--> 
      <!--<t t-if="!widget.timerelative" t-raw="widget.display_date"/>--> 
      <t t-raw="widget.display_date"/> 
     </span> 

    .... 
    </t> 
</template> 

की जरूरत है।

संबंधित मुद्दे