def handle(self, *args, **options): self.stdout.write("Fixing default programs...\n") for domain in Domain.get_all(): if not domain.commtrack_enabled: continue if Program.default_for_domain(domain.name): continue programs = Program.by_domain(domain.name) # filter anything named 'default' or 'Default' current_default = [ p for p in programs if p.name == 'Default' or p.name == 'default' ] # if they never changed their default programs # name, we don't want to add a confusing new one # so just flip this to the default if len(current_default) == 1: p.default = True p.save() else: get_or_create_default_program(domain.name)
def get_or_create_default_program(domain): program = Program.default_for_domain(domain) if program: return program else: return make_program( domain, _('Uncategorized'), _('uncategorized'), default=True )
def __init__(self, product, *args, **kwargs): self.product = product kwargs['initial'] = self.product._doc kwargs['initial']['code'] = self.product.code super(ProductForm, self).__init__(*args, **kwargs) programs = Program.by_domain(self.product.domain, wrap=False) self.fields['program_id'].choices = tuple((prog['_id'], prog['name']) for prog in programs) # make sure to select default program if # this is a new product if not product._id: self.initial['program_id'] = Program.default_for_domain( self.product.domain )._id