from lxml.builder import ElementMaker
import sys
import re
+
+from address import Address
+from contact import Organization
from treecutter import constants as const
fev.append(ev)
self.events = fev
- def sort(self,order):
- sortedevents = sorted(events, key=lambda k: k['dtstart'], reverse=True)
+ def geocode(self):
+ for ev in self.events:
+ ev.geocode()
+
+ def sorted(self,order):
+ if order == 'start':
+ self.events.sort(key=lambda x: x.start, reverse=True)
+
def db_xml(self):
db = ElementMaker(namespace=const.DB_NS, nsmap=const.NSMAP)
self.end = ev['dtend']
self.summary = ev['summary']
self.location = ev['location']
+ self.org = None
self.description = ev['description']
+ def geocode(self):
+ addrlist = self.location.split(',')
+ addrfmt = "org,street,postcode,city"
+ adict = addrfmt.split(',')
+ argdict = dict(zip(adict,addrlist))
+ self.org = Organization(argdict['org'])
+ del argdict['org']
+ addr = Address(**argdict)
+ self.org.add_address(addr)
+ addr.geocode()
+
+
def db_xml(self):
db = ElementMaker(namespace=const.DB_NS, nsmap=const.NSMAP)
# Build paragraphs from the description
),
db.varlistentry(
db.term("Plats"),
- db.listitem(db.para(self.location))
+ db.listitem(db.para(self.org.db_xml()))
),
db.varlistentry(
db.term("Beskrivning"),
uri = urlparse(uristr)
events = Events(uri)
events.filter(query)
+ events.geocode()
+ events.sorted('start')
exml = events.db_xml()
#clean_db(exml)
#print(etree.tostring(cxml, pretty_print=True))
#sys.stdout.write(out.encode('utf-8'))
- sys.stdout.write(etree.tostring(exml,encoding='UTF-8',pretty_print=True))
+ sys.stdout.write(etree.tostring(exml,encoding='UTF-8',pretty_print=False))