Esempio n. 1
0
    def get_queryset(self):
        if not 'query' in self.request.GET:
            return Note.objects.none()

        if 'page' in self.request.GET:
            page = int(self.request.GET['page'])
        else:
            page = 0

        try:
            index = SearchIndex()

            if 'course_id' in self.request.GET:
                raw_results = index.search(self.request.GET['query'],
                                           self.request.GET['course_id'],
                                           page=page)
            else:
                raw_results = index.search(self.request.GET['query'],
                                           page=page)

        except Exception:
            logger.error("Error with IndexDen:\n" + traceback.format_exc())
            self.error = True
            return Note.objects.none()
        else:
            self.error = False

        instances = Note.objects.in_bulk(raw_results.ordered_ids)
        results = []
        for id in raw_results.ordered_ids:
            if id in instances:
                results.append((instances[id], raw_results.snippet_dict[id]))
        self.has_more = raw_results.has_more

        return results
Esempio n. 2
0
    def get_queryset(self):
        if not 'query' in self.request.GET:
            return Note.objects.none()

        if 'page' in self.request.GET:
            page = int(self.request.GET['page'])
        else:
            page = 0

        try:
            index = SearchIndex()

            if 'course_id' in self.request.GET:
                raw_results = index.search(self.request.GET['query'],
                                                  self.request.GET['course_id'],
                                                  page=page)
            else:
                raw_results = index.search(self.request.GET['query'],
                                            page=page)

        except Exception:
            logger.error("Error with IndexDen:\n" + traceback.format_exc())
            self.error = True
            return Note.objects.none()
        else:
            self.error = False

        instances = Note.objects.in_bulk(raw_results.ordered_ids)
        results = []
        for id in raw_results.ordered_ids:
            if id in instances:
                results.append((instances[id], raw_results.snippet_dict[id]))
        self.has_more = raw_results.has_more

        return results
Esempio n. 3
0
 def handle(self, *args, **kwargs):
     index = SearchIndex()
     for note in Note.objects.iterator():
         try:
             print "Indexing {n}".format(n=note)
             index.add_note(note)
         except Exception, e:
             traceback.print_exc()
             continue
Esempio n. 4
0
def note_save_receiver(sender, **kwargs):
    if not 'instance' in kwargs:
        return
    note = kwargs['instance']


    update_note_counts(note)

    try:
        index = SearchIndex()
        if kwargs['created']:
            index.add_note(note)
        else:
            index.update_note(note, note.old_instance)
    except Exception:
        logger.error("Error with IndexDen:\n" + traceback.format_exc())
Esempio n. 5
0
def note_delete_receiver(sender, **kwargs):
    if not 'instance' in kwargs:
        return
    note = kwargs['instance']

    # Update course and school counts of how
    # many notes they have
    update_note_counts(kwargs['instance'])

    # Remove document from search index
    try:
        index = SearchIndex()
        index.remove_note(note)
    except Exception:
        logger.error("Error with IndexDen:\n" + traceback.format_exc())

    if note.user:
        GenericKarmaEvent.create_event(note.user, note.name, GenericKarmaEvent.NOTE_DELETED)
Esempio n. 6
0
def note_delete_receiver(sender, **kwargs):
    if not 'instance' in kwargs:
        return
    note = kwargs['instance']

    # Update course and school counts of how
    # many notes they have
    update_note_counts(kwargs['instance'])

    # Remove document from search index
    try:
        index = SearchIndex()
        index.remove_note(note)
    except Exception:
        logger.error("Error with IndexDen:\n" + traceback.format_exc())

    if note.user:
        GenericKarmaEvent.create_event(note.user, note.name,
                                       GenericKarmaEvent.NOTE_DELETED)
Esempio n. 7
0
def note_save_receiver(sender, **kwargs):
    if not 'instance' in kwargs:
        return
    note = kwargs['instance']

    update_note_counts(note)

    try:
        index = SearchIndex()
        if kwargs['created']:
            index.add_note(note)
        else:
            index.update_note(note, note.old_instance)
    except Exception:
        logger.error("Error with IndexDen:\n" + traceback.format_exc())