Esempio n. 1
0
    def get_context_data(self, **kwargs):
        context={'msg':u'No POST data sent.' }
        if self.request.is_ajax():
            self.object=self.get_object()
            ConditionVideoEvent.objects.filter(condition__experiment=self.object).delete()
            units_to_delete=Unit.objects.filter(unit_recording__trial__condition__experiment=self.object).values_list('id',flat=True)
            UnitRecording.objects.filter(trial__condition__experiment=self.object).delete()
            Event.objects.filter(trial__condition__experiment=self.object).delete()
            RecordingTrial.objects.filter(condition__experiment=self.object).delete()
            Unit.objects.filter(id__in=units_to_delete).delete()
            Subject.objects.filter(arrays__units__id__in=units_to_delete).delete()
            Subject.objects.filter(penetrations__units__id__in=units_to_delete).delete()
            Penetration.objects.filter(units__id__in=units_to_delete).delete()
            Array.objects.filter(units__id__in=units_to_delete).delete()
            Condition.objects.filter(experiment=self.object).delete()
            ExperimentExportRequest.objects.filter(experiment=self.object).delete()

            if ClassificationAnalysisResults.objects.filter(experiment=self.object):
                UnitClassification.objects.filter(analysis_results__experiment=self.object).delete()
                UnitAnalysisResults.objects.filter(analysis_results__experiment=self.object.delete())
                ClassificationAnalysisResults.objects.filter(experiment=self.object).delete()
            AnalysisResults.objects.filter(experiment=self.object).delete()

            self.object.delete()

            try:
                rebuild_index.Command().handle(interactive=False)
            except:
                pass
            context={'id': self.request.POST['id']}

        return context
Esempio n. 2
0
 def test_can_search_forum_posts_by_using_the_anonymous_poster_name(self):
     # Setup
     self.topic_1.first_post.subject = 'newsubject'
     self.topic_1.first_post.save()
     self.topic_2.first_post.subject = 'newsubject'
     self.topic_2.first_post.save()
     self.topic_3.first_post.subject = 'newsubject'
     self.topic_3.first_post.save()
     post_4 = PostFactory.create(subject='newsubject',
                                 topic=self.topic_3,
                                 poster=None,
                                 username='******')
     rebuild_index.Command().handle(interactive=False, verbosity=-1)
     form = SearchForm(
         {
             'q': 'newsubject',
             'search_poster_name': 'newtest',
         },
         user=self.user,
     )
     # Run
     results = form.search()
     # Check
     assert form.is_valid()
     assert [r.object for r in results] == [
         post_4,
     ]
    def setUp(self):
        self.logged_in_user = make_user()

        (
            self.el1,
            self.el2,
            self.el3,
        ) = generate_fake_links(self.logged_in_user, count=3)

        self.el1.categories.add('mapping')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.el3.categories.add('social')
        self.el3.save()

        self.el3.name = 'Unique'
        self.el3.save()

        self.logged_in_user.favourites.add(self.el2)
        self.logged_in_user.favourites.add(self.el3)

        self.assertTrue(login_user(self, self.logged_in_user))

        rebuild_index.Command().handle(interactive=False, verbosity=0)
Esempio n. 4
0
    def handle(self, *args, **kwargs):
        print colored("***" * 27, "green")
        print colored(
            "*** INSIDE `%s.%s`" %
            (self.__class__.__name__, inspect.stack()[0][3]), "green")

        print colored("[---   LOG   ---] Going to rebuild Search Indexes...",
                      "green")

        rebuild_index.Command().handle(age=4,
                                       batchsize=1000,
                                       workers=0,
                                       max_retries=5,
                                       interactive=False,
                                       remove=True,
                                       verbosity=2,
                                       using=[
                                           "default",
                                       ])
        """
        update_index.Command().handle(
            age=4,
            interactive=False,
            remove=True,
            verbosity=2,
            using=["default", ])
        """

        self.stdout.write("!!! Successfully rebuilt Indexes !!!\n")
    def setUp(self):
        self.user = make_user()
        (self.el1, self.el2, self.el3, self.el4, self.el5, self.el6, self.el7,
         self.el8) = generate_fake_links(self.user, count=8)

        self.el1.categories.add('great')
        self.el2.categories.add('great')
        self.el3.categories.add('great')
        self.el4.categories.add('great')
        self.el5.categories.add('great')
        self.el6.categories.add('great')

        self.el7.is_external = True
        self.el7.save()

        self.el8.is_external = True
        self.el8.save()

        self.assertTrue(login_user(self, self.user))

        self.unfound_link_1 = Link.objects.create(
            name='Google Translate',
            destination='https://mail.google.com',
            description='Internet translation',
            owner=self.user,
        )

        self.unfound_link_2 = Link.objects.create(
            name='Google Mail',
            destination='https://translate.google.com',
            description='Internet email',
            owner=self.user,
        )

        rebuild_index.Command().handle(interactive=False, verbosity=0)
