Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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'
        )
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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
        )
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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