def persist(self,reportd,mail_message): boats = Boat.all() boats.filter("passcode = ", reportd['passcode']) boats.filter("active =", True) emaillog=EmailLog() emaillog.rawemail=db.Text(mail_message.original.as_string()) #TODO: I don't like this way of figuring out if we got any rows count=0 for boat in boats: if (boat.key().name()==string.upper(reportd['boat'])): count=count+1 break # Return the first one else: boat=None if (count <1 or boats == None or boat == None): logging.error("Unable to persist report could not find boat "+string.upper(reportd['boat'])+":"+reportd['passcode']) else: report=Report(parent=boat) report.lat=reportd['lat'] report.lon=reportd['lon'] payload={ 'comment' : reportd['comment'] } report.setPayload(payload) report.put() emaillog.report_ref=report reportd['time']=strftime("%Y/%m/%d %H:%M", gmtime()) self.outbound(boat,reportd) emaillog.put()
def importc(self): datere = re.compile(r"([0-9\-]+) ([0-9:]+)") reports = Report.all() for report in reports: report.delete() imp = csv.reader(open("doc/import.csv", "rb")) boat = None for row in imp: boatid = string.upper(row[1]) if boat == None: boat = Boat.get_by_key_name(boatid, parent=self.dbuser) # logging.error(row[0]) report = Report(parent=boat) parsedate = datere.match(row[0]) date = parsedate.group(1) + " " + parsedate.group(2) tm = time.strptime(date, "%Y-%m-%d %H:%M:%S") report.created = datetime.datetime.utcfromtimestamp(time.mktime(tm)) report.lat = float(row[2]) report.lon = float(row[3]) payload = {"comment": row[4].replace("</b>", "")} # logging.error(payload) report.setPayload(payload) report.put()