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 __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) self.helper = FormHelper() self.helper.form_tag = False self.helper.label_class = 'col-sm-3 col-md-4 col-lg-2' self.helper.field_class = 'col-sm-4 col-md-5 col-lg-3' 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 self.helper.layout = Layout( 'name', 'code', 'description', 'unit', 'program_id', 'cost' )
def get_url(cls, domain=None, render_as=None, **kwargs): def _is_admin(user, domain): return isinstance(user, WebUser) and user.get_domain_membership(domain).is_admin def _is_read_only(user, domain): user_role = user.get_role() return isinstance(user, WebUser) and user_role == UserRole.get_read_only_role_by_domain(domain) def _can_see_reports(user): user_role = user.get_role() return isinstance(user, CommCareUser) and user_role.permissions.view_reports url = super(MultiReport, cls).get_url(domain=domain, render_as=None, kwargs=kwargs) request = kwargs.get('request') user = getattr(request, 'couch_user', None) if user: if _is_admin(user, domain): loc = SQLLocation.objects.filter(domain=domain, location_type='country')[0] url = '%s?location_id=%s' % (url, loc.location_id) elif _is_read_only(user, domain) or _can_see_reports(user): dm = user.get_domain_membership(domain) if dm.program_id: program_id = dm.program_id else: program_id = Program.default_for_domain(domain) url = '%s?location_id=%s&program_id=%s' % ( url, dm.location_id if dm.location_id else '', program_id if program_id else '' ) return url
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 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
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