def __call__(self, id):
     manager = IImageTagsManager(self.context)
     tag = manager.get_tag(id)
     image = getMultiAdapter((self.context, self.request), name="imagetags-img")
     self.tag_id = id
     self.tag_box = "<![CDATA[%s]]>" % (image.tag_box(id=id, data=tag))
     self.tag_title = "<![CDATA[%s]]>" % (image.tag_title(id=id, data=tag))
     return self.index()
 def __call__(self, id):
     manager = IImageTagsManager(self.context)
     tag = manager.get_tag(id)
     image = getMultiAdapter((self.context, self.request),
                             name="imagetags-img")
     self.tag_id = id
     self.tag_box = '<![CDATA[%s]]>' % (image.tag_box(id=id, data=tag))
     self.tag_title = '<![CDATA[%s]]>' % (image.tag_title(id=id, data=tag))
     return self.index()
Exemplo n.º 3
0
 def updateWidgets(self):
     """ If 'id' parameter is in the request set values for widgets based
         on the chosen tag. 
     """
     super(form.EditForm, self).updateWidgets()
     self._updateWidgets()
     request = self.request
     id_field = 'id'
     if id_field in request.form:
         id = request.form[id_field]
         manager = IImageTagsManager(self.context)
         tag = manager.get_tag(id)
         if not tag is None:
             for x in tag:
                 self.widgets[x].value = tag[x]
             self.widgets['id'].value = id
Exemplo n.º 4
0
 def updateWidgets(self):
     """ If 'id' parameter is in the request set values for widgets based
         on the chosen tag. 
     """
     super(form.EditForm, self).updateWidgets()
     self._updateWidgets()
     request = self.request
     id_field = 'id'
     if id_field in request.form:
         id = request.form[id_field]
         manager = IImageTagsManager(self.context)
         tag = manager.get_tag(id)
         if not tag is None:
             for x in tag:
                 self.widgets[x].value = tag[x]
             self.widgets['id'].value = id
Exemplo n.º 5
0
class ManageTags(BrowserView):
    """ Tag management browser view
    """
    
    implements(IManageTags)

    def __init__(self, context, request):
        self.context = aq_inner(context)
        self.request = request
        self.helper = getMultiAdapter((self.context, self.request), name="imagetags-helper")
        self.default_image = self.helper.image()
        self.manager = IImageTagsManager(self.context)
        
    def __call__(self):
        """ This browser view can be called in a get/post request to remove 
            existing tags.
        """
        request = self.request
        if 'form.widgets.remove' in request.form:
            ids = request.form['form.widgets.remove']
            removed = self.manager.remove_tags(ids=ids)
            
            if 'ajax' in request.form:
                request.response.setHeader('content-type', 'application/json; charset=utf-8')
                response_body = {'removed': [id.encode('utf-8') for id in ids]}
                response_http = json.dumps(response_body)
                request.response.setHeader('content-length', len(response_http))
                return response_http
            else:
                count_removed = len(removed)
                if count_removed==1:
                    message = _(u'${count} tag removed.', mapping={u'count': count_removed})
                elif count_removed>1:
                    message = _(u'${count} tags removed.', mapping={u'count': count_removed})
                if count_removed>0:
                    IStatusMessage(self.request).addStatusMessage(message, type='info')
   
                return self.index()
                
        else:
            return self.index()

    def url(self):
        """ This browser view url
        """
        return '%s/@@%s' % (self.context.absolute_url(), self.__name__)
         
            
    # The following methods are now provided by IImageTagsManager adapter
    def get_tag(self, id, create_on_fail=False):
        """ Get a given tag based on id.
            If create_on_fail = True, it will create a new placeholder (dictionary) if the tag is not found.
        """
        return self.manager.get_tag(id, create_on_fail)

    def get_tags(self):
        """ Get all tags
        """
        return self.manager.get_tags()
        
    def get_sorted_tags(self):
        """ Sorted list of tags
        """
        return self.manager.get_sorted_tags()
               
    def save_tag(self, data):
        """ Save a tag and create it (assigning an automatic id) if it's a new one
        """
        return self.manager.save_tag(data)
Exemplo n.º 6
0
class ManageTags(BrowserView):
    """ Tag management browser view
    """

    implements(IManageTags)

    def __init__(self, context, request):
        self.context = aq_inner(context)
        self.request = request
        self.helper = getMultiAdapter((self.context, self.request),
                                      name="imagetags-helper")
        self.default_image = self.helper.image()
        self.manager = IImageTagsManager(self.context)

    def __call__(self):
        """ This browser view can be called in a get/post request to remove 
            existing tags.
        """
        request = self.request
        if 'form.widgets.remove' in request.form:
            ids = request.form['form.widgets.remove']
            removed = self.manager.remove_tags(ids=ids)

            if 'ajax' in request.form:
                request.response.setHeader('content-type',
                                           'application/json; charset=utf-8')
                response_body = {'removed': [id.encode('utf-8') for id in ids]}
                response_http = json.dumps(response_body)
                request.response.setHeader('content-length',
                                           len(response_http))
                return response_http
            else:
                count_removed = len(removed)
                if count_removed == 1:
                    message = _(u'${count} tag removed.',
                                mapping={u'count': count_removed})
                elif count_removed > 1:
                    message = _(u'${count} tags removed.',
                                mapping={u'count': count_removed})
                if count_removed > 0:
                    IStatusMessage(self.request).addStatusMessage(message,
                                                                  type='info')

                return self.index()

        else:
            return self.index()

    def url(self):
        """ This browser view url
        """
        return '%s/@@%s' % (self.context.absolute_url(), self.__name__)

    # The following methods are now provided by IImageTagsManager adapter
    def get_tag(self, id, create_on_fail=False):
        """ Get a given tag based on id.
            If create_on_fail = True, it will create a new placeholder (dictionary) if the tag is not found.
        """
        return self.manager.get_tag(id, create_on_fail)

    def get_tags(self):
        """ Get all tags
        """
        return self.manager.get_tags()

    def get_sorted_tags(self):
        """ Sorted list of tags
        """
        return self.manager.get_sorted_tags()

    def save_tag(self, data):
        """ Save a tag and create it (assigning an automatic id) if it's a new one
        """
        return self.manager.save_tag(data)