コード例 #1
0
def subject_vocab(context):
    """Provides a list of subject keywords"""
    ctool = getUtility(ICatalogTool)
    values = [SimpleTerm(u'', '', _(u"-- any --"))]
    values += [SimpleTerm(v, v.encode('hex'), decode(v))
               for v in ctool.uniqueValuesFor('Subject')]
    return SimpleVocabulary(values)
コード例 #2
0
def status_vocab(context):
    """Provides a list of workflow states"""
    ctool = getUtility(ICatalogTool)
    values = [SimpleTerm(u'', '', _(u"-- any --"))]
    values += [ SimpleTerm(v, str(v), _(decode(v)))
                for v in ctool.uniqueValuesFor('review_state') ]
    return SimpleVocabulary(values)
コード例 #3
0
def type_vocab(context):
    """Provides a list of portal types"""
    ttool = getUtility(ITypesTool)
    types = ttool.listTypeInfo()
    terms = [SimpleTerm(u'', '', _(u"-- any --"))]
    terms += [ SimpleTerm(t.getId(), t.getId(), decode(t.Title()))
               for t in types ]
    return SimpleVocabulary(terms)
コード例 #4
0
ファイル: ursa.py プロジェクト: pigaov10/plone4.3
    def page_title(self):
        site_title = self.portal_title
        page_title = self.object_title

        if page_title != site_title:
            page_title = site_title + ": " + page_title

        return decode(page_title, self.context)
コード例 #5
0
ファイル: ursa.py プロジェクト: bendavis78/zope
    def page_title(self):
        site_title = self.portal_title
        page_title = self.object_title

        if page_title != site_title:
            page_title = site_title + ": " + page_title

        return decode(page_title, self.context)
コード例 #6
0
form = context.REQUEST.form
if add and \
        context.validateType(**form) and \
        context.validateId(**form) and \
        context.folder_add_control(**form):
    return

options = {}

items = []
type_name = form.get('type_name', None)
for item in context.allowedContentTypes():
    item_id = item.getId()
    items.append({
        'checked': type_name == item_id,
        'description': item.Description(),
        'id': item_id,
        'radio': 'cb_%s' % item_id.replace(' ', '_'),
        'title': item.Title()
    })
if len(items) == 1:
    items[0]['checked'] = True
options['batch'] = {'listItemInfos': tuple(items)}

target = context.getActionInfo('object/new')['url']
id = form.get('id', '')
options['form'] = {'action': target, 'id': id}

return context.folder_factories_template(**decode(options, script))
コード例 #7
0
ファイル: registered_email.py プロジェクト: bendavis78/zope
ptool = getToolByInterfaceName(script,
                               'Products.CMFCore.interfaces.IPropertiesTool')
utool = getToolByInterfaceName(script, 'Products.CMFCore.interfaces.IURLTool')
portal_url = utool()

options = {}

options['portal_title'] = ptool.title()
options['portal_description'] = ptool.getProperty('description')
options['portal_url'] = portal_url

member_id = member and member.getId() or 'foo'
options['member_id'] = member_id
options['password'] = password

target = atool.getActionInfo('user/login')['url']
options['login_url'] = '%s' % target

email_from_name = ptool.getProperty('email_from_name')
options['signature'] = email_from_name

headers = {}
headers['Subject'] = _(u'${portal_title}: Your Membership Information',
                       mapping={'portal_title': decode(ptool.title(), script)})
headers['From'] = '%s <%s>' % (email_from_name,
                               ptool.getProperty('email_from_address'))
headers['To'] = '<%s>' % email

mtext = context.registered_email_template(**decode(options, script))
return makeEmail(mtext, script, headers)
コード例 #8
0
def getKids(object):
    return object.talkback.getReplies()
tm.setChildAccess(function=getKids)

tree, rows = tm.cookieTree(tree_root)
rows.pop(0)

is_delete_allowed = mtool.checkPermission(ManagePortal, context)

items = []
for row in rows:
    branch = row.branch()
    item = row.object
    item_icon = item.getIcon(1)
    item_url = item.absolute_url()
    items.append({'tree_colspan': tree.height - row.depth,
                  'tree_icon': branch and branch['img'] or '',
                  'tree_id': row.id,
                  'tree_indent': row.depth - 1,
                  'tree_url': branch and branch['link'] or '',
                  'creators': item.listCreators(),
                  'date': item.CreationDate(),
                  'delete_url': is_delete_allowed and \
                                ('%s/discitem_delete' % item_url) or '',
                  'icon': item_icon and \
                          ('%s/%s' % (portal_url, item_icon)) or '',
                  'title': item.Title(),
                  'url': item_url})

return decode(tuple(items), context)
コード例 #9
0
ファイル: ursa.py プロジェクト: pigaov10/plone4.3
 def status_message(self):
     message = self.request.form.get("portal_status_message")
     if message is not None:
         message = decode(message, self.context)
     return message
コード例 #10
0
ファイル: ursa.py プロジェクト: bendavis78/zope
 def status_message(self):
     message = self.request.form.get('portal_status_message')
     if message is not None:
         message = decode(message, self.context)
     return message
コード例 #11
0
ファイル: discussion_reply_form.py プロジェクト: goschtl/zope
        context.validateHTML(**form):
    is_preview = True


options = {}

title = form.get('title', context.Title())
text = form.get('text', '')
options['is_preview'] = is_preview
options['title'] = title
options['text'] = text
options['cooked_text'] = structured_text(text)

if is_preview:
    hidden_vars = [ {'name': n, 'value': v}
                    for n, v in html_marshal(title=title, text=text) ]
else:
    hidden_vars = []
buttons = []
target = atool.getActionInfo('object/reply', context)['url']
buttons.append( {'name': 'add', 'value': _(u'Add')} )
if is_preview:
    buttons.append( {'name': 'edit', 'value': _(u'Edit')} )
