Example #1
0
def addDiscussion(portal,discussion,tags,context,discussionTitle=''):
    from ubify.coretypes import generateDiscussionTitle
    if discussion == '':
        return None
    objDiscussion = None
    new_id = context.generateUniqueId('Discussion')
    try:
        objDiscussion = getOrCreateType(portal,context,new_id,'Discussion')
    except:
        objDiscussion = None

    if objDiscussion <> None:
        if objDiscussion.title == '':
            if discussionTitle == '':
                objDiscussion.title = generateDiscussionTitle(convertHtmlToWebIntelligentPlainText(discussion))
            else:
                objDiscussion.title = discussionTitle
            objDiscussion.setDescription(discussion)
            objDiscussion._renameAfterCreation()

        if tags != '':
            try:
                values = tags.split(",")
                values = [val.strip().lower() for val in values]
                values = [k.lower() for k in list(unique(values)) if k]
            except AttributeError:
                values = []
            objDiscussion.setSubject(values)

        objDiscussion.reindexObject()
        notify(ObjectInitializedEvent(objDiscussion))

    return objDiscussion
Example #2
0
    def process_form(self, instance, field, form, empty_marker=None,
                     emptyReturnsMarker=False, validating=True):
        """process keywords from form where this widget has a list of
        available keywords and any new ones"""
        # process_form should return :
        # - a tuple value, kwargs when it did find some value
        # - None or empty_marker when it found nothing
        name = field.getName()
        existing_keywords = form.get('%s_existing_keywords' % name,
            empty_marker)
        new_keywords = form.get('%s_keywords' % name, empty_marker)
        if (new_keywords is empty_marker) and (
            existing_keywords is empty_marker):
            return empty_marker
        if new_keywords is empty_marker:
            new_keywords = []
        if existing_keywords is empty_marker:
            existing_keywords = []

        value = existing_keywords + new_keywords
        value = [k for k in list(unique(value)) if k]

        if not value and emptyReturnsMarker:
            return empty_marker

        return value, {}
Example #3
0
    def process_form(self,
                     instance,
                     field,
                     form,
                     empty_marker=None,
                     emptyReturnsMarker=False,
                     validating=True):
        """process keywords from form where this widget has a list of
        available keywords and any new ones"""
        # process_form should return :
        # - a tuple value, kwargs when it did find some value
        # - None or empty_marker when it found nothing
        name = field.getName()
        existing_keywords = form.get('%s_existing_keywords' % name,
                                     empty_marker)
        new_keywords = form.get('%s_keywords' % name, empty_marker)
        if (new_keywords is empty_marker) and (existing_keywords is
                                               empty_marker):
            return empty_marker
        if new_keywords is empty_marker:
            new_keywords = []
        if existing_keywords is empty_marker:
            existing_keywords = []

        value = existing_keywords + new_keywords
        value = [k for k in list(unique(value)) if k]

        if not value and emptyReturnsMarker:
            return empty_marker

        return value, {}
Example #4
0
def initialize(context):
    """Initializer called when used as a Zope 2 product."""
    try:
        from atreal.richfile.qualifier.registry import registerRFPlugin
    except:
        return
    
    supported_mimetypes = unique(HACHOIR_MT + EXIF_MT)
    
    registerRFPlugin(IMetadata, supported_mimetypes)
Example #5
0
    def process_form(self, instance, field, form, empty_marker=None,
                     emptyReturnsMarker=False, validating=True):
        """process keywords from form where this widget has a list of
        available keywords and any new ones"""
        name = field.getName()
        existing_keywords = form.get('%s_existing_keywords' % name, empty_marker)
        if existing_keywords is empty_marker:
            existing_keywords = []
        new_keywords = form.get('%s_keywords' % name, empty_marker)
        if new_keywords is empty_marker:
            new_keywords = []

        value = existing_keywords + new_keywords
        value = [k for k in list(unique(value)) if k]

        if not value and emptyReturnsMarker: return empty_marker

        return value, {}
Example #6
0
    def process_form(self, instance, field, form, empty_marker=None,
                     emptyReturnsMarker=False):
        """If a value was typed in the box, use this, else use the selected
        value.
        """
        name = field.getName()
        value = form.get(name, empty_marker)
        if value == '' or value == [''] and emptyReturnsMarker:
            return ([], {})

        try:
            values = value.split(",")
            values = [val.strip().lower() for val in values]
            values = [k.lower() for k in list(unique(values)) if k]
        except AttributeError:
            return empty_marker
        else:
            return (values, {})
Example #7
0
 def process_form(self, instance, field, form, empty_marker=None,
                  emptyReturnsMarker=False):
     """If a value was typed in the box, use this, else use the selected
     value.
     """        
     name = field.getName()
     value = form.get(name, empty_marker)
     if value == '' or value == [''] and emptyReturnsMarker:
         return empty_marker
     
     try:            
         values = value.split(",")
         values = [val.strip().lower() for val in values]
         values = [k.lower() for k in list(unique(values)) if k]            
     except AttributeError:
         return empty_marker
     else:
         return values, {}
Example #8
0
 def setTags(self, value, **kwargs):
     """ Save tags in lower case """
     value = unique(value)
     value.sort(lambda x, y: cmp(x,y))
     self.getField('tags').set(self, value, **kwargs)