Ejemplo n.º 1
0
 def get(self):
     mark_id = self.request.get_range('mark_id')
     category = self.request.get_range('category')
     if category == PERIOD_CATEGORY:
         back_link = "/mt/materials/periods/list"
         mark = HistoryPeriod.get_by_id(mark_id)
     elif category == EVENT_CATEGORY:
         back_link = '/mt/materials/events/list?mark_id=%s&category=%s' % (mark_id, category)
         mark = HistoryEvent.get_by_id(mark_id)
     elif category == PERSON_CATEGORY:
         back_link = '/mt/materials/persons/list?mark_id=%s&category=%s' % (mark_id, category)
         mark = HistoryPerson.get_by_id(mark_id)
     options = []
     for mark in HistoryEvent.query().fetch():
         options.append({
             'id': '%s_%s' % (mark.key.id(), EVENT_CATEGORY),
             'name': mark.name
         })
     for mark in HistoryPerson.query().fetch():
         options.append({
             'id': '%s_%s' % (mark.key.id(), PERSON_CATEGORY),
             'name': mark.name
         })
     for mark in HistoryPeriod.query().fetch():
         options.append({
             'id': '%s_%s' % (mark.key.id(), PERIOD_CATEGORY),
             'name': mark.name
         })
     self.render('/materials/dependency_add.html',
                 mark=mark, category=category,
                 options=options,
                 back_link=back_link)
Ejemplo n.º 2
0
    def post(self):
        dependency_key = self.request.get('dependency').split('_')
        dependency_mark_id, dependency_category = int(dependency_key[0]), int(dependency_key[1])
        if dependency_category == PERIOD_CATEGORY:
            dependency = HistoryPeriod.get_by_id(dependency_mark_id)
        elif dependency_category == EVENT_CATEGORY:
            dependency = HistoryEvent.get_by_id(dependency_mark_id)
        elif dependency_category == PERSON_CATEGORY:
            dependency = HistoryPerson.get_by_id(dependency_mark_id)

        mark_id = self.request.get_range('mark_id')
        category = self.request.get_range('category')
        if category == PERIOD_CATEGORY:
            back_link = "/mt/materials/periods/list"
            mark = HistoryPeriod.get_by_id(mark_id)
        elif category == EVENT_CATEGORY:
            back_link = '/mt/materials/events/list?mark_id=%s&category=%s' % (mark_id, category)
            mark = HistoryEvent.get_by_id(mark_id)
        elif category == PERSON_CATEGORY:
            back_link = '/mt/materials/persons/list?mark_id=%s&category=%s' % (mark_id, category)
            mark = HistoryPerson.get_by_id(mark_id)
        found = False
        for dependency_key in mark.dependencies:
            if dependency_key.get() == dependency.name:
                found = True
        if not found:
            mark.dependencies.append(dependency.key)
            mark.put()
        self.redirect(back_link)
Ejemplo n.º 3
0
    def post(self):
        parent_mark_id = self.request.get_range('parent_mark_id')
        parent_category = self.request.get_range('parent_category')

        test = Test()
        test.put()
        video = YoutubeVideo()

        if parent_category == PERSON_CATEGORY:
            person = HistoryPerson.get_by_id(parent_mark_id)
            video.person = person.key
        elif parent_category == EVENT_CATEGORY:
            event = HistoryEvent.get_by_id(parent_mark_id)
            video.event = event.key
        elif parent_category == PERIOD_CATEGORY:
            period = HistoryPeriod.get_by_id(parent_mark_id)
            video.period = period.key
        video.test = test.key
        video.youtube_id = self.request.get("youtube_id")
        video.title = self.request.get("title")
        video.shortcut = self.request.get("shortcut")
        video.sort_index = self.request.get_range("sort_index")
        video.put()

        save_video_info(video)

        self.redirect('/mt/materials/videos/list?mark_id=%s&category=%s' %
                      (parent_mark_id, parent_category))