else:
    buttons.append( {'name': 'preview', 'value': _(u'Preview')} )
options['form'] = { 'action': target,
                    'listHiddenVarInfos': tuple(hidden_vars),
                    'listButtonInfos': tuple(buttons) }

return context.discussion_reply_template(**decode(options, script))
コード例 #12
0
ファイル: search.py プロジェクト: dtgit/dtedu
            del kw[k]
    elif k in ('created',):
        if v['query'] == epoch and v['range'] == 'min':
            del kw[k]
        else:
            # work around problems with DateTime in records
            kw[k] = v.copy()
    elif k in ('go', 'go.x', 'go.y', 'b_start'):
            del kw[k]
items = ctool.searchResults(kw)
batch_obj = Batch(items, 25, b_start, orphan=1)

items = [ {'description': item.Description,
           'icon': item.getIcon,
           'title': item.Title,
           'type': item.Type,
           'date': item.Date,
           'url': item.getURL()+'/view'}
          for item in batch_obj ]

length = batch_obj.sequence_length
summary = { 'length': length and thousands_commas(length) or '',
            'type': (length == 1) and _(u'item') or _(u'items'),
            'match': kw.get('SearchableText') }
navigation = context.getBatchNavigation(batch_obj, target, **kw)
options['batch'] = { 'summary': summary,
                     'listItemInfos': tuple(items),
                     'navigation': navigation }

return context.search_results_template(**decode(options, script))
コード例 #13
0
ファイル: synPropertiesForm.py プロジェクト: goschtl/zope
##parameters=
##
from Products.CMFCore.utils import getToolByName
from Products.CMFDefault.utils import decode

stool = getToolByName(script, 'portal_syndication')


options = {}

s_site_allowed = stool.isSiteSyndicationAllowed()
s_here_allowed = stool.isSyndicationAllowed(context)

options['title'] = context.Title()
options['description'] = context.Description()
options['s_site_allowed'] = s_site_allowed
options['s_here_allowed'] = s_here_allowed
options['s_allowed'] = s_site_allowed and s_here_allowed
options['s_tool'] = stool

return context.synPropertiesForm_template(**decode(options, script))
コード例 #14
0
ファイル: password_email.py プロジェクト: bendavis78/zope
##parameters=member=None, password='******'
##
from Products.CMFCore.utils import getToolByName
from Products.CMFDefault.utils import decode

atool = getToolByName(script, 'portal_actions')
ptool = getToolByName(script, 'portal_properties')
utool = getToolByName(script, 'portal_url')
default_charset = ptool.getProperty('default_charset')
portal_url = utool()


options = {}

email_from_name = ptool.getProperty('email_from_name')
email_from_address = ptool.getProperty('email_from_address')
options['portal_address'] = '%s <%s>' % (email_from_name, email_from_address)
member_address = member and member.email or '*****@*****.**'
options['member_address'] = '<%s>' % member_address
options['content_type'] = 'text/plain; charset=%s' % default_charset

options['portal_title'] = ptool.title()
options['password'] = password

rendered = context.password_email_template(**decode(options, script))
if isinstance(rendered, unicode):
    return rendered.encode(default_charset)
else:
    return rendered
コード例 #15
0
##parameters=
##
from Products.CMFDefault.utils import decode

options = {}
options['title'] = context.Title()
options['description'] = context.Description()
options['image'] = context.tag()

return context.image_view_template(**decode(options, script))
コード例 #16
0
ファイル: password_form.py プロジェクト: bendavis78/zope
form = context.REQUEST.form
if change and \
        context.change_password(**form) and \
        context.setRedirect(atool, 'user/preferences'):
    return
elif cancel and \
        context.setRedirect(atool, 'user/preferences'):
    return

options = {}

is_first_login = (
    member.getProperty('last_login_time') == DateTime('1999/01/01'))
options['is_first_login'] = is_first_login
if is_first_login:
    options['title'] = _(u'Welcome!')
    options['portal_title'] = ptool.getProperty('title')
else:
    options['title'] = _(u'Change your Password')
options['member_id'] = member.getId()
options['domains'] = ' '.join(member.getDomains())
buttons = []
target = '%s/password_form' % portal_url
buttons.append({'name': 'change', 'value': _(u'Change')})
if not is_first_login:
    buttons.append({'name': 'cancel', 'value': _(u'Cancel')})
options['form'] = {'action': target, 'listButtonInfos': tuple(buttons)}

return context.password_form_template(**decode(options, script))
コード例 #17
0
## Script (Python) "expanded_title"
##parameters=
##title=Build title which includes site title
##
from Products.CMFCore.utils import getToolByInterfaceName
from Products.CMFDefault.utils import decode

utool = getToolByInterfaceName(script, 'Products.CMFCore.interfaces.IURLTool')

site_title = utool.getPortalObject().Title()
page_title = context.Title()

if page_title != site_title:
    page_title = site_title + ": " + page_title

return decode(page_title, script)
コード例 #18
0
options = {}
options['title'] = context.Title()

is_review_allowed = mtool.checkPermission(ReviewPortalContent, context)
options['is_review_allowed'] = is_review_allowed
options['listAvailableSubjects'] = ctool.uniqueValuesFor('Subject')

created = []
today = context.ZopeTime().earliestTime()
created.append({'value': '1970/01/01 00:00:01 GMT', 'title': _(u'Ever')})
if not mtool.isAnonymousUser():
    member = mtool.getAuthenticatedMember()
    created.append({
        'value': member.getProperty('last_login_time'),
        'title': _(u'Last login')
    })
created.append({'value': (today - 1).Date(), 'title': _(u'Yesterday')})
created.append({'value': (today - 7).Date(), 'title': _(u'Last week')})
created.append({'value': (today - 31).Date(), 'title': _(u'Last month')})
options['listCreatedInfos'] = tuple(created)

