Beispiel #1
0
    def _updateMenuEntries(self, form):
        context = self.context
        saved_customizations = []

        for x in range(0, len(form.get('index', []))):
            # check not-mandatory data
            if not form.get('element-name')[x] or\
                    not form.get('element-tales')[x]:
                return _(u'Please, provide all required data'), 'error'
            saved_customizations.append(
                self._generateNewMenuElement(x,
                                             form.get('element-id')[x],
                                             form.get('element-name')[x],
                                             form.get('element-descr')[x],
                                             form.get('icon-tales')[x],
                                             form.get('condition-tales')[x],
                                             form.get('element-tales')[x]))

        annotations = IAnnotations(context)
        annotations[ANN_CUSTOMMENU_KEY] = ({
            'inherit':
            form.get('inherit', False)
        }, saved_customizations)
        annotations._p_changed = 1
        return _(u'Customizations updated')
Beispiel #2
0
def handle_daviz_delete(context, event):
    """ Remove annotations from assessmentparts when a daviz has been deleted
    """
    context_uid = context.UID()
    refs = context.getBRefs()

    for o in refs:
        annot = IAnnotations(o).get(KEY, {})
        if context_uid in annot.keys():
            del annot[context_uid]
            annot._p_changed = True
            o._p_changed = True
Beispiel #3
0
def handle_daviz_delete(context, event):
    """ Remove annotations from assessmentparts when a daviz has been deleted
    """
    context_uid = context.UID()
    refs = context.getBRefs('relatesTo')

    for o in refs:
        annot = IAnnotations(o).get(KEY, {})
        if context_uid in annot.keys():
            del annot[context_uid]
            annot._p_changed = True
            o._p_changed = True
def handle_gismap_delete(context, event):
    """ Remove annotations from assessmentparts when an interactive map
        has been deleted
    """
    context_uid = context.UID()
    refs = context.getBRefs()

    for o in refs:
        annot = IAnnotations(o).get(KEY, {})
        if context_uid in annot.keys():
            del annot[context_uid]
            annot._p_changed = True
            o._p_changed = True
    def notify_outdated(self):
        """ Notify providers by email about outdated implementations """

        # f*ck plone.protect
        alsoProvides(self.request, IDisableCSRFProtection)

        # remember when we send notifications for which component
        annotations = IAnnotations(self.context)
        notifications = annotations.get(NOTIFICATION_KEY)
        if not notifications:
            annotations[NOTIFICATION_KEY] = OOBTree()

        result = self.items()
        for item in self.items():

            version_info = item['version_info']

            # filter out irrelevant components
            if not version_info or version_info['is_current']:
                continue

            # preserve notification dates
            notification_key = (item['component'].getId(), version_info[
                                'current_version'], version_info['latest_version'])
            dt = annotations[NOTIFICATION_KEY].get(notification_key)
            if dt and (datetime.utcnow() - dt).days < RESEND_AFTER_DAYS:
                continue

            annotations[NOTIFICATION_KEY][notification_key] = datetime.utcnow()
            annotations._p_changed = True

            # build and send notification email
            dest_email = item['provider'].getAlarm_email(
            ) or item['provider'].getHelpdesk_email()
            subject = '[DPMT] New version for "{}" available'.format(
                item['component'].Title())

            params = dict(
                component_name=item['component'].Title(),
                component_url=item['component'].absolute_url(),
                current_version=version_info['current_version'],
                latest_version=version_info['latest_version'],
            )
            send_mail(
                sender=None,
                recipients=[dest_email],
                subject=subject,
                template='implementation-outdated.txt',
                params=params,
                context=item['provider'])
        return 'DONE'
    def _deleteMenuEntries(self, form):
        context = self.context
        extras, saved_customizations = self.getSavedCustomizations()

        to_delete = form.get('delete',[])
        if not to_delete:
            return _(u'Please, select at least one entry to be deleted'), 'error'
        saved_customizations = [x for x in saved_customizations if x['index'] not in to_delete]
        self._reindex(saved_customizations)
        
        annotations = IAnnotations(context)
        annotations[ANN_CUSTOMMENU_KEY] = (extras, saved_customizations)
        annotations._p_changed=1
        return _(u'Customizations removed')
    def _updateMenuEntries(self, form):
        context = self.context
        saved_customizations = []

        for x in range(0, len(form.get('index',[]))):
            # check not-mandatory data
            if not form.get('element-name')[x] or not form.get('element-tales')[x]:
                return _(u'Please, provide all required data'), 'error'
            saved_customizations.append(
                self._generateNewMenuElement(x, form.get('element-id')[x], form.get('element-name')[x],
                                             form.get('element-descr')[x], form.get('icon-tales')[x],
                                             form.get('condition-tales')[x], form.get('element-tales')[x]))
        
        annotations = IAnnotations(context)
        annotations[ANN_CUSTOMMENU_KEY] = ({'inherit': form.get('inherit',False)}, saved_customizations)
        annotations._p_changed=1
        return _(u'Customizations updated')
