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'], )
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'], )
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'])
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'], )
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'])
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'] )
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'] )
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)
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'], )
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'], )
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'], )
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}), [])
def test_keywordsplitter_single(self): for x in [ 'foo', ' foo ', 'foo,', 'foo ,,', 'foo;', 'foo ;;' ]: self.assertEqual( keywordsplitter({'Keywords': x}), ['foo'] )
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}), [] )