options['listTypeInfos'] = ttool.listTypeInfo()

buttons = []
target = '%s/search' % portal_url
buttons.append({'name': 'search', 'value': _(u'Search')})
options['form'] = {'action': target, 'listButtonInfos': tuple(buttons)}

return context.search_form_template(**decode(options, script))
コード例 #19
0
    elif k in ('created',):
        if v['query'] == epoch and v['range'] == 'min':
            del kw[k]
        else:
            # work around problems with DateTime in records
            kw[k] = v.copy()
    elif k in ('go', 'go.x', 'go.y', 'b_start'):
            del kw[k]
items = ctool.searchResults(kw)
batch_obj = Batch(items, 25, b_start, orphan=1)

items = [ {'description': item.Description,
           'icon': item.getIconURL,
           'title': item.Title,
           'type': item.Type,
           'date': item.Date,
           'url': item.getURL()+'/view'}
          for item in batch_obj ]

length = batch_obj.sequence_length
summary = { 'length': length and thousands_commas(length) or '',
            'l2': length,
            'type': (length == 1) and _(u'item') or _(u'items'),
            'match': kw.get('SearchableText') }
navigation = context.getBatchNavigation(batch_obj, target, **kw)
options['batch'] = { 'summary': summary,
                     'listItemInfos': tuple(items),
                     'navigation': navigation }

return context.search_results_template(**decode(options, script))
コード例 #20
0
    portal_object,
    'portal_title':
    portal_object.Title(),
    'object_title':
    context.Title(),
    'object_description':
    context.Description(),
    'portal_url':
    utool(),
    'member':
    member,
    'membername':
    isAnon and 'Guest' or (member.getProperty('fullname') or member.getId()),
    'membersfolder':
    mtool.getMembersFolder(),
    'isAnon':
    isAnon,
    'wf_state':
    wtool.getInfoFor(context, 'review_state', ''),
    'show_actionicons':
    ptool.getProperty('enable_actionicons'),
    'status_message':
    message,
    'search_form_url':
    atool.getActionInfo('global/search_form')['url'],
    'search_url':
    atool.getActionInfo('global/search')['url']
}

return decode(globals, context)
コード例 #21
0
if context.REQUEST.get('is_newmember', False) == True:
    is_anon = False
    is_newmember = True

options['title'] = is_usermanager and _(u'Register a New Member') \
                                  or _(u'Become a Member')
options['member_id'] = member_id
options['member_email'] = member_email
options['password'] = is_newmember and context.REQUEST.get('password', '') or ''
options['send_password'] = send_password
options['portal_url'] = portal_url
options['isAnon'] = is_anon
options['isAnonOrUserManager'] = is_anon or is_usermanager
options['isNewMember'] = is_newmember
options['isOrdinaryMember'] = not (is_anon or is_newmember or is_usermanager)
options['validate_email'] = validate_email

buttons = []
if is_newmember:
    target = atool.getActionInfo('user/logged_in')['url']
    buttons.append( {'name': 'login', 'value': _(u'Log in')} )
else:
    target = atool.getActionInfo(('global/members_register',
                                  'user/join'))['url']
    buttons.append( {'name': 'add', 'value': _(u'Register')} )
    buttons.append( {'name': 'cancel', 'value': _(u'Cancel')} )
options['form'] = { 'action': target,
                    'listButtonInfos': tuple(buttons) }

return context.join_template(**decode(options, script))
コード例 #22
0
message = context.REQUEST.get('portal_status_message')
if message and isinstance(message, str):
    # portal_status_message uses always the browser charset.
    message = message.decode(getBrowserCharset(context.REQUEST))

globals = {'utool': utool,
           'mtool': mtool,
           'atool': atool,
           'wtool': wtool,
           'syndtool': syndtool,
           'caltool_installed': caltool is not None,
           'uidtool_installed': uidtool is not None,
           'portal_object': portal_object,
           'portal_title': portal_object.Title(),
           'object_title': context.Title(),
           'object_description': context.Description(),
           'portal_url': utool(),
           'member': member,
           'membername': isAnon and 'Guest' or (member.getProperty('fullname')
                                                or member.getId()),
           'membersfolder': mtool.getMembersFolder(),
           'isAnon': isAnon,
           'wf_state': wtool.getInfoFor(context, 'review_state', ''),
           'show_actionicons': ptool.getProperty('enable_actionicons'),
           'status_message': message,
           'search_form_url': atool.getActionInfo('global/search_form')['url'],
           'search_url': atool.getActionInfo('global/search')['url']}

return decode(globals, context)
コード例 #23
0
hidden_vars = []
for name, value in html_marshal(**default_kw):
    hidden_vars.append({'name': name, 'value': value})
buttons = []
if items_manage_allowed:
    if items_add_allowed and context.allowedContentTypes():
        buttons.append({'name': 'items_new', 'value': _(u'New...')})
        if items:
            buttons.append({'name': 'items_rename', 'value': _(u'Rename...')})
    if items:
        buttons.append({'name': 'items_cut', 'value': _(u'Cut')})
        buttons.append({'name': 'items_copy', 'value': _(u'Copy')})
    if items_add_allowed and context.cb_dataValid():
        buttons.append({'name': 'items_paste', 'value': _(u'Paste')})
    if items_delete_allowed and items:
        buttons.append({'name': 'items_delete', 'value': _(u'Delete')})
length = batch_obj.sequence_length
is_orderable = items_move_allowed and (key == 'position') and length > 1
is_sortable = items_move_allowed and not is_default
deltas = range(1, min(5, length)) + range(5, length, 5)
options['form'] = {
    'action': target,
    'listHiddenVarInfos': tuple(hidden_vars),
    'listButtonInfos': tuple(buttons),
    'listDeltas': tuple(deltas),
    'is_orderable': is_orderable,
    'is_sortable': is_sortable
}