Ejemplo n.º 4
0
    def get_mark_dict(mark):
        result = memcache.get(key=MEM_CACHE_MARK_INFO_KEY_MASK % (mark.category, mark.key.id()))
        if result is not None:
            return result

        events = sorted_history_marks(HistoryEvent.get_by_mark(mark))
        persons = sorted_history_marks(HistoryPerson.get_by_mark(mark))
        videos = sorted_history_marks(YoutubeVideo.get_by_mark(mark))
        channels = filter(partial(is_not, None), (YoutubeChannel.get_by_channel_id(channel_id=channel_id)
                                                  for channel_id in set([video.channel_id for video in videos])))
        books = sorted_history_marks(Book.get_by_mark(mark))

        result = {
            'text': mark.text.get().dict(),
            'events': [event.dict() for event in events],
            'persons': [person.dict() for person in persons],
            'videos': [video.dict() for video in videos],
            'channels': [channel.dict() for channel in channels],
            'books': [book.dict() for book in books],
            'test': mark.test.get().dict(),
            'dependencies': [{
                'id': str(dependency.id()),
                'category': str(get_category(dependency)),
            } for dependency in mark.dependencies],
        }
        memcache.add(key=MEM_CACHE_MARK_INFO_KEY_MASK % (mark.category, mark.key.id()), value=result, time=MEM_CACHE_TIME)

        return result
Ejemplo n.º 5
0
 def get(self):
     mark_id = self.request.get_range('mark_id')
     category = self.request.get_range('category')
     if category not in MARK_CATEGORIES:
         self.abort(400)
     persons = []
     back_link = ""
     add_link = ""
     if category == PERIOD_CATEGORY:
         period = HistoryPeriod.get_by_id(mark_id)
         persons = sorted_history_marks(HistoryPerson.get_by_period(period, consider_avail=False))
         back_link = "/mt/materials/periods/list"
         add_link = "/mt/materials/persons/add?parent_mark_id=%s&parent_category=0" % period.key.id()
     for person in persons:
         person.change_url = "/mt/materials/persons/change?person_id=%s&parent_mark_id=%s&parent_category=%s" % (person.key.id(), mark_id, category)
         person.extra = {
             'Видео'.decode("utf-8"): "/mt/materials/videos/list?mark_id=%s&category=2" % person.key.id(),
             'Титулы'.decode("utf-8"): '/mt/materials/persons/titles/list?parent_mark_id=%s&parent_category=%s&person_id=%s' % (mark_id, category, person.key.id())
         }
         person.dependencies_obj = get_dependencies(person)
     self.render('/materials/mark_list.html',
                 marks=persons,
                 parent_mark_id=mark_id,
                 parent_category=category,
                 category=PERSON_CATEGORY,
                 back_link=back_link,
                 add_link=add_link)
Ejemplo n.º 6
0
 def get(self):
     mark_id = self.request.get_range('mark_id')
     category = self.request.get_range('category')
     period = None
     if category == PERIOD_CATEGORY:
         self.abort(400)
     elif category == EVENT_CATEGORY:
         event = HistoryEvent.get_by_id(mark_id)
         if not event:
             self.abort(400)
         period = event.get_period()
     elif category == PERSON_CATEGORY:
         person = HistoryPerson.get_by_id(mark_id)
         if not person:
             self.abort(400)
         period = person.get_period()
     elif category == VIDEO_CATEGORY:
         video = YoutubeVideo.get_by_id(mark_id)
         if not video:
             self.abort(400)
         period = video.get_period()
     if period:
         self.render_json({
             'period_id': str(period.id())
         })
     else:
         self.abort(400)
Ejemplo n.º 7
0
 def post(self):
     parent_mark_id = self.request.get_range('parent_mark_id')
     parent_category = self.request.get_range('parent_category')
     person_id = self.request.get_range('mark_id')
     person = HistoryPerson.get_by_id(person_id)
     get_mark_values(self.request, person)
     person.put()
     person.country.get().update()
     self.redirect('/mt/materials/persons/list?mark_id=%s&category=%s' % (parent_mark_id, parent_category))
