;๒ ํฆีBc@s๚dklZdklZlZlZlZdklZdk l Z dk l Z dk l Z dk lZdk lZdklZd klZd klZd klZd klZd klZdklZdklZdklZgZ deefd„ƒYZ!ee!ƒde!fd„ƒYZ"de!fd„ƒYZ#de!fd„ƒYZ$de!fd„ƒYZ%de!fd„ƒYZ&de!fd„ƒYZ'de!fd „ƒYZ(d!e!fd"„ƒYZ)d#e!fd$„ƒYZ*d%e!fd&„ƒYZ+d'e!fd(„ƒYZ,d)e!fd*„ƒYZ-d+e!fd,„ƒYZ.d-e!fd.„ƒYZ/d/e!fd0„ƒYZ0d1e0fd2„ƒYZ1d3e.fd4„ƒYZ2d5e!fd6„ƒYZ3d7e!fd8„ƒYZ4d9e'fd:„ƒYZ5d;e'fd<„ƒYZ6d=e%fd>„ƒYZ7d?e!fd@„ƒYZ8dddddddd!d#d%d'd)d-d+d/d3d5d7d9d;d=d?d1fZ9ee"dAdBdCdDdEdFfƒee#dAdGdCdHdEdIfƒee$dAdJdCdKdEdLfƒee%dAdMdCdNdEdOfƒee&dAdPdCdQdEdRfƒee'dAdSdCdTdEdFdUfƒee(dAdVdCdWdEdXfƒee)dAdYdCdZdEd[fƒee*dAd\dCd]dEd^fƒee+dAd_dCd`dEdFdXfƒee,dAdadCdbdEdXfƒee-dAdcdCdddEdXfƒee/dAdedCdfdEdUfƒee.dAdgdCdhdEdifƒee0dAdjdCdkdEdFfƒee1dAdjdCdldEdFfƒee2dAdmdCdndEdofƒee3dAdpdCdqdEe:ƒee4dAdrdCdsdEdFfƒee5dAdtdCdudEdFfƒee6dAdvdCdwdEdFfƒee7dAdxdCdydEdXdOfƒee8dAdzdCd{dEdXfƒed|d}e"ƒed~dƒed€dƒedd}e/ƒed‚d}e/ƒedd}e'ƒed‚d}e'ƒedƒde'ƒed„d…e'ƒedd}e(ƒed‚d}e(ƒedd}e5ƒed‚d}e5ƒd†S(‡(sdeepcopy(sDictTypesFileTypesListTypes StringTypes(s getToolByName(s Expression(screateExprContext(s className(sunique(s capitalize(s macrowidget(slog(sregisterPropertyType(sregisterWidget(sBase(sClassSecurityInfo(sInitializeClass(saq_base(sImplicits TypesWidgetcBsNtZeiiƒZeihdddf<de<de<de<df<df<ƒeƒZ e i d ƒd „Z e i d ƒd „Z e i d ƒd„Z e i dƒd„Ze i dƒdd„Ze i dƒd„Ze i dƒd„Ze i dƒd„Ze i dƒeed„Ze i dƒd„ZRS(Nsmodessviewseditspopulatespostbacksshow_content_types helper_jss helper_csssgetNamecCs|iiSdS(N(sselfs __class__s__name__(sself((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pysgetName'ssgetTypecCst|ƒSdS(s)Return the type of this field as a stringN(s classNamesself(sself((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pysgetType+ss bootstrapcCsdSdS(s5Override if your widget needs data from the instance.N((sselfsinstance((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys bootstrap0ss populatePropscCs.|iƒ}|i ot|ƒ|_ndS(s)This is called when the field is created.N(sfieldsgetNamesnamesselfslabels capitalize(sselfsfieldsname((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys populateProps5s  s isVisiblecCstt|ƒdtƒ}d}|tjo|Snt|ƒtjo|i||ƒ}n*| o d}n|djo d}n|SdS(sฐdecide if a field is visible in a given mode -> 'state' Return values are visible, hidden, invisible The value for the attribute on the field may either be a dict with a mapping for edit and view:: visible = { 'edit' :'hidden', 'view' : 'invisible' } Or a single value for all modes:: True/1: 'visible' False/0: 'invisible' -1: 'hidden' visible: The field is shown in the view/edit screen invisible: The field is skipped when rendering the view/edit screen hidden: The field is added as The default state is 'visible'. svisibles invisibleishiddenN( sgetattrsaq_basesselfs_markersvis_dicsstatestypesDictTypesgetsmode(sselfsinstancesmodesstatesvis_dic((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys isVisible<s    s setConditioncCs ||_dS(s$Set the widget expression condition.N(s conditionsself(sselfs condition((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys setConditioncss getConditioncCs |iSdS(s!Return the widget text condition.N(sselfs condition(sself((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys getConditionhss testConditioncCsnyP|io>||||if}t|||ƒ}t|iƒ|ƒSnt SWnt j o t SnXdS(sTest the widget condition.N( sselfs conditionsfoldersportalsobjects__traceback_info__screateExprContextsecs ExpressionsTruesAttributeError(sselfsfoldersportalsobjectsecs__traceback_info__((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys testConditionms s process_formcCsW|i|iƒ|ƒ}||jo|Sn|o |djo|Sn|hfSdS(s*Basic impl for form processing in a widgetsN(sformsgetsfieldsgetNames empty_markersvaluesemptyReturnsMarker(sselfsinstancesfieldsforms empty_markersemptyReturnsMarkersvalue((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys process_form{s scopycCs/tt|ƒƒ}t|ƒ}|i|SdS(so Return a copy of widget instance, consisting of field name and properties dictionary. N(sdictsvarssselfscdictsdeepcopys propertiess __class__(sselfs propertiesscdict((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pyscopy†s (s__name__s __module__s macrowidgets _propertiesscopysupdatesTruesFalsesClassSecurityInfossecuritys declarePublicsgetNamesgetTypes bootstraps populatePropss isVisibles setConditions getConditions testConditionsNones process_form(((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys TypesWidgets.I           &       s StringWidgetcBsHtZeiiƒZeihdd<dd<dd<ƒeƒZRS(Nsmacroswidgets/stringssizes30s maxlengths255(s__name__s __module__s TypesWidgets _propertiesscopysupdatesClassSecurityInfossecurity(((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys StringWidget‘s(s DecimalWidgetcBsctZeiiƒZeihdd<dd<dd<de<de<d e<ƒeƒZRS( Nsmacroswidgets/decimalssizes5s maxlengths255sdollars_and_centss whole_dollarssthousands_commas( s__name__s __module__s TypesWidgets _propertiesscopysupdatesFalsesClassSecurityInfossecurity(((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys DecimalWidget›sC s IntegerWidgetcBsHtZeiiƒZeihdd<dd<dd<ƒeƒZRS(Nsmacroswidgets/integerssizes5s maxlengths255(s__name__s __module__s TypesWidgets _propertiesscopysupdatesClassSecurityInfossecurity(((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys IntegerWidgetจs(sReferenceWidgetcBsˆtZeiiƒZeihdd<dd<de<de<de<dd f<ƒeƒZ ed „Z e i d ƒd „Z RS( Nsmacroswidgets/referencescheckbox_boundisaddablesdestination_typess destinations helper_cssscontent_types.csscCs g}|tj oKt|ƒtfƒtgƒfjo|t|ƒ7}q|i|ƒnทxณ|iƒD]ฅ} |i ƒo|i| i ƒƒqk| i o| i ogtgi} | i D]}| |dfƒqฝ~ ƒ}|i|i ƒƒo|i| i ƒƒqqkqkWt|dƒ} g}di|iƒiƒƒ}xQ|D]I}x@| d|ƒD]/} | iƒi|ddƒ} |i| ƒqaWqKW|SdS(sA search where the user can add a typeid instance isportal_catalogs/s portal_typesN( s searchForsdestination_typessNonestypeslistsappendstools listTypeInfosregTypestypeinfos globalAllowsgetIdsfilter_content_typessallowed_content_typessdicts_[1]sactsact_dictshas_keys getToolByNamespurlscatalogs containerssjoinsgetPortalObjectsgetPhysicalPaths portal_pathswantedsbrainsgetPathsreplaces relative_path(sselfstypeinfostoolspurlsdestination_typesswantedsact_dicts searchForsacts relative_paths_[1]sbrainscatalogsregTypes portal_paths containers((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pyslookupDestinationsForสs0 %  6s addableTypesc Cs๘t|dƒ}t|dƒ}|i} |i}t|dtƒ}|i }g} h}x–|iD]‹} |i| ƒ}|tjotd| ƒqan|tjotg|| ( s__name__s __module__s TypesWidgets _propertiesscopysupdatesTruesClassSecurityInfossecuritys declarePublicsNonesFalses process_form(((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys KeywordWidgetพs 1  s FileWidgetcBs[tZeiiƒZeihdd<de<ƒeƒZei dƒe e d„Z RS(Nsmacros widgets/filesshow_content_types process_formc Cs็|id|iƒ|ƒ} | djodhfSn| djo|Snt}|id|iƒ|ƒ}||jo|Snt |ddƒp t |t ƒot |ddƒ}|o |}n| otSn|hfSd S( s+form processing that deals with binary datas %s_deletesdeletes DELETE_FILEsnochanges%s_filesfilenamessnameN( sformsgetsfieldsgetNames empty_markersdeletesNonesvaluesfileobjsgetattrs isinstancesFileTypesfilename( sselfsinstancesfieldsforms empty_markersemptyReturnsMarkersvaluesfilenamesfileobjsdelete((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys process_form๊s    5 ( s__name__s __module__s TypesWidgets _propertiesscopysupdatesTruesClassSecurityInfossecuritys declarePublicsNonesFalses process_form(((s@/mnt/gmirror/ports/www/zope-archetypes/work/Archetypes/Widget.pys FileWidget฿s   s RichWidgetcBsvtZeiiƒZeihdd<dd<dd<dd<d e<ƒeƒZei d ƒe e d „Z RS( Nsmacros widgets/richsrowsiscolsi(sformatisallow_file_uploads process_formc Cs“t} t} t}t|dƒo|io&d|iƒ}|i ||ƒ} n|i d|iƒ|ƒ} | |j oPt| ddƒp t| tƒot| ddƒ}|o| }t} qหnh} | o>|i |iƒ|ƒ}| |j o| o| | d