コード例 #1
0
ファイル: choicelists.py プロジェクト: zhuangyan/lino
    def update_problems(self, obj, delete=True, fix=False):
        """Update the problems of this checker and the specified object.

        When `delete` is False, the caller is responsible for deleting
        any existing objects.

        """
        Problem = rt.modules.plausibility.Problem
        if delete:
            gfk = Problem.owner
            qs = Problem.objects.filter(**gfk2lookup(gfk, obj, checker=self))
            qs.delete()

        done = []
        todo = []
        for fixable, msg in self.get_plausibility_problems(obj, fix):
            if fixable:
                msg = "(\u2605) " + unicode(msg)
            if fixable and fix:
                done.append(msg)
            else:
                todo.append(msg)
        if len(todo):
            user = self.get_responsible_user(obj)
            if user is None:
                lang = dd.get_default_language()
            else:
                lang = user.language
            with translation.override(lang):
                msg = "\n".join([unicode(s) for s in todo])
            prb = Problem(owner=obj, message=msg, checker=self, user=user)
            prb.full_clean()
            prb.save()
        return (todo, done)
コード例 #2
0
ファイル: demo_bookings.py プロジェクト: khchine5/xl
def objects():
    # vt = dd.plugins.invoicing.get_voucher_type()
    # jnl_list = vt.get_journals()
    # if len(jnl_list) == 0:
    #     return
    from lino_xl.lib.ledger.roles import LedgerStaff
    accountants = LedgerStaff.get_user_profiles()
    users = rt.models.users.User.objects.filter(
        language=dd.get_default_language(), user_type__in=accountants)
    if users.count() == 0:
        return
    ses = rt.login(users[0].username)
    Plan = rt.models.invoicing.Plan

    # we don't write invoices the last two months because we want to
    # have something in our invoicing plan.
    today = datetime.date(dd.plugins.ledger.start_year, 1, 1)
    while today < dd.demo_date(-60):
        plan = Plan.start_plan(ses.get_user(), today=today)
        yield plan
        plan.fill_plan(ses)
        # for i in plan.items.all()[:9]:
        for i in plan.items.all():
            obj = i.create_invoice(ses)
            if obj is not None:
                yield obj
            else:
                msg = "create_invoice failed for {}".format(i)
                raise Exception(msg)
                # dd.logger.warning(msg)
                # return
        today = DurationUnits.months.add_duration(today, 1)
コード例 #3
0
ファイル: demo_bookings.py プロジェクト: TonisPiip/cosi
def objects():
    # vt = dd.plugins.invoicing.get_voucher_type()
    # jnl_list = vt.get_journals()
    # if len(jnl_list) == 0:
    #     return
    from lino_cosi.lib.ledger.roles import LedgerStaff
    accountants = LedgerStaff.get_user_profiles()
    users = rt.models.users.User.objects.filter(
        language=dd.get_default_language(), profile__in=accountants)
    if users.count() == 0:
        return
    ses = rt.login(users[0].username)
    Plan = rt.modules.invoicing.Plan

    # we don't write invoices the last two months because we want to
    # have something in our invoicing plan.
    today = datetime.date(dd.plugins.ledger.start_year, 1, 1)
    while today < dd.demo_date(-60):
        plan = Plan.start_plan(ses.get_user(), today=today)
        yield plan
        plan.fill_plan(ses)
        # for i in plan.items.all()[:9]:
        for i in plan.items.all():
            obj = i.create_invoice(ses)
            assert obj is not None
            yield obj
        today = DurationUnits.months.add_duration(today, 1)
コード例 #4
0
ファイル: choicelists.py プロジェクト: TonisPiip/lino
    def update_problems(self, obj, delete=True, fix=False):
        """Update the problems of this checker and the specified object.

        When `delete` is False, the caller is responsible for deleting
        any existing objects.

        """
        Problem = rt.modules.plausibility.Problem
        if delete:
            gfk = Problem.owner
            qs = Problem.objects.filter(**gfk2lookup(gfk, obj, checker=self))
            qs.delete()

        done = []
        todo = []
        for fixable, msg in self.get_plausibility_problems(obj, fix):
            if fixable:
                msg = u"(\u2605) " + str(msg)
            if fixable and fix:
                done.append(msg)
            else:
                todo.append(msg)
        if len(todo):
            user = self.get_responsible_user(obj)
            if user is None:
                lang = dd.get_default_language()
            else:
                lang = user.language
            with translation.override(lang):
                msg = '\n'.join([str(s) for s in todo])
            prb = Problem(owner=obj, message=msg, checker=self, user=user)
            prb.full_clean()
            prb.save()
        return (todo, done)
コード例 #5
0
def objects():
    # vt = dd.plugins.invoicing.get_voucher_type()
    # jnl_list = vt.get_journals()
    # if len(jnl_list) == 0:
    #     return
    from lino_xl.lib.ledger.roles import LedgerStaff
    accountants = LedgerStaff.get_user_profiles()
    users = rt.models.users.User.objects.filter(
        language=dd.get_default_language(), user_type__in=accountants)
    if users.count() == 0:
        return
    ses = rt.login(users.first().username)

    for area in Area.objects.all():
        today = datetime.date(dd.plugins.ledger.start_year, 1, 1)
        while today < dd.demo_date(-60):
            plan = Plan.run_start_plan(ses.get_user(), today=today, area=area)
            yield plan
            plan.fill_plan(ses)
            # for i in plan.items.all()[:9]:
            for i in plan.items.all():
                obj = i.create_invoice(ses)
                if obj is not None:
                    yield obj
                else:
                    msg = "create_invoice failed for {}".format(i)
                    raise Exception(msg)
                    # dd.logger.warning(msg)
                    # return
            today = DurationUnits.months.add_duration(today, 1)
コード例 #6
0
ファイル: choicelists.py プロジェクト: gary-ops/lino
    def update_problems(self, obj=None, delete=True, fix=False):
        Problem = rt.models.checkdata.Problem
        if delete:
            qs = Problem.objects.filter(
                **gfk2lookup(Problem.owner, obj, checker=self))
            qs.delete()

        done = []
        todo = []
        for fixable, msg in self.get_checkdata_problems(obj, fix):
            if fixable:
                # attn: do not yet translate
                # msg = string_concat(u"(\u2605) ", msg)
                msg = format_lazy("(\u2605) {}", msg)
            if fixable and fix:
                done.append(msg)
            else:
                todo.append(msg)
        if len(todo):
            # dd.logger.info("%s : %s", obj, todo)
            user = self.get_responsible_user(obj)
            if user is None:
                lang = dd.get_default_language()
            else:
                lang = user.language
            with translation.override(lang):
                msg = '\n'.join([str(s) for s in todo])
            prb = Problem(owner=obj, message=msg, checker=self, user=user)
            prb.full_clean()
            prb.save()
        return (todo, done)
コード例 #7
0
ファイル: mixins.py プロジェクト: lino-framework/xl
 def get_print_language(self):
     return self.language or self.partner.language or \
         dd.get_default_language()
コード例 #8
0
ファイル: mixins.py プロジェクト: einarfelix/xl
 def get_print_language(self):
     return self.language or self.partner.language or \
         dd.get_default_language()