Ejemplo n.º 1
0
 def save(self):
   artist = self.instance
   
   if artist:
     artist.name            = self.cleaned_data['name']
     # FIXME handle this as an override to save perhaps?
     artist.normalized_name = lang.normalize(self.cleaned_data['name'])
   else:
     artist = Artist(name = self.cleaned_data['name'], normalized_name = lang.normalize(self.cleaned_data['name']))
     
   return artist
Ejemplo n.º 2
0
def get_or_create_artist(name):
  query = {
    'normalized_name': normalize(name),
    'defaults': {
      'name': name
    }
  }
  
  artist, created = Artist.objects.get_or_create(**query)

  return artist
Ejemplo n.º 3
0
  def clean_name(self):
    name = self.cleaned_data['name']
    
    match_args = {
      'normalized_name': lang.normalize(name)
    }
    
    if self.instance:
      match_args['id__ne'] = self.instance.pk

    if Artist.objects(**match_args).count() > 0:
      raise forms.ValidationError('Another artist with this name already exists')

    return name
Ejemplo n.º 4
0
  def _venue(self, rows):
    if len(rows) == 0:
      return None

    info = DictForNameValue(rows)

    for r in ('name', 'url'):
      if not info.get(r):
        raise Exception("Venue lacks required field: %s" % r)

    v_kwargs = { }

    for field in ('name', 'url', 'address', 'city', 'neighborhood'):
      v_kwargs[field] = info[field]

    if info.get('lat') and info.get('long'):
      v_kwargs['location'] = [float(info.get('lat')), float(info.get('long'))]

    v_kwargs['normalized_name'] = normalize(v_kwargs['name'])
    
    venue, created = VenueModel.objects.get_or_create(Q(url = v_kwargs['url']), defaults = v_kwargs)
    
    return venue
Ejemplo n.º 5
0
    def load_venues(self, venue_file):      
      parser = CSVParser(venue_file)
      
      Venue.objects().delete()

      for record in parser:
        copy_over = ('name', 'url', 'address', 'city', 'neighborhood')
        
        v_map = { }
        
        if record.get('lat') and record.get('long'):
          v_map['location'] = [float(record.get('lat')), float(record.get('long'))]
        
        for field in copy_over:
          v_map[field] = record[field]
          
        v_map['normalized_name'] = normalize(v_map['name'])
        
        print v_map['name']
        
        v = Venue(**v_map)
        
        v.save()
Ejemplo n.º 6
0
def get_artist(name):
  try:
    return Artist.objects.get(normalized_name = normalize(name))
  except DoesNotExist, e:
    return None