return context.folder_contents_template(**decode(options, script))
コード例 #24
0
        context.document_edit_control(**form) and \
        context.setRedirect(context, 'object/edit'):
    return
elif change_and_view and \
        context.validateTextFile(**form) and \
        context.validateHTML(**form) and \
        context.document_edit_control(**form) and \
        context.setRedirect(context, 'object/view'):
    return


options = {}

options['title'] = context.Title()
options['description'] = context.Description()
options['text_format'] = form.get('text_format', context.text_format)
options['text'] = form.get('text', context.EditableBody())

SafetyBelt = form.get('SafetyBelt', context.SafetyBelt())
hidden_vars = [ {'name': n, 'value': v}
                for n, v in html_marshal(SafetyBelt=SafetyBelt) ]
buttons = []
target = context.getActionInfo('object/edit')['url']
buttons.append( {'name': 'change', 'value': _(u'Change')} )
buttons.append( {'name': 'change_and_view', 'value': _(u'Change and View')} )
options['form'] = { 'action': target,
                    'listHiddenVarInfos': tuple(hidden_vars),
                    'listButtonInfos': tuple(buttons) }

return context.document_edit_template(**decode(options, script))
コード例 #25
0
ファイル: folder_contents.py プロジェクト: goschtl/zope
options['batch'] = { 'listColumnInfos': tuple(columns),
                     'listItemInfos': tuple(items),
                     'navigation': navigation }

hidden_vars = []
for name, value in html_marshal(**default_kw):
    hidden_vars.append( {'name': name, 'value': value} )
buttons = []
if items_manage_allowed:
    if items and items_add_allowed and context.allowedContentTypes():
        buttons.append( {'name': 'items_rename', 'value': _(u'Rename...')} )
    if items:
        buttons.append( {'name': 'items_cut', 'value': _(u'Cut')} )
        buttons.append( {'name': 'items_copy', 'value': _(u'Copy')} )
    if items_add_allowed and context.cb_dataValid():
        buttons.append( {'name': 'items_paste', 'value': _(u'Paste')} )
    if items_delete_allowed and items:
        buttons.append( {'name': 'items_delete', 'value': _(u'Delete')} )
length = batch_obj.sequence_length
is_orderable = items_move_allowed and (key == 'position') and length > 1
is_sortable = items_move_allowed and not is_default
deltas = range( 1, min(5, length) ) + range(5, length, 5)
options['form'] = { 'action': target,
                    'listHiddenVarInfos': tuple(hidden_vars),
                    'listButtonInfos': tuple(buttons),
                    'listDeltas': tuple(deltas),
                    'is_orderable': is_orderable,
                    'is_sortable': is_sortable }

return context.folder_contents_template(**decode(options, script))
コード例 #26
0
##parameters=
##
from Products.CMFDefault.utils import decode

options = {}
options['title'] = context.Title()
options['description'] = context.Description()
options['contact_name'] = context.contact_name
options['location'] = context.location
options['contact_email'] = context.contact_email
options['event_types'] = context.Subject()
options['contact_phone'] = context.contact_phone
options['event_url'] = context.event_url
start = context.start()
options['start_date'] = DateTime.Date(start)
options['start_time'] = DateTime.Time(start)
stop = context.end()
options['stop_date'] = DateTime.Date(stop)
options['stop_time'] = DateTime.Time(stop)

return context.event_view_template(**decode(options, script))
コード例 #27
0
options = {}

title = form.get('title', context.Title())
text = form.get('text', '')
options['is_preview'] = is_preview
options['title'] = title
options['text'] = text
options['cooked_text'] = structured_text(text)

if is_preview:
    hidden_vars = [{
        'name': n,
        'value': v
    } for n, v in html_marshal(title=title, text=text)]
else:
    hidden_vars = []
buttons = []
target = atool.getActionInfo('object/reply', context)['url']
buttons.append({'name': 'add', 'value': _(u'Add')})
if is_preview:
    buttons.append({'name': 'edit', 'value': _(u'Edit')})
else:
    buttons.append({'name': 'preview', 'value': _(u'Preview')})
options['form'] = {
    'action': target,
    'listHiddenVarInfos': tuple(hidden_vars),
    'listButtonInfos': tuple(buttons)
}

return context.discussion_reply_template(**decode(options, script))
コード例 #28
0
ファイル: registered_email.py プロジェクト: goschtl/zope
ptool = getToolByInterfaceName('Products.CMFCore.interfaces.IPropertiesTool')
utool = getToolByInterfaceName('Products.CMFCore.interfaces.IURLTool')
portal_url = utool()


options = {}

options['portal_title'] = ptool.title()
options['portal_description'] = ptool.getProperty('description')
options['portal_url'] = portal_url

member_id = member and member.getId() or 'foo'
options['member_id'] = member_id
options['password'] = password

target = atool.getActionInfo('user/login')['url']
options['login_url'] = '%s' % target

email_from_name = ptool.getProperty('email_from_name')
options['signature'] = email_from_name

headers = {}
headers['Subject'] = _(u'${portal_title}: Your Membership Information',
                      mapping={'portal_title': decode(ptool.title(), script)})
headers['From'] = '%s <%s>' % (email_from_name,
                               ptool.getProperty('email_from_address'))
headers['To'] = '<%s>' % email

mtext = context.registered_email_template(**decode(options, script))
return makeEmail(mtext, script, headers)
コード例 #29
0
ファイル: reconfig_form.py プロジェクト: goschtl/zope
atool = getToolByName(script, 'portal_actions')
ptool = getToolByName(script, 'portal_properties')


form = context.REQUEST.form
if change and \
        context.portal_config_control(**form) and \
        context.setRedirect(atool, 'global/configPortal'):
    return


options = {}

