def post(self): user = self.must_get_user() event_id = self.get_argument('id') _search = {'user.$id':user._id, '_id': ObjectId(event_id)} event = self.db.Event.one(_search) if not event: self.write_json(dict(error="ERROR: Invalid Event")) return if event.user != user: self.write_json(dict(error="ERROR: Not your event")) return title = self.get_argument('title').strip() duration = float(self.get_argument('duration')) external_url = self.get_argument('external_url', u'').strip() description = self.get_argument('description', u'').strip() if event.all_day: _before = 1 + (event.end - event.start).days if _before != duration: event.end += datetime.timedelta(days=duration - _before) diff = 1 + (event.end - event.start).days if diff < 1: self.write_json(dict(error=\ "ERROR. Duration can't be less than 1 day")) return else: _before = (event['end'] - event['start']).seconds / 60.0 / 60 if _before != duration: event.end += datetime.timedelta(hours=duration - _before) if event.start >= event.end: self.write_json(dict(error="ERROR. Duration too short")) return # all possible validation and checking done, do the save event.title = title event.external_url = external_url event.description = description event.tags = title_to_tags(title) event.save() log_event(self.db, user, event, actions.ACTION_EDIT, contexts.CONTEXT_SMARTPHONE) data = dict(timestamp=mktime(event.modify_date.timetuple())) event_data = dict(title=title, external_url=external_url, description=description, id=str(event._id), all_day=event.all_day, ) if event.all_day: event_data['days'] = 1 + (event.end - event.start).days else: event_data['hours'] = (event.end - event.start).seconds / 60.0 / 60 event_data['length'] = self.describe_length(event) data['event'] = self.serialize_dict(event_data) self.write_json(data)
def post(self): user = self.must_get_user() event_id = self.get_argument('id') _search = {'user.$id': user._id, '_id': ObjectId(event_id)} event = self.db.Event.one(_search) if not event: self.write_json(dict(error="ERROR: Invalid Event")) return if event.user != user: self.write_json(dict(error="ERROR: Not your event")) return title = self.get_argument('title').strip() duration = float(self.get_argument('duration')) external_url = self.get_argument('external_url', u'').strip() description = self.get_argument('description', u'').strip() if event.all_day: _before = 1 + (event.end - event.start).days if _before != duration: event.end += datetime.timedelta(days=duration - _before) diff = 1 + (event.end - event.start).days if diff < 1: self.write_json(dict(error=\ "ERROR. Duration can't be less than 1 day")) return else: _before = (event['end'] - event['start']).seconds / 60.0 / 60 if _before != duration: event.end += datetime.timedelta(hours=duration - _before) if event.start >= event.end: self.write_json(dict(error="ERROR. Duration too short")) return # all possible validation and checking done, do the save event.title = title event.external_url = external_url event.description = description event.tags = title_to_tags(title) event.save() log_event(self.db, user, event, actions.ACTION_EDIT, contexts.CONTEXT_SMARTPHONE) data = dict(timestamp=mktime(event.modify_date.timetuple())) event_data = dict( title=title, external_url=external_url, description=description, id=str(event._id), all_day=event.all_day, ) if event.all_day: event_data['days'] = 1 + (event.end - event.start).days else: event_data['hours'] = (event.end - event.start).seconds / 60.0 / 60 event_data['length'] = self.describe_length(event) data['event'] = self.serialize_dict(event_data) self.write_json(data)
def post(self): user = self.must_get_user() title = self.get_argument('title').strip() duration = self.get_argument('duration') duration_other = self.get_argument('duration_other', '') year = int(self.get_argument('year')) month = int(self.get_argument('month')) day = int(self.get_argument('day')) if duration == 'all_day': all_day = True start = datetime.datetime(year, month, day, 0, 0, 0) end = start else: all_day = False now = datetime.datetime.now() start = datetime.datetime(year, month, day, now.hour, now.minute, now.second) try: if duration == 'other': duration = float(duration_other) else: duration = float(duration) except ValueError: return self.write_json( dict(error="Error! Not a valid other number")) if (duration <= 0): return self.write_json( dict(error="Error! Duration must be more than zero")) end = start + datetime.timedelta(minutes=float(duration) * 60) event, created = self.create_event(user, all_day=all_day, start=start, end=end) if created: log_event(self.db, user, event, actions.ACTION_ADD, contexts.CONTEXT_SMARTPHONE) event_json = dict(title=event['title'], id=str(event['_id']), length=self.describe_length(event)) self.write_json(dict(event=event_json))
def post(self): user = self.must_get_user() title = self.get_argument('title').strip() duration = self.get_argument('duration') duration_other = self.get_argument('duration_other', '') year = int(self.get_argument('year')) month = int(self.get_argument('month')) day = int(self.get_argument('day')) if duration == 'all_day': all_day = True start = datetime.datetime(year, month, day, 0, 0, 0) end = start else: all_day = False now = datetime.datetime.now() start = datetime.datetime(year, month, day, now.hour, now.minute, now.second) try: if duration == 'other': duration = float(duration_other) else: duration = float(duration) except ValueError: return self.write_json(dict(error="Error! Not a valid other number")) if (duration <= 0): return self.write_json(dict(error="Error! Duration must be more than zero")) end = start + datetime.timedelta(minutes=float(duration) * 60) event, created = self.create_event(user, all_day=all_day, start=start, end=end) if created: log_event(self.db, user, event, actions.ACTION_ADD, contexts.CONTEXT_SMARTPHONE) event_json = dict(title=event['title'], id=str(event['_id']), length=self.describe_length(event)) self.write_json(dict(event=event_json))