Example #1
0
    def setMetadata(self, headers):
        """ Set an Event's metadata

        o headers is a mapping containing keys corresponding to
        Dublin Core metadata fields
        o Only those attributes that are passed in with the mapping are
        manipulated
        """
        headers['Format'] = self.Format()
        new_subject = keywordsplitter(headers)
        headers['Subject'] = new_subject or self.Subject()
        new_contrib = contributorsplitter(headers)
        headers['Contributors'] = new_contrib or self.Contributors()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if not haveheader(key):
                headers[key] = value
        self._editMetadata(
            title=headers['Title'],
            subject=headers['Subject'],
            description=headers['Description'],
            contributors=headers['Contributors'],
            effective_date=headers['Effective_date'],
            expiration_date=headers['Expiration_date'],
            format=headers['Format'],
            language=headers['Language'],
            rights=headers['Rights'],
        )
Example #2
0
    def setMetadata(self, headers):
        """ Set an Event's metadata

        o headers is a mapping containing keys corresponding to
        Dublin Core metadata fields
        o Only those attributes that are passed in with the mapping are
        manipulated
        """
        headers['Format'] = self.Format()
        new_subject = keywordsplitter(headers)
        headers['Subject'] = new_subject or self.Subject()
        new_contrib = contributorsplitter(headers)
        headers['Contributors'] = new_contrib or self.Contributors()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if not haveheader(key):
                headers[key] = value
        self._editMetadata(title=headers['Title'],
                          subject=headers['Subject'],
                          contributors=headers['Contributors'],
                          effective_date=headers['Effective_date'],
                          expiration_date=headers['Expiration_date'],
                          format=headers['Format'],
                          language=headers['Language'],
                          rights=headers['Rights'],
                          )
Example #3
0
    def _writeFromPUT(self, body):
        headers = {}
        headers, body = parseHeadersBody(body, headers)
        lines = body.split("\n")
        self.edit(lines[0])
        headers["Format"] = self.URL_FORMAT
        new_subject = keywordsplitter(headers)
        headers["Subject"] = new_subject or self.Subject()
        new_contrib = contributorsplitter(headers)
        headers["Contributors"] = new_contrib or self.Contributors()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if not haveheader(key):
                headers[key] = value

        self._editMetadata(
            title=headers["Title"],
            subject=headers["Subject"],
            description=headers["Description"],
            contributors=headers["Contributors"],
            effective_date=headers["Effective_date"],
            expiration_date=headers["Expiration_date"],
            format=headers["Format"],
            language=headers["Language"],
            rights=headers["Rights"],
        )
    def test_keywordsplitter_multi(self):
        from Products.CMFCore.utils import keywordsplitter

        for x in ['foo, bar, baz', 'foo, bar , baz', 'foo, bar,, baz',
                  'foo; bar; baz']:
            self.assertEqual(keywordsplitter({'Keywords': x}),
                             ['foo', 'bar', 'baz'])
Example #5
0
    def _writeFromPUT( self, body ):

        headers = {}
        headers, body = parseHeadersBody(body, headers)
        lines = string.split( body, '\n' )
        self.edit( lines[0] )

        headers['Format'] = 'text/url'
        new_subject = keywordsplitter(headers)
        headers['Subject'] = new_subject or self.Subject()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if key != 'Format' and not haveheader(key):
                headers[key] = value
        
        self.editMetadata(title=headers['Title'],
                          subject=headers['Subject'],
                          description=headers['Description'],
                          contributors=headers['Contributors'],
                          effective_date=headers['Effective_date'],
                          expiration_date=headers['Expiration_date'],
                          format=headers['Format'],
                          language=headers['Language'],
                          rights=headers['Rights'],
                          )
Example #6
0
 def test_keywordsplitter_multi(self):
     for x in [
             'foo, bar, baz', 'foo, bar , baz', 'foo, bar,, baz',
             'foo; bar; baz'
     ]:
         self.assertEqual(keywordsplitter({'Keywords': x}),
                          ['foo', 'bar', 'baz'])
