Exemple #1
0
                if synonym.pretty_name not in new_synonyms:
                    synonym.delete()
                    message = 'Removing old synonym "%s" for "%s"' % (
                        synonym.pretty_name, pretty_name)
                    context['actions_taken'].append(message)
                else:
                    # seen it in the database, don't make a new one
                    new_synonyms.remove(synonym.pretty_name)
                    message = 'Keeping synonym "%s" for "%s"' % (
                        synonym.pretty_name, pretty_name)
                    context['actions_taken'].append(message)

            for synonym in new_synonyms:
                try:
                    ns = PlaceSynonym(pretty_name=synonym,
                                      normalized_name=normalize(synonym),
                                      place=place)
                    ns.save()
                    message = 'Created new synonym "%s" for "%s"' % (
                        synonym, pretty_name)
                    context['actions_taken'].append(message)
                except:
                    message = 'Unable to add synonym "%s" for "%s"' % (
                        synonym, pretty_name)
                    context['errors'].append(message)

        return self._show_import_csv_results(request, context)

    def _show_import_csv_results(self, request, context):
        return self._render_admin_template(
            'admin/streets/place/import_places_csv_result.html', request,
Exemple #2
0
            new_synonyms = set(synonyms)
            for synonym in PlaceSynonym.objects.filter(place=place).all():
                if synonym.pretty_name not in new_synonyms:
                    synonym.delete()
                    message = 'Removing old synonym "%s" for "%s"' % (synonym.pretty_name, pretty_name)
                    context['actions_taken'].append(message)
                else:
                    # seen it in the database, don't make a new one
                    new_synonyms.remove(synonym.pretty_name)
                    message = 'Keeping synonym "%s" for "%s"' % (synonym.pretty_name, pretty_name)
                    context['actions_taken'].append(message)

            for synonym in new_synonyms:
                try:
                    ns = PlaceSynonym(pretty_name=synonym,
                                      normalized_name=normalize(synonym),
                                      place=place)
                    ns.save()
                    message = 'Created new synonym "%s" for "%s"' % (synonym, pretty_name)
                    context['actions_taken'].append(message)
                except:
                    message = 'Unable to add synonym "%s" for "%s"' % (synonym, pretty_name)
                    context['errors'].append(message)

            
            
        return self._show_import_csv_results(request, context)
        
        
    def _show_import_csv_results(self, request, context):
        return self._render_admin_template('admin/streets/place/import_places_csv_result.html',
Exemple #3
0
    def test_export_csv_synonyms(self):
        """
        test exporting a place with synonyms
        """
        assert test_client_login(self.client,
                                 username='******',
                                 password='******') == True

        place_type = PlaceType.objects.get(slug='poi')
        place = Place(pretty_name='Donut Palace',
                      place_type=place_type,
                      address='100 Bubble Street',
                      location=geos.Point(1.0, 2.0))
        place.save()
        ps = PlaceSynonym(pretty_name='Donut Hole', place=place)
        ps.save()
        ps = PlaceSynonym(pretty_name='Donut Pally', place=place)
        ps.save()

        place = Place(pretty_name='Donut Sanctuary',
                      place_type=place_type,
                      address='101 Bubble Street',
                      location=geos.Point(3.0, 4.0),
                      url='http://www.example.org/bs')
        place.save()
        ps = PlaceSynonym(pretty_name='Sancy D', place=place)
        ps.save()
        ps = PlaceSynonym(pretty_name='D Sanc', place=place)
        ps.save()

        response = self.client.post(self.export_url,
                                    {'place_type': place_type.id})
        self.assertEqual(response.status_code, 200)

        rows = csv.reader(StringIO(response.content))

        count = 0
        for row in rows:
            self.assertEqual(len(row), 7)
            synonyms = set(row[5:])
            if row[0] == 'Donut Palace':
                self.assertEqual(row[1], '100 Bubble Street')
                self.assertEqual(row[2], '2.0')
                self.assertEqual(row[3], '1.0')
                self.assertEqual(row[4], '')
                assert 'Donut Hole' in synonyms
                assert 'Donut Pally' in synonyms
            elif row[0] == 'Donut Sanctuary':
                self.assertEqual(row[1], '101 Bubble Street')
                self.assertEqual(row[2], '4.0')
                self.assertEqual(row[3], '3.0')
                self.assertEqual(row[4], 'http://www.example.org/bs')
                assert 'Sancy D' in synonyms
                assert 'D Sanc' in synonyms
            else:
                self.fail('Unexpected Place!' % row[0])
            count += 1

        self.assertEqual(count, 2)
Exemple #4
0
 def test_export_csv_synonyms(self):
     """
     test exporting a place with synonyms
     """
     assert test_client_login(self.client, username='******', password='******') == True
     
     place_type = PlaceType.objects.get(slug='poi')
     place = Place(pretty_name='Donut Palace', place_type=place_type,
                   address='100 Bubble Street', location=geos.Point(1.0, 2.0))
     place.save()
     ps = PlaceSynonym(pretty_name='Donut Hole', place=place)
     ps.save()
     ps = PlaceSynonym(pretty_name='Donut Pally', place=place)
     ps.save()
     
 
     place = Place(pretty_name='Donut Sanctuary', place_type=place_type,
                   address='101 Bubble Street', location=geos.Point(3.0, 4.0),
                   url='http://www.example.org/bs')
     place.save()
     ps = PlaceSynonym(pretty_name='Sancy D', place=place)
     ps.save()
     ps = PlaceSynonym(pretty_name='D Sanc', place=place)
     ps.save()
     
     response = self.client.post(self.export_url, {'place_type': place_type.id})
     assert response.status_code == 200
     
     rows = csv.reader(StringIO(response.content))
     
     count = 0
     for row in rows:
         assert len(row) == 7
         synonyms = set(row[5:])
         if row[0] == 'Donut Palace':
             assert row[1] == '100 Bubble Street'
             assert row[2] == '2.0'
             assert row[3] == '1.0'
             assert row[4] == ''
             assert 'Donut Hole' in synonyms
             assert 'Donut Pally' in synonyms
         elif row[0] == 'Donut Sanctuary':
             assert row[1] == '101 Bubble Street'
             assert row[2] == '4.0'
             assert row[3] == '3.0'
             assert row[4] == 'http://www.example.org/bs'
             assert 'Sancy D' in synonyms
             assert 'D Sanc' in synonyms
         else: 
             assert 0, 'Unexpected Place!'       
         count += 1
         
     assert count == 2