target = atool.getActionInfo('global/configPortal')['url']
buttons = []
buttons.append( {'name': 'change', 'value': _(u'Change')} )
options['form'] = { 'action': target,
                    'email_from_name': ptool.getProperty('email_from_name'),
                    'email_from_address':
                                      ptool.getProperty('email_from_address'),
                    'smtp_server': ptool.smtp_server(),
                    'title': ptool.title(),
                    'description': ptool.getProperty('description'),
                    'validate_email': ptool.getProperty('validate_email'),
                    'default_charset':
                                    ptool.getProperty('default_charset', ''),
                    'listButtonInfos': tuple(buttons) }

return context.reconfig_template(**decode(options, script))
コード例 #30
0
options = {}

c = context.aq_explicit
raw_items = [getattr(c, id) for id in ids if hasattr(c, id)]
raw_items = [item for item in raw_items if item.cb_isMoveable()]
items = []
for item in raw_items:
    items.append({
        'icon': item.getIconURL(),
        'id': item.getId(),
        'title': item.Title(),
        'type': item.Type() or None
    })
options['batch'] = {'listItemInfos': tuple(items)}

target = context.getActionInfo('object/rename_items')['url']
hidden_vars = []
for name, value in html_marshal(**default_kw):
    hidden_vars.append({'name': name, 'value': value})
buttons = []
buttons.append({'name': 'rename', 'value': _(u'Rename')})
buttons.append({'name': 'cancel', 'value': _(u'Cancel')})
options['form'] = {
    'action': target,
    'listHiddenVarInfos': tuple(hidden_vars),
    'listButtonInfos': tuple(buttons)
}

return context.folder_rename_template(**decode(options, script))
コード例 #31
0
ファイル: members_delete_form.py プロジェクト: CGTIC/Plone_SP
from Products.CMFDefault.utils import Message as _

atool = getToolByName(script, 'portal_actions')


form = context.REQUEST.form
if delete and \
        context.members_delete_control(**form) and \
        context.setRedirect(atool, 'global/manage_members', b_start=b_start):
    return
elif cancel and \
        context.setRedirect(atool, 'global/manage_members', b_start=b_start):
    return


options = {}

target = atool.getActionInfo('global/members_delete')['url']
hidden_vars = []
for name, value in html_marshal(b_start=b_start, ids=ids):
    hidden_vars.append( {'name': name, 'value': value} )
buttons = []
buttons.append( {'name': 'delete', 'value': _(u'Delete')} )
buttons.append( {'name': 'cancel', 'value': _(u'Cancel')} )
options['form'] = { 'action': target,
                    'members': ', '.join(ids),
                    'listHiddenVarInfos': tuple(hidden_vars),
                    'listButtonInfos': tuple(buttons) }

return context.members_delete_template(**decode(options, script))
コード例 #32
0
##parameters=
##
from Products.CMFDefault.utils import decode

options = {}
options['title'] = context.Title()
options['description'] = context.Description()
options['text'] = context.CookedBody()

return context.discussionitem_view_template(**decode(options, script))
コード例 #33
0
ファイル: recent_news.py プロジェクト: goschtl/zope
##
from Products.PythonScripts.standard import structured_text
from ZTUtils import Batch
from Products.CMFCore.utils import getToolByInterfaceName
from Products.CMFDefault.utils import decode

ctool = getToolByInterfaceName('Products.CMFCore.interfaces.ICatalogTool')
utool = getToolByInterfaceName('Products.CMFCore.interfaces.IURLTool')
portal_url = utool()


options = {}

target = '%s/recent_news' % portal_url
items = ctool.searchResults(portal_type='News Item', sort_on='Date',
                            sort_order='reverse', review_state='published')
batch_obj = Batch(items, 10, b_start, orphan=1)

items = [ {'creators': item.listCreators,
           'date': item.Date,
           'description': structured_text(item.Description),
           'title': item.Title,
           'url': item.getURL()}
          for item in batch_obj ]

navigation = context.getBatchNavigation(batch_obj, target)
options['batch'] = {'listItemInfos': items,
                    'navigation': navigation}

return context.recent_news_template(**decode(options, script))
コード例 #34
0
##parameters=
##
from Products.CMFDefault.utils import decode

options = {}

metadata = [ {'name': field[0], 'body': field[1]}
             for field in context.getMetadataHeaders()
             if field[0].lower() != 'title' ]
options['title'] = context.Title()
options['listMetadataFields'] = metadata
options['editable_body'] = context.EditableBody()

return context.source_html_template(**decode(options, script))
コード例 #35
0
from Products.CMFDefault.utils import Message as _

atool = getToolByInterfaceName('Products.CMFCore.interfaces.IActionsTool')

form = context.REQUEST.form
if delete and \
        context.members_delete_control(**form) and \
        context.setRedirect(atool, 'global/manage_members', b_start=b_start):
    return
elif cancel and \
        context.setRedirect(atool, 'global/manage_members', b_start=b_start):
    return

options = {}

target = atool.getActionInfo('global/members_delete')['url']
hidden_vars = []
for name, value in html_marshal(b_start=b_start, ids=ids):
    hidden_vars.append({'name': name, 'value': value})
buttons = []
buttons.append({'name': 'delete', 'value': _(u'Delete')})
buttons.append({'name': 'cancel', 'value': _(u'Cancel')})
options['form'] = {
    'action': target,
    'members': ', '.join(ids),
    'listHiddenVarInfos': tuple(hidden_vars),
    'listButtonInfos': tuple(buttons)
}

return context.members_delete_template(**decode(options, script))
コード例 #36
0
ファイル: RSS.py プロジェクト: goschtl/zope

options = {}

options['channel_info'] = { 'base': stool.getHTML4UpdateBase(context),
                            'description': context.Description(),
                            'frequency': stool.getUpdateFrequency(context),
                            'period': stool.getUpdatePeriod(context),
                            'title': context.Title(),
                            'url': context.absolute_url() }

