[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