Ejemplo n.º 8
0
 def post(self):
     index = self.request.get_range('index')
     parent_mark_id = self.request.get_range('parent_mark_id')
     parent_category = self.request.get_range('parent_category')
     person_id = self.request.get_range('person_id')
     person = HistoryPerson.get_by_id(person_id)
     person.person_titles[index].name = self.request.get('name')
     person.person_titles[index].start = get_date_from_html(self.request.get('start'))
     person.person_titles[index].end = get_date_from_html(self.request.get('end'))
     person.put()
     self.redirect('/mt/materials/persons/titles/list?parent_mark_id=%s&parent_category=%s&person_id=%s' % (parent_mark_id, parent_category, person_id))
Ejemplo n.º 9
0
 def get(self):
     parent_mark_id = self.request.get_range('parent_mark_id')
     parent_category = self.request.get_range('parent_category')
     person_id = self.request.get_range('person_id')
     person = HistoryPerson.get_by_id(person_id)
     if not person:
         self.abort(400)
     for index, title in enumerate(person.person_titles):
         title.change_url = '/mt/materials/persons/titles/change?parent_mark_id=%s&parent_category=%s&person_id=%s&index=%s' % (parent_mark_id, parent_category, person_id, index)
     self.render('/materials/title_list.html',
                 titles=person.person_titles,
                 back_link='/mt/materials/persons/list?mark_id=%s&category=%s' % (parent_mark_id, parent_category),
                 add_link='/mt/materials/persons/titles/add?parent_mark_id=%s&parent_category=%s&person_id=%s' % (parent_mark_id, parent_category, person_id))
Ejemplo n.º 10
0
 def post(self):
     parent_mark_id = self.request.get_range('parent_mark_id')
     parent_category = self.request.get_range('parent_category')
     person_id = self.request.get_range('person_id')
     person = HistoryPerson.get_by_id(person_id)
     if not person:
         self.abort(400)
     title = HistoryPersonTitle()
     title.name = self.request.get('name')
     title.start = get_date_from_html(self.request.get('start'))
     title.end = get_date_from_html(self.request.get('end'))
     person.person_titles.append(title)
     person.put()
     self.redirect('/mt/materials/persons/titles/list?parent_mark_id=%s&parent_category=%s&person_id=%s' % (parent_mark_id, parent_category, person_id))
Ejemplo n.º 11
0
 def get(self):
     mark_id = self.request.get_range('mark_id')
     category = self.request.get_range('category')
     if category not in [EVENT_CATEGORY, PERSON_CATEGORY]:
         self.abort(400)
     elif category == EVENT_CATEGORY:
         event = HistoryEvent.get_by_id(mark_id)
         if not event:
             self.abort(400)
         self.render_json(event.dict())
     elif category == PERSON_CATEGORY:
         person = HistoryPerson.get_by_id(mark_id)
         if not person:
             self.abort(400)
         self.render_json(person.dict())
Ejemplo n.º 12
0
 def get(self):
     parent_mark_id = self.request.get_range('parent_mark_id')
     parent_category = self.request.get_range('parent_category')
     person_id = self.request.get_range('person_id')
     person = HistoryPerson.get_by_id(person_id)
     if not person:
         self.abort(400)
     person.start_str = get_html_date_from_str(person.start)
     person.end_str = get_html_date_from_str(person.end)
     back_link = '/mt/materials/persons/list?mark_id=%s&category=%s' % (parent_mark_id, parent_category)
     self.render('/materials/mark_add.html',
                 parent_mark_id=parent_mark_id, parent_category=parent_category,
                 mark=person,
                 default_category=DEFAULT_EVENTS_STRING.decode("utf-8"),
                 back_link=back_link)