key, reverse = context.getDefaultSorting()
items = stool.getSyndicatableContent(context)
items = sequence.sort( items, ((key, 'cmp', reverse and 'desc' or 'asc'),) )
items = LazyFilter(items, skip='View')
b_size = stool.getMaxItems(context)
batch_obj = Batch(items, b_size, 0, orphan=0)
items = []
for item in batch_obj:
    items.append( { 'date': item.modified().HTML4(),
                    'description': item.Description(),
                    'listCreators': item.listCreators(),
                    'listSubjects': item.Subject(),
                    'publisher': item.Publisher(),
                    'rights': item.Rights(),
                    'title': item.Title(),
                    'url': item.absolute_url() } )
options['listItemInfos'] = tuple(items)

return context.RSS_template(**decode(options, script))
コード例 #37
0
atool = getToolByName(script, 'portal_actions')
ptool = getUtilityByInterfaceName(
    'Products.CMFCore.interfaces.IPropertiesTool')

form = context.REQUEST.form
if change and \
        context.portal_config_control(**form) and \
        context.setRedirect(atool, 'global/configPortal'):
    return

options = {}

target = atool.getActionInfo('global/configPortal')['url']
buttons = []
buttons.append({'name': 'change', 'value': _(u'Change')})
options['form'] = {
    'action': target,
    'email_from_name': ptool.getProperty('email_from_name'),
    'email_from_address': ptool.getProperty('email_from_address'),
    'smtp_server': ptool.smtp_server(),
    'title': ptool.title(),
    'description': ptool.getProperty('description'),
    'validate_email': ptool.getProperty('validate_email'),
    'default_charset': ptool.getProperty('default_charset', ''),
    'email_charset': ptool.getProperty('email_charset', ''),
    'enable_actionicons': ptool.getProperty('enable_actionicons'),
    'listButtonInfos': tuple(buttons)
}

return context.reconfig_template(**decode(options, script))
コード例 #38
0
ファイル: link_edit_form.py プロジェクト: CGTIC/Plone_SP
##parameters=change='', change_and_view=''
##
from Products.CMFDefault.utils import decode
from Products.CMFDefault.utils import Message as _

form = context.REQUEST.form
if change and \
        context.link_edit_control(**form) and \
        context.setRedirect(context, 'object/edit'):
    return
elif change_and_view and \
        context.link_edit_control(**form) and \
        context.setRedirect(context, 'object/view'):
    return


options = {}

options['title'] = context.Title()
options['remote_url'] = form.get('remote_url', context.remote_url)

buttons = []
target = context.getActionInfo('object/edit')['url']
buttons.append( {'name': 'change', 'value': _(u'Change')} )
buttons.append( {'name': 'change_and_view', 'value': _(u'Change and View')} )
options['form'] = { 'action': target,
                    'listButtonInfos': tuple(buttons) }

return context.link_edit_template(**decode(options, script))
コード例 #39
0
ファイル: members_manage_form.py プロジェクト: goschtl/zope
members = mtool.listMembers()
batch_obj = Batch(members, 25, b_start, orphan=0)
items = []
for member in batch_obj:
    member_id = member.getId()
    login_time = member.getProperty('login_time')
    member_login = login_time == '2000/01/01' and '---' or login_time.Date()
    member_home = mtool.getHomeUrl(member_id, verifyPermission=0)
    items.append( {'checkbox': 'cb_%s' % member_id,
                   'email': member.getProperty('email'),
                   'login': member_login,
                   'id': member_id,
                   'home': member_home } )
navigation = context.getBatchNavigation(batch_obj, target,
                                        'member', 'members')
options['batch'] = { 'listItemInfos': tuple(items),
                     'navigation': navigation }

hidden_vars = []
for name, value in html_marshal(b_start=b_start):
    hidden_vars.append( {'name': name, 'value': value} )
buttons = []
buttons.append( {'name': 'members_new', 'value': _(u'New...')} )
if items:
    buttons.append( {'name': 'members_delete', 'value': _(u'Delete...')} )
options['form'] = { 'action': target,
                    'listHiddenVarInfos': tuple(hidden_vars),
                    'listButtonInfos': tuple(buttons) }

return context.members_manage_template(**decode(options, script))
コード例 #40
0
##parameters=
##
from Products.CMFCore.utils import getUtilityByInterfaceName
from Products.CMFDefault.utils import decode

stool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ISyndicationTool')
options = {}

s_site_allowed = stool.isSiteSyndicationAllowed()
s_here_allowed = stool.isSyndicationAllowed(context)

options['title'] = context.Title()
options['description'] = context.Description()
options['s_site_allowed'] = s_site_allowed
options['s_here_allowed'] = s_here_allowed
options['s_allowed'] = s_site_allowed and s_here_allowed
options['s_tool'] = stool

return context.synPropertiesForm_template(**decode(options, script))
コード例 #41
0
##parameters=
##
from ZTUtils import Batch
from Products.CMFCore.utils import getToolByInterfaceName
from Products.CMFDefault.utils import decode

ctool = getToolByInterfaceName('Products.CMFCore.interfaces.ICatalogTool')

options = {}

items = ctool.searchResults(portal_type='News Item',
                            sort_on='Date',
                            sort_order='reverse',
                            review_state='published')
batch_obj = Batch(items, 10, 0, orphan=1)
items = [{
    'title': item.Title,
    'date': item.Date,
    'url': item.getURL()
} for item in batch_obj]
options['listItemInfos'] = items

return context.news_box_template(**decode(options, script))
コード例 #42
0
ファイル: logged_in.py プロジェクト: goschtl/zope
isAnon = mtool.isAnonymousUser()
if isAnon:
    context.REQUEST.RESPONSE.expireCookie('__ac', path='/')
    options['is_anon'] = True
    options['title'] = _(u'Login failure')
    options['admin_email'] = ptool.getProperty('email_from_address')