Esempio n. 6
0
    def setUp(self):
        self.user = make_user(userid='*****@*****.**',
                              email='*****@*****.**',
                              name='Ant Anterton')

        self.box_user = make_user(userid='*****@*****.**',
                                  email='*****@*****.**',
                                  name='Box Boxerly')

        self.chair_user = make_user(userid='*****@*****.**',
                                    email='*****@*****.**',
                                    name='Chair Chairington')

        self.first_desk_user = make_user(userid='*****@*****.**',
                                         email='*****@*****.**',
                                         name='Desk Deskworth')

        self.second_desk_user = make_user(userid='*****@*****.**',
                                          email='*****@*****.**',
                                          name='Desk Desker')

        self.eagle_user = make_user(userid='*****@*****.**',
                                    email='*****@*****.**',
                                    name='Eagle Eagerly')

        self.feather_user = make_user(userid='featherfeatherly',
                                      email='*****@*****.**',
                                      name='')

        self.assertTrue(login_user(self, self.user))

        rebuild_index.Command().handle(interactive=False, verbosity=0)
Esempio n. 7
0
 def test_can_search_forum_posts_by_using_the_registered_poster_name(self):
     # Setup
     self.topic_1.first_post.subject = 'newsubject'
     self.topic_1.first_post.save()
     self.topic_2.first_post.subject = 'newsubject'
     self.topic_2.first_post.save()
     self.topic_3.first_post.subject = 'newsubject'
     self.topic_3.first_post.save()
     rebuild_index.Command().handle(interactive=False, verbosity=-1)
     form = SearchForm(
         {
             'q': 'newsubject',
             'search_poster_name': self.user.username,
         },
         user=self.user,
     )
     # Run
     results = form.search()
     # Check
     assert form.is_valid()
     assert [r.object for r in results] == [
         self.post_1,
         self.post_2,
         self.post_3,
     ]
Esempio n. 8
0
def rebuild_workshops_full_text_search():
  logger.info('Updating workshop full-text search index.')
  try:
    rebuild_index.Command().handle(using=['default'], verbosity=2, remove=True, noinput=True)
  except Exception as e:
    logger.error('Caught exception while updating workshop index: %s' % e)

  return None
Esempio n. 9
0
 def tearDown(self):
     """
     Clean up the test
     """
     # disable indexing during import
     test_utils.set_index_active(False)
     
     test_utils.clean_resources_db()
     test_utils.clean_storage()
     OBJECT_XML_CACHE.clear()
     
     # enable indexing 
     test_utils.set_index_active(True)
 
     # update index
     rebuild_index.Command().handle()
Esempio n. 10
0
    def setUp(self):
        """
        Set up the test
        """
        # disable indexing during import
        test_utils.set_index_active(False)
        
        # import resources
        test_utils.setup_test_storage()
        OBJECT_XML_CACHE.clear()
        test_utils.import_xml_or_zip(RESOURCES_ZIP_FILE)

        # enable indexing 
        test_utils.set_index_active(True)
    
        # update index
        rebuild_index.Command().handle()
Esempio n. 11
0
    def test_can_search_forum_posts_by_using_a_set_of_forums(self):
        # Setup
        self.topic_2.first_post.subject = self.topic_1.subject
        self.topic_2.first_post.save()
        rebuild_index.Command().handle(interactive=False, verbosity=-1)
        form = SearchForm(
            {
                'q': self.topic_1.subject,
                'search_forums': [self.forum_1.pk, self.forum_2.pk, ],

            },
            user=self.user,
        )
        # Run
        results = form.search()
        # Check
        assert form.is_valid()
        assert [r.object for r in results] == [self.post_1, self.post_2, ]
Esempio n. 12
0
    def get_context_data(self, **kwargs):
        context={'msg':u'No POST data sent.' }
        if self.request.is_ajax():
            self.object=self.get_object()
            ConditionVideoEvent.objects.filter(condition=self.object).delete()
            units_to_delete=Unit.objects.filter(unit_recording__trial__condition=self.object).values_list('id',flat=True)
            UnitRecording.objects.filter(trial__condition=self.object).delete()
            Event.objects.filter(trial__condition=self.object).delete()
            RecordingTrial.objects.filter(condition=self.object).delete()
            Unit.objects.filter(id__in=units_to_delete).delete()

            self.object.delete()

            try:
                rebuild_index.Command().handle(interactive=False)
            except:
                pass

            context={'id': self.request.POST['id']}

        return context