Example #7
0
 def test_keywordsplitter_multi(self):
     for x in [ 'foo, bar, baz'
              , 'foo, bar , baz'
              , 'foo, bar,, baz'
              , 'foo; bar; baz'
              ]:
         self.assertEqual( keywordsplitter({'Keywords': x}), 
                           ['foo', 'bar', 'baz'] )
Example #8
0
    def test_keywordsplitter_multi(self):
        from Products.CMFCore.utils import keywordsplitter

        for x in [ 'foo, bar, baz'
                 , 'foo, bar , baz'
                 , 'foo, bar,, baz'
                 , 'foo; bar; baz'
                 ]:
            self.assertEqual( keywordsplitter({'Keywords': x}), 
                              ['foo', 'bar', 'baz'] )
Example #9
0
 def _writeFromPUT(self, body):
     headers, body = parseHeadersBody(body)
     lines = body.split('\n')
     self.edit(lines[0])
     headers['Format'] = self.URL_FORMAT
     new_subject = keywordsplitter(headers)
     headers['Subject'] = new_subject or self.Subject()
     new_contrib = contributorsplitter(headers)
     headers['Contributors'] = new_contrib or self.Contributors()
     headers = dict((k.lower(), v) for k, v in headers.iteritems())
     self._editMetadata(**headers)
Example #10
0
 def setMetadata(self, headers):
     headers['Format'] = self.Format()
     new_subject = keywordsplitter(headers)
     headers['Subject'] = new_subject or self.Subject()
     haveheader = headers.has_key
     for key, value in self.getMetadataHeaders():
         if key != 'Format' and not haveheader(key):
             headers[key] = value
     self._editMetadata(title=headers['Title'],
                       subject=headers['Subject'],
                       description=headers['Description'],
                       contributors=headers['Contributors'],
                       effective_date=headers['Effective_date'],
                       expiration_date=headers['Expiration_date'],
                       format=headers['Format'],
                       language=headers['Language'],
                       rights=headers['Rights'],
                       )
Example #11
0
 def setMetadata(self, headers):
     headers['Format'] = self.Format()
     new_subject = keywordsplitter(headers)
     headers['Subject'] = new_subject or self.Subject()
     haveheader = headers.has_key
     for key, value in self.getMetadataHeaders():
         if key != 'Format' and not haveheader(key):
             headers[key] = value
     self._editMetadata(title=headers['Title'],
                       subject=headers['Subject'],
                       description=headers['Description'],
                       contributors=headers['Contributors'],
                       effective_date=headers['Effective_date'],
                       expiration_date=headers['Expiration_date'],
                       format=headers['Format'],
                       language=headers['Language'],
                       rights=headers['Rights'],
                       )
Example #12
0
    def _edit(self, text_format, text, file='', safety_belt=''):
        """ Edit the Document - Parses headers and cooks the body"""
        self.text = text
        headers = {}
        if file and (type(file) is not type('')):
            contents = file.read()
            if contents:
                text = self.text = contents

        headers, body, cooked, format = self.handleText(text, text_format)

        if not safety_belt:
            safety_belt = headers.get('SafetyBelt', '')
        if not self._safety_belt_update(safety_belt=safety_belt):
            msg = ("Intervening changes from elsewhere detected."
                   " Please refetch the document and reapply your changes."
                   " (You may be able to recover your version using the"
                   " browser 'back' button, but will have to apply them"
                   " to a freshly fetched copy.)")
            raise 'EditingConflict', msg

        self.text_format = format
        self.cooked_text = cooked
        self.text = body

        headers['Format'] = self.Format()
        new_subject = keywordsplitter(headers)
        headers['Subject'] = new_subject or self.Subject()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if key != 'Format' and not haveheader(key):
                headers[key] = value

        self.editMetadata(
            title=headers['Title'],
            subject=headers['Subject'],
            description=headers['Description'],
            contributors=headers['Contributors'],
            effective_date=headers['Effective_date'],
            expiration_date=headers['Expiration_date'],
            format=headers['Format'],
            language=headers['Language'],
            rights=headers['Rights'],
        )
