def post(self): post = self.request.POST if post['kind'] == 'badge': badge = Badge(name=post['name'], description=post['description'], category=post['category'], image=post['image'], value=int(post['value'])) badge.save() elif post['kind'] == 'article': date = datetime.datetime.strptime(post['date'], '%Y-%m-%d').date() article = NewsArticle(title=post['title'], author=post['author'], body=post['body'], date=date) article.save() elif post['kind'] == 'award': badge = Badge.get_by_id(int(post['badge'])) for member in post.getall('members'): member = Member.get_by_id(int(member)) award = Award(member=member, badge=badge, date=datetime.date.today(), proof=post['proof']) award.save() elif post['kind'] == 'talk': talk = Talk(title=post['title'], date=datetime.datetime.strptime( post['date'], '%Y-%m-%d').date(), description=post['description'], member=Member.get_by_id(int(post['member'])), video=post['video']) talk.put() self.get()
def process_event(event_file, user): event_data = json.loads(event_file) event_name = event_data['name'] event_place = event_data['place'] event_date_from = datetime.strptime(event_data['date_from'], '%Y-%m-%d').date() event_date_to = datetime.strptime(event_data['date_to'], '%Y-%m-%d').date() event_timezone = event_data['timezone'] if 'description' in event_data: event_description = event_data['description'] else: event_description = '' ev = Event(owner=user, name=event_name, place=event_place, date_from=event_date_from, date_to=event_date_to, timezone=event_timezone, description=event_description, data=event_data) ev.put() for session in event_data['sessions']: session_name = session['name'] session_room = session['room'] tr = Session(owner=user, name=session_name, room=session_room, event=ev.key) tr.put() for talk in session['talks']: talk_title = talk['title'] talk_authors = talk['authors'] talk_start = datetime.strptime(talk['start'], '%Y-%m-%d %H:%M') talk_end = datetime.strptime(talk['end'], '%Y-%m-%d %H:%M') if 'tags' in talk: talk_tags = talk['tags'] else: talk_tags = [] if 'abstract' in talk: talk_abstract = talk['abstract'] else: talk_abstract = '' tk = Talk(owner=user, session=tr.key, title=talk_title, authors=talk_authors, start=talk_start, end=talk_end, tags=talk_tags, abstract=talk_abstract) tk.put()
def import_talks(talks): for talk in talks: # See if the RoomDay exists room_day = db.session.query(RoomDay)\ .filter(RoomDay.room == talk['room'])\ .filter(RoomDay.day == talk['day'])\ .first() if not room_day: room_day = RoomDay( room=talk['room'], day=talk['day'], date=talk['start'].date(), vid='', ) db.session.add(room_day) db.session.flush() # Create talk data talk_data = Talk( room_day_id=room_day.id, path=talk['path'], speakers=talk['speakers'], sched_start=talk['start'].strftime("%H:%M"), sched_end=talk['end'].strftime("%H:%M"), title=talk['title'], description=talk['description'], ) # See if the Talk already exists talk = db.session.query(Talk)\ .filter(Talk.path == talk['path'])\ .first() if not talk: db.session.add(talk_data) else: # If talk already exists, we may need to update some of its fields talk.room_day_id = talk_data.room_day_id talk.sched_start = talk_data.sched_start talk.sched_end = talk_data.sched_end talk.title = talk_data.title talk.description = talk_data.description
def post(self): post = self.request.POST if post['kind'] == 'badge': badge = Badge(name=post['name'], description=post['description'], category=post['category'], image=post['image'], value=int(post['value'])) badge.save() elif post['kind'] == 'award': badge = Badge.get_by_id(int(post['badge'])) for member in post.getall('members'): member = Member.get_by_id(int(member)) award = Award(member=member, badge=badge, date=datetime.date.today(), proof=post['proof']) award.save() member.score += badge.value member.save() elif post['kind'] == 'talk': talk = Talk(title=post['title'], date=utils.parse_date(post['date']), description=post['description'], member=Member.get_by_id(int(post['member'])), video=post['video']) talk.put() elif post['kind'] == 'taglineform': properties = GeneralSiteProperties.all().get() if properties == None: properties = GeneralSiteProperties(tag_line=post['tagline']) properties.put() else: properties.tag_line = post['tagline'] properties.put() self.get()