Esempio n. 13
0
 def setUp(self):
     super(TestMatchEvents, self).setUp()
     haystack.connections.reload('default')
     FacebookCustomUser.objects.all().delete()
     self.user = FacebookCustomUser.objects. \
         create_user(username='******', facebook_id=1234567,
                     first_name='Andrii', password='******', gender='m',
                     date_of_birth=date(1989, 5, 20))
     self.user1 = FacebookCustomUser.objects. \
         create_user(username='******', facebook_id=12345671,
                     first_name='Sasa', gender='m', password='******',
                     date_of_birth=date(1979, 1, 9))
     user_location = UserLocation.objects.create(
         user=self.user, position=[-87.627696, 41.880745])
     user_location1 = UserLocation.objects.create(
         user=self.user1, position=[-87.627696, 41.880745])
     self.subject = Subject.objects.create(description='learning django')
     self.subject2 = Subject.objects.create(description='learn python')
     clear_index.Command().handle(interactive=False)
     rebuild_index.Command().handle(interactive=False)
     self.neo = NeoFourJ()
     self.neo.graph.delete_all()
Esempio n. 14
0
    def setUp(self):
        self.client = APIClient()
        self.set_up_test_data()

        # setup haystack
        haystack.connections.reload('default')
        haystack.connections.reload('default-fi')
        haystack.connections.reload('default-en')
        haystack.connections.reload('default-sv')

        # create a dummy event
        self.dummy = Event(name='dummy event',
                           data_source=self.test_ds,
                           publisher=self.test_org,
                           start_time=datetime.datetime.now(),
                           end_time=datetime.datetime.now())
        self.dummy.save()

        # refresh haystack's index
        rebuild_index.Command().handle(interactive=False)

        super(EventSearchTests, self).setUp()
Esempio n. 15
0
    def setUp(self):
        self.logged_in_user = make_user()

        (self.el1, self.el2, self.el3, self.el4, self.el5,
         self.el6) = generate_fake_links(self.logged_in_user, count=6)

        self.el7, = generate_fake_links(
            self.logged_in_user,
            start=7,
            count=1,
            is_external=True,
        )

        self.el1.categories.add('mapping')
        self.el1.categories.add('social')
        self.el1.save()

        self.el2.categories.add('mapping')
        self.el2.save()

        self.el3.categories.add('social')
        self.el3.save()

        self.el4.categories.add('geospatial')
        self.el4.save()

        self.el5.categories.add('imagery')
        self.el5.save()

        self.el6.categories.add('geospatial')
        self.el6.categories.add('mapping')
        self.el6.save()

        self.assertTrue(login_user(self, self.logged_in_user))

        rebuild_index.Command().handle(interactive=False, verbosity=0)
Esempio n. 16
0
    def setup(self):
        # Permission handler
        self.perm_handler = PermissionHandler()

        # Set up the following forum tree:
        #
        #     top_level_cat
        #         forum_1
        #         forum_2
        #             forum_2_child_1
        #     top_level_forum_1
        #     top_level_forum_2
        #         sub_cat
        #             sub_sub_forum
        #     top_level_forum_3
        #         forum_3
        #             forum_3_child_1
        #                 forum_3_child_1_1
        #                     deep_forum
        #     last_forum
        #
        self.top_level_cat = create_category_forum()

        self.forum_1 = create_forum(parent=self.top_level_cat)
        self.forum_2 = create_forum(parent=self.top_level_cat)
        self.forum_2_child_1 = create_forum(parent=self.forum_2)

        self.top_level_forum_1 = create_forum()

        self.top_level_forum_2 = create_forum()
        self.sub_cat = create_category_forum(parent=self.top_level_forum_2)
        self.sub_sub_forum = create_forum(parent=self.sub_cat)

        self.top_level_forum_3 = create_forum()
        self.forum_3 = create_forum(parent=self.top_level_forum_3)
        self.forum_3_child_1 = create_forum(parent=self.forum_3)
        self.forum_3_child_1_1 = create_forum(parent=self.forum_3_child_1)
        self.deep_forum = create_forum(parent=self.forum_3_child_1_1)

        self.last_forum = create_forum()

        # Set up a topic and some posts
        self.topic_1 = create_topic(forum=self.forum_1, poster=self.user)
        self.post_1 = PostFactory.create(topic=self.topic_1, poster=self.user)
        self.topic_2 = create_topic(forum=self.forum_2, poster=self.user)
        self.post_2 = PostFactory.create(topic=self.topic_2, poster=self.user)
        self.topic_3 = create_topic(forum=self.forum_2_child_1,
                                    poster=self.user)
        self.post_3 = PostFactory.create(topic=self.topic_3, poster=self.user)

        # Assign some permissions
        assign_perm('can_read_forum', self.user, self.top_level_cat)
        assign_perm('can_read_forum', self.user, self.forum_1)
        assign_perm('can_read_forum', self.user, self.forum_2)
        assign_perm('can_read_forum', self.user, self.forum_2_child_1)
        assign_perm('can_read_forum', self.user, self.top_level_forum_1)

        self.sqs = SearchQuerySet()

        rebuild_index.Command().handle(interactive=False, verbosity=-1)

        yield

        # teardown
        # --

        clear_index.Command().handle(interactive=False, verbosity=-1)