Ejemplo n.º 13
0
 def get(self):
     index = self.request.get_range('index')
     parent_mark_id = self.request.get_range('parent_mark_id')
     parent_category = self.request.get_range('parent_category')
     person_id = self.request.get_range('person_id')
     person = HistoryPerson.get_by_id(person_id)
     if not person:
         self.abort(400)
     if not index < len(person.person_titles):
         self.abort(400)
     person.person_titles[index].start_str = get_html_date_from_str(person.start)
     person.person_titles[index].end_str = get_html_date_from_str(person.end)
     back_link = '/mt/materials/persons/titles/list?parent_mark_id=%s&parent_category=%s&person_id=%s' % (parent_mark_id, parent_category, person_id)
     self.render('/materials/title_add.html',
                 title=person.person_titles[index],
                 index=index, person_id=person.key.id(),
                 parent_mark_id=parent_mark_id, parent_category=parent_category,
                 back_link=back_link)
Ejemplo n.º 14
0
 def post(self):
     parent_mark_id = self.request.get_range('parent_mark_id')
     parent_category = self.request.get_range('parent_category')
     if parent_category == PERIOD_CATEGORY:
         mark = HistoryPeriod.get_by_id(parent_mark_id)
     person = HistoryPerson()
     person.category = PERSON_CATEGORY
     person.period = mark.key
     get_mark_values(self.request, person)
     set_add_defaults(person, mark.country)
     person.put()
     person.country.get().update()
     self.redirect('/mt/materials/persons/list?mark_id=%s&category=%s' % (parent_mark_id, parent_category))
Ejemplo n.º 15
0
 def get(self):
     mark_id = self.request.get_range('mark_id')
     category = self.request.get_range('category')
     if category not in MARK_CATEGORIES:
         self.abort(400)
     videos = []
     back_link = ""
     add_link = "/mt/materials/videos/add?parent_mark_id=%s&parent_category=%s" % (
         mark_id, category)
     if category == PERSON_CATEGORY:
         person = HistoryPerson.get_by_id(mark_id)
         videos = sorted_history_marks(YoutubeVideo.get_by_mark(person))
         # back_link = "/mt/materials/periods/list"
     elif category == EVENT_CATEGORY:
         event = HistoryEvent.get_by_id(mark_id)
         videos = sorted_history_marks(YoutubeVideo.get_by_mark(event))
     self.render('/materials/video_list.html',
                 videos=videos,
                 back_link=back_link,
                 add_link=add_link)
Ejemplo n.º 16
0
 def get(self):
     mark_id = self.request.get_range('mark_id')
     category = self.request.get_range('category')
     if category not in MARK_CATEGORIES:
         self.abort(400)
     if category == PERIOD_CATEGORY:
         period = HistoryPeriod.get_by_id(mark_id)
         if not period:
             self.abort(400)
         self.render_json(self.get_mark_dict(period))
     elif category == EVENT_CATEGORY:
         event = HistoryEvent.get_by_id(mark_id)
         if not event:
             self.abort(400)
         self.render_json(self.get_mark_dict(event))
     elif category == PERSON_CATEGORY:
         person = HistoryPerson.get_by_id(mark_id)
         if not person:
             self.abort(400)
         self.render_json(self.get_mark_dict(person))
Ejemplo n.º 17
0
 def get_new_marks_info():
     info = memcache.get(key=MEM_CACHE_NEW_MARKS_KEY_MASK % country_id)
     if not info:
         events = HistoryEvent.get_new_marks(country, amount, timestamp)
         persons = HistoryPerson.get_new_marks(country, amount, timestamp)
         while (len(events) + len(persons)) > amount:
             if len(events) == 0:
                 persons.remove(persons[len(persons) - 1])
                 break
             if len(persons) == 0:
                 events.remove(events[len(events) - 1])
                 break
             if events[len(events) - 1].created < persons[len(persons) - 1].created:
                 events.remove(events[len(events) - 1])
             else:
                 persons.remove(persons[len(persons) - 1])
         info = {
             'events': [event.dict() for event in events],
             'persons': [person.dict() for person in persons],
         }
         memcache.add(key=MEM_CACHE_NEW_MARKS_KEY_MASK % country_id, value=info, time=MEM_CACHE_TIME)
     return info
Ejemplo n.º 18
0
 def get(self):
     for mark in HistoryPerson.query().fetch():
         deferred.defer(search_mistake, mark.name, mark.text.get())