;ò ¨YìDc@sdkZdkZdklZlZdkZdklZlZlZlZdk l Z dk l Z de eei i efd„ƒYZdeei i eiieiifd„ƒYZd eeiieiifd „ƒYZd „Ze d eƒƒZdS( N(s Acquisitions Persistent(saq_basesaq_inners aq_parentsExplicit(sPageTemplateFile(sSkinnableObjectManagers OntoEkodanikcBs3tZdZgZdZdZdZeiƒZ e i ƒe i i i Z dZd„Ze idƒd„Zd„Zd„Zd „Zd „Zd d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"fd„Z#d„Z$d„Z%d„Z&RS(s Main classis OntoEkodanikszwiki/cCs$|iƒ|iddfdƒdS(NsViews Authenticatedi(sselfs setupSkinssmanage_permission(sselfsitems container((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysmanage_afterAdds s setupSkinscCs�dkl}|idi}|dtƒt||iƒƒ}|i ddƒd}|i d|dd ƒd k l }||d tƒƒd S( s setup skins system (smanage_addToolsCMFCoresCMF Skins Toolsdefault_customs%Customize pages here for default skinsmain, default_customsdefaults make_defaulti(saddDirectoryViewssskinsN(sProducts.CMFCore.utilssmanage_addToolsselfsmanage_addProductsadd_toolsNonesgetattrsgetSkinsFolderNamessk_toolsmanage_addFolderspathssaddSkinSelectionsProducts.CMFCore.DirectoryViewsaddDirectoryViewssglobals(sselfspathssmanage_addToolssk_toolsadd_toolsaddDirectoryViews((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys setupSkinss   cCsdSdS(Ns portal_skins((sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetSkinsFolderName+scCs|iƒSdS(s index fileN(sselfs mainframe(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys index_html/scCs$|id7_dt|iƒSdS(sfor creating question objectsisqN(sselfsqnrsstr(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetNewQuestionID3scCs9|it|dƒt|ddƒƒ|iidƒdS(sAdding questionsqtextsqlinkssdatalist_table?utext=1N(sselfscreateNewQuestionsgetattrsREQUESTsRESPONSEsredirect(sselfsREQUEST((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysquestion_add_form_handler8s%scCs<t||ƒ}|iƒ|_|i|i|ƒ|iSdS(screateN(s OntoQuestionstextslinksqsselfsgetNewQuestionIDsids _setObject(sselfstextslinksq((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pyscreateNewQuestion=s cCsƒxl|iƒD]^}t||itƒ}|ot|dƒdjo%|i ||i|d|dƒq q W|i i dƒdS(sAdding answersiisdatalist_table?utext=1N( sselfs getQuestionssqsgetattrsREQUESTsidsNonesqaslenssaveQuestionAnswersRESPONSEsredirect(sselfsREQUESTsqasq((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysanswer_add_form_handlerEs )cCs¶t|iƒ}||ijo |ii|ƒ|i|_nt||ƒ}t ||ƒo|i |ƒn|dj o5t t|ƒ|ƒ}||_|i|i|ƒndS(s Save answersxxN(sstrsREQUESTsAUTHENTICATED_USERsunamesselfs usernamessappendsgetattrsqidsqshasattrs _delObjectsvalues OntoAnswersfloatstextsasids _setObject(sselfsREQUESTsqidsvaluestextsasqsuname((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pyssaveQuestionAnswerMs cCs|idƒSdS(sQuestion objects arrays OntoQuestionN(sselfs objectValues(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys getQuestionsZscCs |iSdS(slogged usernames listN(sselfs usernames(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys getUserNames^scCs0d}x|iD]}||d7}qW|SdS(s username list separated by spacess N(stsselfs usernamessu(sselfsust((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetUserNamesAsTextbs  cCst|iƒSdS(s"Current user name - used by appletN(sstrsREQUESTsAUTHENTICATED_USER(sselfsREQUEST((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetCurrentUserNameiscCs |iSdS(sgetterN(sselfsdefaultAnswerValue(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetDefaultAnswerValuemscCsZd}t||ƒ}x'|iD]}||id|ƒ7}qWt|ƒt |iƒSdS(sarithmetical averageisusernameN( sssgetattrsselfsqidsqs usernamessunamesgetUserAnswerValuesfloatslen(sselfsqidsqsunamess((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetQuestionAverageValueqs cCsT|i|iƒ|i|iƒ}|djodSn|djodSndSdS(scompares by average valueiiÿÿÿÿiN(sselfsgetQuestionAverageValuesq2sidsq1sd(sselfsq1sq2sd((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysquestionCompareys"  cCs$|iƒ}|i|iƒ|SdS(sSorted by average valueN(sselfs getQuestionssqsssortsquestionCompare(sselfsqs((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetSortedQuestions€s cCsGg}x6|iƒD](}|i|ƒ o|i|ƒqqW|SdS(s6list of questions, which current user not answered yetN(stsselfs getQuestionssqsisAnsweredByCurrentUsersREQUESTsappend(sselfsREQUESTsqst((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetUnansweredQuestionList†s cCsFg}x5|iƒD]'}|i|ƒo|i|ƒqqW|SdS(s.list of questions, which current user answeredN(stsselfsgetSortedQuestionssqsisAnsweredByCurrentUsersREQUESTsappend(sselfsREQUESTsqst((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetAnsweredQuestionListŽs cCsídk}t|ƒ|ijo |f}nt|ƒGHt|iƒ}|i ƒ}x�t t |ƒƒD]|}t|||ƒ o||i|tƒƒnt|||ƒ}|t |ƒjot||ƒ|_qed|_qeWdSdS(sSave slider settingsNf0.0sok(stypesstypesps StringTypesstrsREQUESTsAUTHENTICATED_USERsunamesselfs getQuestionssqsrangeslensishasattrs _setObjects OntoAnswersgetattrs answerobjsfloats paramvalue(sselfsREQUESTspsunamesisqs answerobjstypes((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pyssetUserParameterValues–s      cCsBd}x1|iƒD]#}|t|i|ƒƒd}qW|SdS(sSlaider positions for userss N(stsselfs getQuestionssqsstrsgetUserParameterValuesuname(sselfsREQUESTsunamesqst((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetUserParameterValues¨s  !cCs |iSdS(sPlace where Wiki startsN(sselfs wikifolderurl(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetWikiMainURL¯scCs||_|SdS(schange locationN(snewurlsselfs wikifolderurl(sselfsnewurl((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pyssetWikiMainURL´s ('s__name__s __module__s__doc__s usernamessdefaultAnswerValuesqnrs meta_types AccessControlsClassSecurityInfossecuritysdeclareObjectPublicsOFSsFoldersmanage_optionss wikifolderurlsmanage_afterAddsdeclarePrivates setupSkinssgetSkinsFolderNames index_htmlsgetNewQuestionIDsquestion_add_form_handlerscreateNewQuestionsanswer_add_form_handlerssaveQuestionAnswers getQuestionss getUserNamessgetUserNamesAsTextsgetCurrentUserNamesgetDefaultAnswerValuesgetQuestionAverageValuesquestionComparesgetSortedQuestionssgetUnansweredQuestionListsgetAnsweredQuestionListssetUserParameterValuessgetUserParameterValuessgetWikiMainURLssetWikiMainURL(((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys OntoEkodanik sB                        s OntoQuestioncBsztZdZdZdZdZed„Zd„Zd„Z eed„Z ed„Z d „Z eed „Z d „ZRS( s Question datasxxxss OntoQuestioncCs!||_|o ||_ndS(s ConstructorN(stextsselfslink(sselfstextslink((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys__init__Ås cCs |iSdS(sgetterN(sselfstext(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetTextËscCs |iSdS(sgetterN(sselfslink(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetLinkÏscCsf|ot|iƒ}nt||tƒ}|o%|iƒ}|tj o|SqXn|i ƒSdS(s User answerN( sREQUESTsstrsAUTHENTICATED_USERsusernamesgetattrsselfsNonesuanswersgetAnswerValuesanswersgetDefaultAnswerValue(sselfsREQUESTsusernamesuanswersanswer((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetUserAnswerValueÓs   cCsFt||tƒ}|o%|iƒ}|tj o|Sq>ndSdS(s User answerf0.0N(sgetattrsselfsusernamesNonesuanswersgetParameterValuesanswer(sselfsusernamesuanswersanswer((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetUserParameterValueÞs   cCs|iƒ|iSdS(sPlace to write wiki pageN(sselfsgetWikiMainURLsid(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetQuestionWikiURLçscCsI|ot|iƒ}nt||tƒ}|o|iƒSndSdS(s User answersN( sREQUESTsstrsAUTHENTICATED_USERsusernamesgetattrsselfsNonesuanswers getAnswerText(sselfsREQUESTsusernamesuanswer((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetUserAnswerTextëscCsUt|iƒ}t||ƒo.t||ƒ}|iƒt j odSqMndSdS(sgetteriiN( sstrsREQUESTsAUTHENTICATED_USERsunameshasattrsselfsgetattrsanswersgetAnswerValuesNone(sselfsREQUESTsunamesanswer((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysisAnsweredByCurrentUserós (s__name__s __module__s__doc__stextslinks meta_typesNones__init__sgetTextsgetLinksgetUserAnswerValuesgetUserParameterValuesgetQuestionWikiURLsgetUserAnswerTextsisAnsweredByCurrentUser(((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys OntoQuestionºs     s OntoAnswercBsMtZdZdZeZdZdZed„Zd„Z d„Z d„Z RS(sUser answer datasis OntoAnswercCs||_||_dS(s constructorN(svaluesselfs answervaluestexts answertext(sselfsvaluestext((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys__init__s cCs |iSdS(sgetterN(sselfs answertext(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys getAnswerText scCs |iSdS(sgetterN(sselfs answervalue(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetAnswerValuescCs |iSdS(sgetterN(sselfs paramvalue(sself((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysgetParameterValues( s__name__s __module__s__doc__s answertextsNones answervalues paramvalues meta_types__init__s getAnswerTextsgetAnswerValuesgetParameterValue(((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys OntoAnswerýs    cCs;t|ƒ}|i||ƒ|o|i||ƒSndS(s instantiate N(s OntoEkodaniksidsobsselfs _setObjectsREQUESTs manage_main(sselfsREQUESTsidsob((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pysmanage_addOntoEkodaniks  sskins/addOntoEkodanikForm.pt(sOFSsGlobalss Acquisitions Persistents AccessControlsaq_basesaq_inners aq_parentsExplicits'Products.PageTemplates.PageTemplateFilesPageTemplateFilesProducts.CMFCore.SkinnablesSkinnableObjectManagersFolders OntoEkodaniks SimpleItemsItemsRoles RoleManagers OntoQuestions OntoAnswersmanage_addOntoEkodaniksglobalssmanage_addOntoEkodanikForm(s AccessControls OntoQuestionsaq_basesmanage_addOntoEkodanikForms OntoEkodaniks OntoAnswersExplicits PersistentsSkinnableObjectManagersOFSsGlobalssPageTemplateFilesmanage_addOntoEkodaniks aq_parents Acquisitionsaq_inner((s-d:\zope\Products\OntoEkodanik\OntoEkodanik.pys?s   %°1C(