Beispiel #8
0
def main():
    site = get_plone_site()
    data = get_source_data()
    base_folder = site["knowledge"]["european-climate-data-explorer"]
    annot = IAnnotations(base_folder)
    annot._p_changed = True
    annot["c3s_json_data"] = {"data": data, "fetched": datetime.datetime.now()}

    for indicator_identifier in data["indicators"]:
        save_indicator(data["indicators"][indicator_identifier], site, data)

    #for theme_id in data["themes"]:
    #    theme_folder = base_folder[theme_id]
    #    theme_folder.text = RichTextValue(
    #        data["themes"][theme_id]["description"]
    #    )
    #    print("Updated description for", theme_folder)

    transaction.commit()
    print("Total items:" + str(len(data["indicators"])))
Beispiel #9
0
    def _addMenuEntry(self, form):
        context = self.context

        # check not-mandatory data
        if not form.get('element-name') or not form.get('element-tales'):
            return _(u'Please, provide all required data'), 'error'

        extras, saved_customizations = self.getSavedCustomizations()
        saved_customizations.append(
            self._generateNewMenuElement(len(saved_customizations),
                                         form.get('element-id'),
                                         form.get('element-name'),
                                         form.get('element-descr'),
                                         form.get('icon-tales'),
                                         form.get('condition-tales'),
                                         form.get('element-tales')))

        annotations = IAnnotations(context)
        annotations[ANN_CUSTOMMENU_KEY] = (extras, saved_customizations)
        annotations._p_changed = 1
        return _(u'New entry added')
Beispiel #10
0
    def _deleteMenuEntries(self, form):
        context = self.context
        extras, saved_customizations = self.getSavedCustomizations()

        to_delete = form.get('delete', [])
        if not to_delete:
            return (_(u'Please, select at least one entry to be deleted'),
                    'error')
        # By index
        saved_customizations = [
            x for x in saved_customizations if x['index'] not in to_delete
        ]
        # By element-id (not exposed by UI)
        saved_customizations = [
            x for x in saved_customizations if x['element-id'] not in to_delete
        ]
        self._reindex(saved_customizations)

        annotations = IAnnotations(context)
        annotations[ANN_CUSTOMMENU_KEY] = (extras, saved_customizations)
        annotations._p_changed = 1
        return _(u'Customizations removed')
 def _addMenuEntry(self, form):
     context = self.context
     
     # check not-mandatory data
     if not form.get('element-name') or not form.get('element-tales'):
         return _(u'Please, provide all required data'), 'error'
     
     extras, saved_customizations = self.getSavedCustomizations()
     saved_customizations.append(self._generateNewMenuElement(
                                     len(saved_customizations),
                                     form.get('element-id'),
                                     form.get('element-name'),
                                     form.get('element-descr'),
                                     form.get('icon-tales'),
                                     form.get('condition-tales'),
                                     form.get('element-tales'))
                                 )
     
     annotations = IAnnotations(context)
     annotations[ANN_CUSTOMMENU_KEY] = (extras, saved_customizations)
     annotations._p_changed=1
     return _(u'New entry added')