2012-05-01 16 views
6

पर चर्चा सक्रिय नहीं कर सकता है मैं एक निपुणता आधारित प्लोन एप्लिकेशन पर काम कर रहा हूं। मैंने कुछ नए प्रकार बनाए हैं।प्लोन डिसक्टेरिटी प्रकार (फ़ोल्डर)

  • :

    चर्चा खंड में मैं निम्नलिखित सक्षम

    प्लोन नियंत्रण कक्ष: यह क्या मैं एक विशिष्ट निपुणता सामग्री "activity_report" नाम प्रकार पर टिप्पणियों को सक्रिय करने के लिए किया था है वैश्विक स्तर पर टिप्पणियां

  • अनाम टिप्पणियां सक्षम करें

प्रकार धारा मैंने ड्रॉप डाउन से "गतिविधि रिपोर्ट" प्रकार चुना और "टिप्पणियों की अनुमति दें" विकल्प सक्षम किया।

फाइल सिस्टम

FTI फ़ाइल activityreport.xml में पर:

<property name="allow_discussion">True</property> 

मैं उदाहरण के पुन: प्रारंभ किया है और यहां तक ​​कि उत्पाद को पुनर्स्थापित, लेकिन मैं में टिप्पणी अनुभाग सक्रिय नहीं कर सकते निपुणता प्रकार।

यह उल्लेखनीय है कि मानक प्रकार (उदा। पृष्ठ) में चर्चा मॉड्यूल सक्रिय हो सकता है।

क्या मुझे कुछ याद आ रही है?

+1

मुझे लगता है कि मेरी समस्या इस तथ्य से भी संबंधित है कि मेरी सामग्री प्रकार फ़ोल्डर है। मैं एक फ़ोल्डर प्रकार पर चर्चा कैसे अनुमति दूं? – jcuot

उत्तर

3

plone.app.discussion वर्तमान में सभी कंटेनरों के लिए टिप्पणी अक्षम करता है (चर्चा के लिए https://dev.plone.org/ticket/11245 देखें)।

from Acquisition import aq_inner 
from Products.highcountrynews.content.interfaces import IHCNNewsArticle 
from plone.app.discussion.conversation import Conversation 
old_enabled = Conversation.enabled 
def enabled(self): 
    parent = aq_inner(self.__parent__) 
    if parent.portal_type == 'my_portal_type': 
     return True 
    return old_enabled(self) 
Conversation.enabled = enabled 

जहां 'my_portal_type' जाहिर है, है:

मैं शॉर्ट सर्किट के लिए एक परियोजना में निम्नलिखित की तरह एक बंदर पैच सामान्य चेक और यह सुनिश्चित करें कि टिप्पणी मेरी folderish सामग्री प्रकार के लिए सक्षम किया गया था बनाने के लिए प्रयोग किया जाता , पोर्टल_ टाइप जिसे आप टिप्पणी करना चाहते हैं।

+1

धन्यवाद डेविड! ऐसा लगता है कि मैं जिस समाधान को अपनाऊंगा। मैं प्रकारों को सरल दस्तावेजों में बदलने पर भी विचार कर रहा हूं। मेरे मामले में, फ़ोल्डर प्रकारों का उपयोग करने का एकमात्र लाभ कंटेनर में संबंधित दस्तावेजों को एक साथ रखना होगा। – jcuot

2

डेविड प्रतिक्रिया सटीक नहीं है।

from Acquisition import aq_inner 
from plone.app.discussion.browser.conversation import ConversationView 
old_enabled = ConversationView.enabled 

def enabled(self): 
    parent = aq_inner(self.__parent__) 
    if parent.portal_type == 'My_type': 
     return True 
    return old_enabled(self) 

यह प्लोन 4.2 कम से कम के लिए काम करता है: वर्ग monkeypatched किए जाने की plone.app.discussion.browser.conversation.ConversationView है। हालांकि, संकेत के लिए डेविड धन्यवाद।

2

जैसा कि डेविड और विक्टर ने पहले से ही बताया है, आप वार्तालाप वर्ग की सक्षम विधि को ओवरराइड कर सकते हैं। मैं निम्नलिखित दृष्टिकोण है जो एक सा बंदर बातचीत वर्ग पैच से क्लीनर है का उपयोग कर की सिफारिश करेंगे:

https://github.com/plone/plone.app.discussion/blob/master/docs/source/howtos/howto_override_enable_conversation.txt

मैं भी निपुणता प्रकार plone.app करने के लिए समर्थन जोड़ा।

https://github.com/plone/plone.app.discussion/commit/0e587a7d8536125acdd3bd385e880b60d6aec28e

ध्यान दें कि यह विधि folderish वस्तुओं पर टिप्पणी करते हुए समर्थन करता है: चर्चा हाल ही में, इतनी के रूप में जल्द ही एक नई रिलीज होती है, जैसा कि आप बातचीत वर्ग अनुकूलित करने के लिए किसी भी अब जरूरत नहीं होगी। अभी तक एक फ़ोल्डर ऑब्जेक्ट के अंदर वस्तुओं के लिए टिप्पणी सक्षम/अक्षम करने के लिए कोई समर्थन नहीं है।

मामले में आप पर/बंद करने की एक व्यवहार क्षेत्र/विजेट के साथ टिप्पणी सक्षम होना चाहते हैं:

https://github.com/plone/plone.app.dexterity/commit/0573df4f265a39da9efae44e605e3815729457d7

यह उम्मीद है कि रूप में अच्छी तरह अगले plone.app.dexterity रिलीज में यह कर देगा।

+0

अच्छा समाधान क्योंकि सभी परिवर्तन किसी भी प्लोन पैकेज अंडे के बाहर हैं। "Howto_override_enable_conversation.txt" ज्यादातर मेरे लिए काम करता है। इससे पहले "अगर context.allow_discussion कोई नहीं है" मुझे यह जांचना था कि विशेषता संदर्भ में मौजूद है या नहीं, या कोशिश करें, ब्लॉक को पकड़ें)। –

+0

@RyanAnderson क्या आप एक पुल अनुरोध को बदलने और बदलने के बारे में सोचेंगे ताकि मैं दस्तावेज़ अपडेट कर सकूं? – tisto

1

मैं configure.zcml में हल:

<interface interface="Products.CMFPlone.interfaces.INonStructuralFolder" /> 

<class class="Products.PloneHelpCenter.types.Definition.HelpCenterDefinition"> 
    <implements interface="Products.CMFPlone.interfaces.INonStructuralFolder" /> 
</class> 

अद्यतन: यह एक अच्छा विचार नहीं है। मुझे इस फिक्स वाले प्रत्येक सामग्री प्रकार के लिए अनुपलब्ध मेनू के साथ समस्याएं थीं।