Example #13
0
    def _edit(self, text_format, text, file='', safety_belt=''):
        """ Edit the Document - Parses headers and cooks the body"""
        self.text = text
        headers = {}
        if file and (type(file) is not type('')):
            contents=file.read()
            if contents:
                text = self.text = contents

        headers, body, cooked, format = self.handleText(text, text_format)

        if not safety_belt:
            safety_belt = headers.get('SafetyBelt', '')
        if not self._safety_belt_update(safety_belt=safety_belt):
            msg = ("Intervening changes from elsewhere detected."
                   " Please refetch the document and reapply your changes."
                   " (You may be able to recover your version using the"
                   " browser 'back' button, but will have to apply them"
                   " to a freshly fetched copy.)")
            raise 'EditingConflict', msg

        self.text_format = format
        self.cooked_text = cooked
        self.text = body

        headers['Format'] = self.Format()
        new_subject = keywordsplitter(headers)
        headers['Subject'] = new_subject or self.Subject()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if key != 'Format' and not haveheader(key):
                headers[key] = value
        
        self.editMetadata(title=headers['Title'],
                          subject=headers['Subject'],
                          description=headers['Description'],
                          contributors=headers['Contributors'],
                          effective_date=headers['Effective_date'],
                          expiration_date=headers['Expiration_date'],
                          format=headers['Format'],
                          language=headers['Language'],
                          rights=headers['Rights'],
                          )
Example #14
0
 def test_keywordsplitter_empty(self):
     for x in [ '', ' ', ',', ',,', ';', ';;' ]:
         self.assertEqual( keywordsplitter({'Keywords': x}), 
                           [] )
    def test_keywordsplitter_single(self):
        from Products.CMFCore.utils import keywordsplitter

        for x in ['foo', ' foo ', 'foo,', 'foo ,,', 'foo;', 'foo ;;']:
            self.assertEqual(keywordsplitter({'Keywords': x}), ['foo'])
    def test_keywordsplitter_empty(self):
        from Products.CMFCore.utils import keywordsplitter

        for x in ['', ' ', ',', ',,', ';', ';;']:
            self.assertEqual(keywordsplitter({'Keywords': x}), [])
Example #17
0
 def test_keywordsplitter_single(self):
     for x in [ 'foo', ' foo ', 'foo,', 'foo ,,', 'foo;', 'foo ;;' ]:
         self.assertEqual( keywordsplitter({'Keywords': x}), 
                           ['foo'] )
Example #18
0
    def test_keywordsplitter_single(self):
        from Products.CMFCore.utils import keywordsplitter

        for x in [ 'foo', ' foo ', 'foo,', 'foo ,,', 'foo;', 'foo ;;' ]:
            self.assertEqual( keywordsplitter({'Keywords': x}), 
                              ['foo'] )
Example #19
0
    def test_keywordsplitter_empty(self):
        from Products.CMFCore.utils import keywordsplitter

        for x in [ '', ' ', ',', ',,', ';', ';;' ]:
            self.assertEqual( keywordsplitter({'Keywords': x}), 
                              [] )
Example #20
0
 def test_keywordsplitter_empty(self):
     for x in [ '', ' ', ',', ',,', ';', ';;' ]:
         self.assertEqual( keywordsplitter({'Keywords': x}), 
                           [] )
Example #21
0
 def test_keywordsplitter_single(self):
     for x in [ 'foo', ' foo ', 'foo,', 'foo ,,', 'foo;', 'foo ;;' ]:
         self.assertEqual( keywordsplitter({'Keywords': x}), 
                           ['foo'] )