else:
    mtool.createMemberArea()
    member = mtool.getAuthenticatedMember()
    now = context.ZopeTime()
    last_login = member.getProperty('login_time', None)
    member.setProperties(last_login_time=last_login, login_time=now)
    is_first_login = (last_login == '2000/01/01' and
                      ptool.getProperty('validate_email'))
    if is_first_login:
        member.setProperties(last_login_time='1999/01/01', login_time=now)
        target = '%s/password_form' % portal_url
        context.REQUEST.RESPONSE.redirect(target)
        return
    else:
        member.setProperties(last_login_time=last_login, login_time=now)
        came_from = context.REQUEST.get('came_from', None)
        if came_from:
            context.REQUEST.RESPONSE.redirect(came_from)
            return
        options['is_anon'] = False
        options['title'] = _(u'Login success')

return context.logged_in_template(**decode(options, script))
コード例 #43
0
ファイル: folder_rename_form.py プロジェクト: goschtl/zope
    return


options = {}

c = context.aq_explicit
raw_items = [ getattr(c, id) for id in ids if hasattr(c, id) ]
raw_items = [ item for item in raw_items if item.cb_isMoveable() ]
items = []
for item in raw_items:
    item_icon = item.getIcon(1)
    items.append( { 'icon': item_icon and
                            ( '%s/%s' % (portal_url, item_icon) ) or '',
                    'id': item.getId(),
                    'title': item.Title(),
                    'type': item.Type() or None } )
options['batch'] = { 'listItemInfos': tuple(items) }

target = context.getActionInfo('object/rename_items')['url']
hidden_vars = []
for name, value in html_marshal(**default_kw):
    hidden_vars.append( {'name': name, 'value': value} )
buttons = []
buttons.append( {'name': 'rename', 'value': _(u'Rename')} )
buttons.append( {'name': 'cancel', 'value': _(u'Cancel')} )
options['form'] = { 'action': target,
                    'listHiddenVarInfos': tuple(hidden_vars),
                    'listButtonInfos': tuple(buttons) }

return context.folder_rename_template(**decode(options, script))
コード例 #44
0
ファイル: logged_in.py プロジェクト: bendavis78/zope
options = {}

isAnon = mtool.isAnonymousUser()
if isAnon:
    context.REQUEST.RESPONSE.expireCookie('__ac', path='/')
    options['is_anon'] = True
    options['title'] = _(u'Login failure')
    options['admin_email'] = ptool.getProperty('email_from_address')
else:
    mtool.createMemberArea()
    member = mtool.getAuthenticatedMember()
    now = context.ZopeTime()
    last_login = member.getProperty('login_time')
    never_logged_in = str(last_login).startswith('2000/01/01')
    if never_logged_in and ptool.getProperty('validate_email'):
        member.setProperties(last_login_time='1999/01/01', login_time=now)
        target = atool.getActionInfo('user/change_password')['url']
        context.REQUEST.RESPONSE.redirect(target)
        return
    else:
        member.setProperties(last_login_time=last_login, login_time=now)
        came_from = context.REQUEST.get('came_from', None)
        if came_from:
            context.REQUEST.RESPONSE.redirect(came_from)
            return
        options['is_anon'] = False
        options['title'] = _(u'Login success')

return context.logged_in_template(**decode(options, script))
コード例 #45
0
ファイル: metadata_edit_form.py プロジェクト: bendavis78/zope
allow_discussion = getattr(context, 'allow_discussion', None)
if allow_discussion is not None:
    allow_discussion = bool(allow_discussion)
options['allow_discussion'] = allow_discussion

options['identifier'] = context.Identifier()
options['title'] = form.get('title', context.Title())
options['description'] = form.get('description', context.Description())

subject = form.get('subject', context.Subject())
allowed_subjects = mdtool.listAllowedSubjects(context)
extra_subjects = [s for s in subject if not s in allowed_subjects]
options['allowed_subjects'] = tuple(allowed_subjects)
options['extra_subjects'] = tuple(extra_subjects)
options['subject'] = tuple(subject)
options['format'] = form.get('format', context.Format())
options['contributors'] = form.get('contributors', context.Contributors())
options['language'] = form.get('language', context.Language())
options['rights'] = form.get('rights', context.Rights())

buttons = []
target = context.getActionInfo('object/metadata')['url']
buttons.append({'name': 'change', 'value': _(u'Change')})
buttons.append({'name': 'change_and_edit', 'value': _(u'Change and Edit')})
buttons.append({'name': 'change_and_view', 'value': _(u'Change and View')})

options['form'] = {'action': target, 'listButtonInfos': tuple(buttons)}

return context.metadata_edit_template(**decode(options, script))
コード例 #46
0
ファイル: metadata_edit_form.py プロジェクト: goschtl/zope
allow_discussion = getattr(context, 'allow_discussion', None)
if allow_discussion is not None:
    allow_discussion = bool(allow_discussion)
options['allow_discussion'] = allow_discussion

options['identifier'] = context.Identifier()
options['title'] = form.get('title', context.Title())
options['description'] = form.get('description', context.Description())

subject = form.get('subject', context.Subject())
allowed_subjects = mdtool.listAllowedSubjects(context)
extra_subjects = [ s for s in subject if not s in allowed_subjects ]
options['allowed_subjects'] = tuple(allowed_subjects)
options['extra_subjects'] = tuple(extra_subjects)
options['subject'] = tuple(subject)
options['format'] = form.get('format', context.Format())
options['contributors'] = form.get('contributors', context.Contributors())
options['language'] = form.get('language', context.Language())
options['rights'] = form.get('rights', context.Rights())

buttons = []
target = context.getActionInfo('object/metadata')['url']
buttons.append( {'name': 'change', 'value': _(u'Change')} )
buttons.append( {'name': 'change_and_edit', 'value': _(u'Change and Edit')} )
buttons.append( {'name': 'change_and_view', 'value': _(u'Change and View')} )