Esempio n. 17
0
def rebuild_search_indexes():
    """Rebuild/update Search Indexes.

    https://stackoverflow.com/questions/4358771/updating-a-haystack-search-index-with-django-celery
    """
    print colored("***" * 27, "green")
    print colored("*** INSIDE `%s`" % inspect.stack()[0][3], "green")

    print colored("[---   LOG   ---] Going to rebuild Search Indexes...",
                  "green")

    try:
        rebuild_index.Command().handle(age=4,
                                       batchsize=1000,
                                       workers=0,
                                       max_retries=5,
                                       interactive=False,
                                       remove=True,
                                       verbosity=2,
                                       using=[
                                           "default",
                                       ])
        """
        update_index.Command().handle(
            age=4,
            interactive=False,
            remove=True,
            verbosity=2,
            using=["default", ])
        """

        # ---------------------------------------------------------------------
        # --- Save the Log
        papertrail.log(
            event_type="periodic-task-ran",
            message="Periodic Task `%s` executed" % inspect.stack()[0][3],
            data={
                "success": True,
            },
            # timestamp=timezone.now(),
            targets={},
        )

    except Exception as e:
        print colored("###" * 27, "white", "on_red")
        print colored(
            "### EXCEPTION @ `{module}`: {msg}".format(
                module=inspect.stack()[0][3],
                msg=str(e),
            ), "white", "on_red")

        # ---------------------------------------------------------------------
        # --- Save the Log
        papertrail.log(
            event_type="periodic-task-failed",
            message="Periodic Task `%s` failed" % inspect.stack()[0][3],
            data={
                "success": False,
                "response": str(e),
            },
            # timestamp=timezone.now(),
            targets={},
        )

    return True
Esempio n. 18
0
import sys, os
sys.path.append('/opt/wsgi-apps')
os.environ['DJANGO_SETTINGS_MODULE'] = 'myschedule_settings'

from django.conf import settings
from haystack.management.commands import rebuild_index

