[Erp5-report] r15422 - in /erp5/trunk/bt5/erp5_mobile: ExtensionTemplateItem/ bt/
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Aug 2 17:31:29 CEST 2007
Author: jerome
Date: Thu Aug 2 17:31:28 2007
New Revision: 15422
URL: http://svn.erp5.org?rev=15422&view=rev
Log:
The vobject extension was missing
Added:
erp5/trunk/bt5/erp5_mobile/ExtensionTemplateItem/
erp5/trunk/bt5/erp5_mobile/ExtensionTemplateItem/VObject_export.py
erp5/trunk/bt5/erp5_mobile/bt/comment
Modified:
erp5/trunk/bt5/erp5_mobile/bt/revision
erp5/trunk/bt5/erp5_mobile/bt/template_extension_id_list
Added: erp5/trunk/bt5/erp5_mobile/ExtensionTemplateItem/VObject_export.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_mobile/ExtensionTemplateItem/VObject_export.py?rev=15422&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_mobile/ExtensionTemplateItem/VObject_export.py (added)
+++ erp5/trunk/bt5/erp5_mobile/ExtensionTemplateItem/VObject_export.py Thu Aug 2 17:31:28 2007
@@ -1,0 +1,107 @@
+# vobject integration for ERP5
+
+try:
+ import vobject
+except ImportError:
+ raise ImportError('vobject is not properly installed, get it from '\
+ ' http://vobject.skyhouseconsulting.com')
+
+def decode(string):
+ if not string:
+ return ''
+ return unicode(string, 'utf8', 'repr')
+
+def Person_viewPersonAsvCard(self, REQUEST=None):
+ """Returns a vCard representation of a Person object.
+ """
+ vcard = vobject.vCard()
+ # name
+ vcard.add('n')
+ vcard.n.value = vobject.vcard.Name( family=decode(self.getFirstName()),
+ given=decode(self.getLastName()),
+ additional=decode(self.getMiddleName()),
+ prefix=decode(self.getPrefix()),
+ suffix=decode(self.getSuffix()) )
+ # formatted name
+ vcard.add('fn')
+ vcard.fn.value = decode(self.getTitle())
+
+ # organisation
+ if self.getSubordination():
+ vcard.add('org')
+ vcard.org.value = decode(self.getSubordinationTitle())
+
+ # default email
+ email = self.getDefaultEmailValue()
+ if email is not None:
+ vcard.add('email')
+ vcard.email.value = email.getUrlString()
+ vcard.email.type_param = 'PREF'
+
+ # alt. emails
+ for addr in self.contentValues(filter=dict(portal_type=['Email'])):
+ if addr.getId() not in ('default_email', ):
+ c = vcard.add('email')
+ c.value = decode(addr.asText())
+ c.type_param = 'INTERNET'
+
+ # default address
+ address = self.getDefaultAddressValue()
+ if address is not None:
+ addr = vcard.add('adr')
+ addr.value = vobject.vcard.Address(
+ street=decode(address.getStreetAddress()),
+ city=decode(address.getCity()),
+ region=decode(address.getRegionTitle()),
+ code=decode(address.getZipCode()))
+ addr.type_param = 'PREF'
+
+ # alt. addresses
+ for addr in self.contentValues(filter=dict(portal_type=['Address'])):
+ if addr.getId() not in ('default_address', ):
+ c = vcard.add('adr')
+ c.value = vobject.vcard.Address(
+ street=decode(addr.getStreetAddress()),
+ city=decode(addr.getCity()),
+ region=decode(addr.getRegionTitle()),
+ code=decode(addr.getZipCode()))
+ c.type_param = decode(addr.getTitle())
+
+ # default telephone
+ tel = self.getDefaultTelephoneValue()
+ if tel is not None:
+ vcard.add('tel')
+ vcard.tel.value = decode(tel.asText())
+ vcard.tel.type_param = 'PREF'
+
+ # default fax
+ default_fax = self.getDefaultFaxValue()
+ if default_fax is not None:
+ fax = vcard.add('tel')
+ fax.value = decode(default_fax.asText())
+ fax.type_param = 'FAX'
+
+ # alt. telephones
+ for tel in self.contentValues(filter=dict(
+ portal_type=['Telephone', 'Fax'])):
+ if tel.getId() not in ('default_telephone', 'default_fax'):
+ c = vcard.add('tel')
+ c.value = decode(tel.asText())
+
+ # default image
+ if getattr(self, 'getDefaultImage', None) is not None:
+ image = self.getDefaultImage()
+ if image is not None:
+ photo = vcard.add('photo')
+ photo.value = image.manage_FTPget()
+ photo.encoding_param = 'b'
+
+ if REQUEST:
+ REQUEST.RESPONSE.setHeader('Content-type', 'text/x-vcard')
+ return vcard.serialize().encode('utf8')
+
+def PersonModule_importvCard(self):
+ """Import persons from a vCard file.
+ """
+ return NotImplemented
+
Added: erp5/trunk/bt5/erp5_mobile/bt/comment
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_mobile/bt/comment?rev=15422&view=auto
==============================================================================
(empty)
Modified: erp5/trunk/bt5/erp5_mobile/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_mobile/bt/revision?rev=15422&r1=15421&r2=15422&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_mobile/bt/revision (original)
+++ erp5/trunk/bt5/erp5_mobile/bt/revision Thu Aug 2 17:31:28 2007
@@ -1,1 +1,1 @@
-15
+16
Modified: erp5/trunk/bt5/erp5_mobile/bt/template_extension_id_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_mobile/bt/template_extension_id_list?rev=15422&r1=15421&r2=15422&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_mobile/bt/template_extension_id_list (original)
+++ erp5/trunk/bt5/erp5_mobile/bt/template_extension_id_list Thu Aug 2 17:31:28 2007
@@ -1,0 +1,1 @@
+VObject_export
More information about the Erp5-report
mailing list