| 
          from django import template | 
        
        
           | 
          
 | 
        
        
           | 
          register = template.Library() | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          @register.filter(is_safe=False) | 
        
        
           | 
          def à(value, upper=False, capitalize=False): | 
        
        
           | 
              """ | 
        
        
           | 
              French contraction for "à les", "à le", "à la" | 
        
        
           | 
          
 | 
        
        
           | 
              if string starts with le or Le, replace it with "au" | 
        
        
           | 
              if string starts with les or Les, replace it with "aux" | 
        
        
           | 
              if string starts with la, replace it with "à la" | 
        
        
           | 
              if strings starts with l', replace it with "à l'" and | 
        
        
           | 
                  hopes for the best ( this is not sexist, this is | 
        
        
           | 
                  statistically correct ) | 
        
        
           | 
              if string starts with à, do nothing | 
        
        
           | 
              if string starts with au, do nothing | 
        
        
           | 
              if strings start with aux , do nothing | 
        
        
           | 
          
 | 
        
        
           | 
              upper = upper(value) | 
        
        
           | 
              capitalize = capitalize(value) | 
        
        
           | 
              """ | 
        
        
           | 
              def capital(value): | 
        
        
           | 
                  if upper: | 
        
        
           | 
                      return value.upper() | 
        
        
           | 
                  if capitalize: | 
        
        
           | 
                      return value.capitalize() | 
        
        
           | 
                  return value | 
        
        
           | 
          
 | 
        
        
           | 
              if value.startswith(('à ', 'au ', 'aux ')): | 
        
        
           | 
                  return capital(value) | 
        
        
           | 
          
 | 
        
        
           | 
              if value.startswith(('le ', 'Le ', 'Au ')): | 
        
        
           | 
                  return capital('au ' + value[3:]) | 
        
        
           | 
          
 | 
        
        
           | 
              if value.startswith(('les ', 'Les ', 'Aux')): | 
        
        
           | 
                  return capital('aux ' + value[4:]) | 
        
        
           | 
          
 | 
        
        
           | 
              if value.startswith('À '): | 
        
        
           | 
                  return capital('à ' + value[2:]) | 
        
        
           | 
          
 | 
        
        
           | 
              return capital('au ' + value) |