rebuild_index.Command().handle()
Esempio n. 19
0
    def setUp(self):
        super(TestMatchQuerySet, self).setUp()
        haystack.connections.reload('default')
        Goal.objects.all().delete()
        Offer.objects.all().delete()
        Subject.objects.all().delete()
        FacebookCustomUser.objects.all().delete()
        photo = SimpleUploadedFile(name='test_image.jpg', content='test')
        self.user = FacebookCustomUser.objects.\
            create_user(username='******', facebook_id=1234567,
                        first_name='Andrii', password='******', gender='m',
                        date_of_birth=date(1989, 5, 20), image=photo)
        self.user1 = FacebookCustomUser.objects.\
            create_user(username='******', facebook_id=12345671,
                        first_name='Sasa', gender='m', password='******',
                        date_of_birth=date(1979, 1, 9), image=photo)
        self.user2 = FacebookCustomUser.objects. \
            create_user(username='******', facebook_id=12345672,
                        first_name='Ira', gender='f', password='******',
                        date_of_birth=date(1969, 1, 9), image=photo)
        self.user3 = FacebookCustomUser.objects. \
            create_user(username='******', facebook_id=12345676,
                        first_name='Natali', gender='f', password='******',
                        date_of_birth=date(1959, 1, 9), image=photo)
        self.user4 = FacebookCustomUser.objects. \
            create_user(username='******', facebook_id=12345675,
                        first_name='Tati', gender='f', password='******',
                        date_of_birth=date(1949, 1, 9), image=photo)
        self.user5 = FacebookCustomUser.objects. \
            create_user(username='******', facebook_id=12345674,
                        first_name='Ken', gender='m', password='******',
                        date_of_birth=date(1939, 1, 9), image=photo)

        user_location = UserLocation.objects.create(
            user=self.user, position=[-87.627696, 41.880745])
        user_location1 = UserLocation.objects.create(
            user=self.user1, position=[60.627675, 21.881925])
        user_location2 = UserLocation.objects.create(
            user=self.user2, position=[-87.6281729688, 41.881849562])
        user_location3 = UserLocation.objects.create(
            user=self.user5, position=[-87.62839, 41.88206])
        user_location4 = UserLocation.objects.create(
            user=self.user4, position=[-87.6269801114, 41.8814058757])
        user_location5 = UserLocation.objects.create(user=self.user3,
                                                     position=[38.53, 77.02])

        self.subject = Subject.objects.create(description='learning django')
        self.subject2 = Subject.objects.create(description='learn python')
        self.subject3 = Subject.objects.create(description='teach erlang')
        self.subject4 = Subject.objects.create(description='teach javascript')

        self.subject5 = Subject.objects.create(description='teach django')
        self.subject6 = Subject.objects.create(description='teach python')
        self.subject7 = Subject.objects.create(description='learn erlang')
        self.subject8 = Subject.objects.create(description='learn javascript')
        self.subject9 = Subject.objects.\
            create(description='django under the hood')
        self.subject10 = Subject.objects.\
            create(description='learn kiteboarding and foxes')
        self.subject11 = Subject.objects.\
            create(description='like a kiteboard and fox')
        self.subject12 = Subject.objects. \
            create(description='baby')
        self.subject13 = Subject.objects. \
            create(description='child')
        self.subject14 = Subject.objects. \
            create(description='hire a dog sitter')
        self.subject16 = Subject.objects. \
            create(description='play with dogs')
        self.subject15 = Subject.objects. \
            create(description='learn to code django python')

        self.i_subject = InterestSubject.objects.\
            create(description='teach django')
        self.i_subject1 = InterestSubject.objects. \
            create(description='learn django')
        self.i_subject2 = InterestSubject.objects. \
            create(description='teach python')
        self.i_subject3 = InterestSubject.objects. \
            create(description='learn python')
        self.i_subject4 = InterestSubject.objects. \
            create(description='kiteboarding')
        StopWords.objects.create(word='learn')
        StopWords.objects.create(word=u'and')
        StopWords.objects.create(word=u'teach')
        StopWords.objects.create(word=u'to')
        clear_index.Command().handle(interactive=False)
        rebuild_index.Command().handle(interactive=False)
        self.neo = NeoFourJ()
        self.neo.graph.delete_all()
Esempio n. 20
0
 def rebuild_search_index(self):
     rebuild_index.Command().handle(verbosity=0, interactive=False)
Esempio n. 21
0
def rebuild_search_index(age=None):
    return rebuild_index.Command().handle(using=['default'],
                                          age=None,
                                          interactive=False)
Esempio n. 22
0
        erroneous_imports += failure
        temp_file.close()
    
    print "Done.  Successfully imported {0} files into the database, errors " \
      "occurred in {1} cases.".format(len(successful_imports), len(erroneous_imports))
    if len(erroneous_imports) > 0:
        print "The following files could not be imported:"
        for descriptor, exception in erroneous_imports:
            if isinstance(exception.args, basestring):
                print "\t{}: {}".format(descriptor, ' '.join(exception.args))
            else:
                print "\t{}: {}".format(descriptor, exception.args)
    
    # Salvatore:
    # This is useful for tracking where the resource is stored.
    # It is used by some scripts for testing purposes
    if not id_filename is None:
        id_file = open(id_filename, 'w')
        for resource in successful_imports:
            id_file.write('--->RESOURCE_ID:{0};STORAGE_IDENTIFIER:{1}\n'\
                .format(resource.id, resource.storage_object.identifier))
        id_file.close()

    # Be nice and cleanup cache...
    _cache_size = sum([len(x) for x in OBJECT_XML_CACHE.values()])
    OBJECT_XML_CACHE.clear()
    print "Cleared OBJECT_XML_CACHE ({} bytes)".format(_cache_size)
    
    from haystack.management.commands import rebuild_index
    rebuild_index.Command().handle(interactive=False)
Esempio n. 23
0
def index_all_profiles():
    """Task to index all profiles through the admin interface."""
    rebuild_index.Command().handle(interactive=False)