options['form'] = { 'action': target,
                    'listButtonInfos': tuple(buttons) }

return context.metadata_edit_template(**decode(options, script))
コード例 #47
0
ファイル: calendar_day_view.py プロジェクト: CGTIC/Plone_SP
##parameters=
##
from Products.CMFCore.utils import getToolByName
from Products.CMFDefault.utils import decode

caltool = getToolByName(script, 'portal_calendar')

options = {}
base_url = script.absolute_url()
thisDay = DateTime(context.REQUEST.get('date', DateTime().aCommon()[:12]))
options['previous_url'] = '%s?date=%s' % (base_url, (thisDay-1).Date())
options['date'] = thisDay.aCommon()[:12]
options['next_url'] =  '%s?date=%s' % (base_url, (thisDay+1).Date())

items = [ {'title': item.Title,
           'url': item.getURL(),
           'start': context.getStartAsString(thisDay, item),
           'stop': context.getEndAsString(thisDay, item)}
          for item in caltool.getEventsForThisDay(thisDay) ]

options['listItemInfos'] = tuple(items)

return context.calendar_day_view_template(**decode(options, script))
コード例 #48
0
ファイル: news_box.py プロジェクト: CGTIC/Plone_SP
##parameters=
##
from ZTUtils import Batch
from Products.CMFCore.utils import getToolByName
from Products.CMFDefault.utils import decode

ctool = getToolByName(script, 'portal_catalog')

options = {}

items = ctool.searchResults(portal_type='News Item', sort_on='Date',
                            sort_order='reverse', review_state='published')
batch_obj = Batch(items, 10, 0, orphan=1)
items = [ {'title': item.Title,
           'date': item.Date,
           'url': item.getURL()}
          for item in batch_obj ]
options['listItemInfos'] = items

return context.news_box_template(**decode(options, script))
コード例 #49
0
ファイル: recent_news.py プロジェクト: bendavis78/zope
from ZTUtils import Batch
from Products.CMFCore.utils import getToolByInterfaceName
from Products.CMFDefault.utils import decode

ctool = getToolByInterfaceName(script,
                               'Products.CMFCore.interfaces.ICatalogTool')
utool = getToolByInterfaceName(script, 'Products.CMFCore.interfaces.IURLTool')
portal_url = utool()

options = {}

target = '%s/recent_news' % portal_url
items = ctool.searchResults(portal_type='News Item',
                            sort_on='Date',
                            sort_order='reverse',
                            review_state='published')
batch_obj = Batch(items, 10, b_start, orphan=1)

items = [{
    'creators': item.listCreators,
    'date': item.Date,
    'description': structured_text(item.Description),
    'title': item.Title,
    'url': item.getURL()
} for item in batch_obj]

navigation = context.getBatchNavigation(batch_obj, target)
options['batch'] = {'listItemInfos': items, 'navigation': navigation}

return context.recent_news_template(**decode(options, script))
コード例 #50
0
ファイル: topic_edit_form.py プロジェクト: dtgit/dtedu
##
from Products.CMFDefault.utils import decode
from Products.CMFDefault.utils import Message as _

form = context.REQUEST.form
if change and \
        context.topic_edit_control(**form) and \
        context.setRedirect(context, 'object/edit'):
    return
elif change_and_view and \
        context.topic_edit_control(**form) and \
        context.setRedirect(context, 'object/view'):
    return


options = {}

options['title'] = form.get('title', context.Title())
options['description'] = form.get('description', context.Description())
options['acquireCriteria'] = form.get('acquireCriteria',
                                      context.acquireCriteria)

buttons = []
target = context.getActionInfo('object/edit')['url']
buttons.append( {'name': 'change', 'value': _(u'Change')} )
buttons.append( {'name': 'change_and_view', 'value': _(u'Change and View')} )
options['form'] = { 'action': target,
                    'listButtonInfos': tuple(buttons) }

return context.topic_edit_template(**decode(options, script))
コード例 #51
0
ファイル: search_form.py プロジェクト: CGTIC/Plone_SP
portal_url = utool()


options = {}
options['title'] = context.Title()

is_review_allowed = mtool.checkPermission(ReviewPortalContent, context)
options['is_review_allowed'] = is_review_allowed
options['listAvailableSubjects'] = ctool.uniqueValuesFor('Subject')

created = []
today = context.ZopeTime().earliestTime()
created.append({'value': '1970/01/01 00:00:01 GMT', 'title': _(u'Ever')})
if not mtool.isAnonymousUser():
    created.append({'value': mtool.getAuthenticatedMember().last_login_time,
                    'title': _(u'Last login')})
created.append({'value': (today-1).Date(), 'title': _(u'Yesterday')})
created.append({'value': (today-7).Date(), 'title': _(u'Last week')})
created.append({'value': (today-31).Date(), 'title': _(u'Last month')})
options['listCreatedInfos'] = tuple(created)

options['listTypeInfos'] = ttool.listTypeInfo()

buttons = []
target = '%s/search' % portal_url
buttons.append( {'name': 'search', 'value': _(u'Search')} )
options['form'] = { 'action': target,
                    'listButtonInfos': tuple(buttons) }

return context.search_form_template(**decode(options, script))
コード例 #52
0
ファイル: aboveInThread.py プロジェクト: CGTIC/Plone_SP
##parameters=
##title=Discussion parent breadcrumbs
##
from Products.CMFDefault.utils import decode

breadcrumbs = ''
parents = context.parentsInThread()

if parents:
    breadcrumbs = 'Above in thread: '
    for parent in parents:
        p_str = '<a href="%s">%s</a>' % (parent.absolute_url(), parent.Title())
        breadcrumbs = breadcrumbs + p_str + ':'

    breadcrumbs = breadcrumbs[:-1] + '<p>'

return decode(breadcrumbs, script)