def objects(): from lino_welfare.modlib.newcomers.models import Broker, Faculty, Competence pcsw = dd.resolve_app('pcsw') Person = dd.resolve_model('contacts.Person') I = Instantiator(Broker).build #~ yield I(**babel_values('name', #~ de=u"Polizei", fr=u"Police",en=u"Police")) #~ yield I(**babel_values('name', #~ de=u"Jugendgericht", fr=u"Jugendgericht",en=u"Jugendgericht")) yield I(name="Police") yield I(name="Other PCSW") I = Instantiator(Faculty).build yield I(weight=10, **babel_values('name', de=u"Eingliederungseinkommen (EiEi)", fr=u"Revenu d'intégration sociale (RIS)", en=u"EiEi")) yield I(weight=5, **babel_values('name', de=u"DSBE", fr=u"Service d'insertion socio-professionnelle", en=u"DSBE")) yield I(weight=4, **babel_values('name', de=u"Ausländerbeihilfe", fr=u"Aide sociale équivalente (pour étrangers)", en=u"Ausländerbeihilfe")) yield I(weight=6, **babel_values('name', de=u"Finanzielle Begleitung", fr=u"Accompagnement budgétaire", en=u"Finanzielle Begleitung")) yield I(weight=2, **babel_values('name', de=u"Laufende Beihilfe", fr=u"Aide complémenataire", en=u"Laufende Beihilfe")) #~ User = resolve_model('users.User') #~ yield User(username="******", #~ first_name="Caroline",last_name="Carnol", # ~ profile='200') # UserTypes.caroline) #~ FACULTIES = Cycler(Faculty.objects.all()) #~ profiles = [p for p in UserTypes.items() if p.integ_level] #~ USERS = Cycler(User.objects.filter(profile__in=profiles)) #~ for i in range(7): #~ yield Competence(user=USERS.pop(),faculty=FACULTIES.pop()) #~ for p in pcsw.Client.objects.filter(client_state=pcsw.ClientStates.new): #~ p.faculty = FACULTIES.pop() #~ p.save() newcomers = dd.resolve_app('newcomers') users = dd.resolve_app('users') QUOTAS = Cycler(100, 60, 50, 20) FACULTIES = Cycler(newcomers.Faculty.objects.all()) profiles = [ p for p in UserTypes.items() if isinstance(p.role, IntegrationAgent) and not isinstance(p.role, dd.SiteStaff)] qs = users.User.objects.filter(profile__in=profiles) for u in qs: u.newcomer_quota = QUOTAS.pop() yield u USERS = Cycler(qs) for i in range(7): yield newcomers.Competence(user=USERS.pop(), faculty=FACULTIES.pop()) for p in pcsw.Client.objects.exclude( client_state=pcsw.ClientStates.former): p.faculty = FACULTIES.pop() p.save()
def objects(): ptype = Instantiator('properties.PropType').build properties = dd.resolve_app('properties') yield ptype(id=1, **dd.babel_values( 'name', **dict( en="Present or not", de=u"Vorhanden oder nicht", fr=u"Présent ou pas", et=u"Olemas või mitte", nl=u"Ja of niet", ))) yield ptype(id=2, choicelist=properties.HowWell.actor_id, default_value=properties.HowWell.default.value, **dd.babel_values( 'name', **dict( en="Rating", de=u"Bewertung", et=u"Hinnang", fr=u"Appréciation(?)", nl=u"Hoe goed", )))
def page(ref, language, title, body, parent=None, raw_html=False): if not settings.SITE.get_language_info(language): return pages = dd.resolve_app('pages', strict=True) obj = pages.lookup(ref, None) #~ obj = PAGES.get(ref) if parent is not None: parent = pages.lookup(parent) if obj is None: #~ kw = dict(,parent=parent) obj = pages.create_page(ref=ref) #~ PAGES[ref] = obj #~ if not ref: #~ logger.info("20130109 define index page %r --> %r",language,body) #~ else: #~ if not ref: #~ logger.info("20130109 override index page %r --> %r",language,body) setattr(obj, 'raw_html', raw_html) setattr(obj, 'parent', parent) setattr(obj, babelfield('title', language), title) setattr(obj, babelfield('body', language), body.strip()) # must save it already here so that subsequent pages of the same fixture # can use it as parent. obj.full_clean() obj.save()
def objects(): countries = dd.resolve_app('countries') city = Instantiator(countries.Place, "zip_code name", country='BE', type=countries.PlaceTypes.city).build for ln in belgian_cities.splitlines(): ln = ln.strip() if ln and ln[0] != '#': args = ln.split(None, 1) o = city(*args) # print "%r %r" % (o.zip_code, o.name) yield o #~ print __name__, "20121114" #~ return for ln in belgian_cities_nl_fr.splitlines(): ln = ln.strip() if ln and ln[0] != '#': args = ln.split('|') if len(args) != 4: raise Exception("Invalid format : \n%s" % ln) args = [x.strip() for x in args] o = city(zip_code=args[0], **dd.babel_values('name', nl=args[1], fr=args[2], de=args[3], en=args[3])) yield o
def objects(): #~ slot = Instantiator('courses.Slot','name start_time end_time').build #~ #~ kw = dict(monday=True,tuesday=True,wednesday=False,thursday=True,friday=True) #~ yield slot("Erste Stunde","16:00","17:00",**kw) #~ yield slot("Zweite Stunde","17:00","18:00",**kw) #~ yield slot("Dritte Stunde","18:00","19:00",**kw) #~ #~ kw = dict(wednesday=True) #~ yield slot("Mittwochs 13 Uhr","13:00","14:00",**kw) #~ yield slot("Mittwochs 14 Uhr","14:00","15:00",**kw) #~ yield slot("Mittwochs 15 Uhr","15:00","16:00",**kw) #~ yield slot("Mittwochs 16 Uhr","16:00","17:00",**kw) #~ yield slot("Mittwochs 17 Uhr","17:00","18:00",**kw) #~ yield slot("Mittwochs 18 Uhr","18:00","19:00",**kw) courses = dd.resolve_app('courses') yield courses.Line(**dd.babelkw( 'name', de=u"Deutsch Anfänger", fr=u"Allemand débutants", en=u"German beginners", )) yield courses.Line(**dd.babelkw( 'name', de=u"Französisch Anfänger", fr=u"Français débutants", en=u"French beginners", ))
def objects(): #~ slot = Instantiator('courses.Slot','name start_time end_time').build #~ #~ kw = dict(monday=True,tuesday=True,wednesday=False,thursday=True,friday=True) #~ yield slot("Erste Stunde","16:00","17:00",**kw) #~ yield slot("Zweite Stunde","17:00","18:00",**kw) #~ yield slot("Dritte Stunde","18:00","19:00",**kw) #~ #~ kw = dict(wednesday=True) #~ yield slot("Mittwochs 13 Uhr","13:00","14:00",**kw) #~ yield slot("Mittwochs 14 Uhr","14:00","15:00",**kw) #~ yield slot("Mittwochs 15 Uhr","15:00","16:00",**kw) #~ yield slot("Mittwochs 16 Uhr","16:00","17:00",**kw) #~ yield slot("Mittwochs 17 Uhr","17:00","18:00",**kw) #~ yield slot("Mittwochs 18 Uhr","18:00","19:00",**kw) courses = dd.resolve_app('courses') yield courses.Line(**dd.babelkw('name', de=u"Deutsch Anfänger", fr=u"Allemand débutants", en=u"German beginners", )) yield courses.Line(**dd.babelkw('name', de=u"Französisch Anfänger", fr=u"Français débutants", en=u"French beginners", ))
def handle(self, *args, **options): dbname = settings.DATABASES['default']['NAME'] if options.get('interactive'): if not confirm("This is going to GARBLE your database (%s).\nAre you sure (y/n) ?" % dbname): raise CommandError("User abort.") contacts = dd.resolve_app('contacts') User = dd.resolve_model(settings.SITE.user_model) Person = dd.resolve_model('contacts.Person') Household = dd.resolve_model('households.Household') Member = dd.resolve_model('households.Member') Role = dd.resolve_model('households.Role') Country = dd.resolve_model('countries.Country') for p in Person.objects.order_by('id'): if User.objects.filter(partner=p).count() > 0: # users keep their original name pass else: p.nationality = Country.objects.get( isocode=NATIONALITIES.pop()) p.last_name = LAST_NAMES.pop() if p.gender == dd.Genders.male: p.first_name = MALES.pop() FEMALES.pop() else: p.first_name = FEMALES.pop() MALES.pop() #~ dblogger.log_changes(REQUEST,p) p.name = join_words(p.last_name, p.first_name) p.save() dblogger.info("%s from %s", unicode(p), unicode(p.nationality)) MEN = Cycler(Person.objects.filter(gender=dd.Genders.male) .order_by('id')) WOMEN = Cycler( Person.objects.filter(gender=dd.Genders.female).order_by('id')) for h in Household.objects.all(): if h.member_set.all().count() == 0: he = MEN.pop() she = WOMEN.pop() h.name = he.last_name + "-" + she.last_name Member(household=h, person=he, role=Role.objects.get(pk=1)).save() Member(household=h, person=she, role=Role.objects.get(pk=2)).save() else: h.name = '' h.full_clean() h.save() dblogger.info(unicode(h)) dblogger.info("GARBLE done on database %s." % dbname)
def objects(): ledger = dd.resolve_app('ledger') finan = dd.resolve_app('finan') #~ partners = dd.resolve_app('partners') #~ contacts = dd.resolve_app('contacts') MODEL = finan.BankStatement vt = ledger.VoucherTypes.get_for_model(MODEL) JOURNALS = Cycler(vt.get_journals()) PARTNERS = Cycler(Partner.objects.order_by('name')) USERS = Cycler(settings.SITE.user_model.objects.all()) AMOUNTS = Cycler([ Decimal(x) for x in "2.50 6.80 9.95 14.50 20 29.90 39.90 39.90 99.95 199.95 599.95 1599.99" .split() ]) ITEMCOUNT = Cycler(1, 3, 10) for i in range(2): jnl = JOURNALS.pop() voucher = MODEL(journal=jnl, user=USERS.pop(), date=settings.SITE.demo_date(-30 + i)) yield voucher ACCOUNTS = Cycler(jnl.get_allowed_accounts()) for j in range(ITEMCOUNT.pop()): item = voucher.add_voucher_item(partner=PARTNERS.pop(), account=ACCOUNTS.pop(), amount=AMOUNTS.pop()) #~ item.total_incl_changed(REQUEST) #~ item.before_ui_save(REQUEST) #~ if item.total_incl: #~ print "20121208 ok", item #~ else: #~ if item.product.price: #~ raise Exception("20121208") yield item voucher.register(REQUEST) yield voucher
def objects(): ledger = dd.resolve_app('ledger') finan = dd.resolve_app('finan') #~ partners = dd.resolve_app('partners') #~ contacts = dd.resolve_app('contacts') MODEL = finan.BankStatement vt = ledger.VoucherTypes.get_for_model(MODEL) JOURNALS = Cycler(vt.get_journals()) PARTNERS = Cycler(Partner.objects.order_by('name')) USERS = Cycler(settings.SITE.user_model.objects.all()) AMOUNTS = Cycler([Decimal(x) for x in "2.50 6.80 9.95 14.50 20 29.90 39.90 39.90 99.95 199.95 599.95 1599.99".split()]) ITEMCOUNT = Cycler(1, 3, 10) for i in range(2): jnl = JOURNALS.pop() voucher = MODEL(journal=jnl, user=USERS.pop(), date=settings.SITE.demo_date(-30 + i)) yield voucher ACCOUNTS = Cycler(jnl.get_allowed_accounts()) for j in range(ITEMCOUNT.pop()): item = voucher.add_voucher_item( partner=PARTNERS.pop(), account=ACCOUNTS.pop(), amount=AMOUNTS.pop() ) #~ item.total_incl_changed(REQUEST) #~ item.before_ui_save(REQUEST) #~ if item.total_incl: #~ print "20121208 ok", item #~ else: #~ if item.product.price: #~ raise Exception("20121208") yield item voucher.register(REQUEST) yield voucher
def objects(): pcsw = dd.resolve_app('pcsw') Place = resolve_model('countries.Place') Client = resolve_model('pcsw.Client') CourseContent = resolve_model('courses.CourseContent') CLIENTS = Cycler( Client.objects.filter(client_state=pcsw.ClientStates.coached)) eupen = Place.objects.get(name__exact='Eupen') courseprovider = Instantiator('courses.CourseProvider').build oikos = courseprovider(name=u"Oikos", city=eupen, country='BE') yield oikos # oikos.repairdata() kap = courseprovider(name=u"KAP", city=eupen, country='BE') yield kap # kap.repairdata() yield CourseContent(id=1, name=u"Deutsch") yield CourseContent(id=2, name=u"Französisch") COURSECONTENTS = Cycler(CourseContent.objects.all()) creq = Instantiator('courses.CourseRequest').build for i in range(20): yield creq( person=CLIENTS.pop(), content=COURSECONTENTS.pop(), date_submitted=settings.SITE.demo_date(-i * 2)) #~ yield creq(person=ulrike,content=1,date_submitted=settings.SITE.demo_date(-30)) #~ yield creq(person=tatjana,content=1,date_submitted=settings.SITE.demo_date(-30)) #~ yield creq(person=erna,content=2,date_submitted=settings.SITE.demo_date(-30)) offer = Instantiator('courses.CourseOffer').build course = Instantiator('courses.Course').build yield offer(provider=oikos, title=u"Deutsch für Anfänger", content=1) #~ yield course(offer=1,start_date=i2d(20110110)) yield course(offer=1, start_date=settings.SITE.demo_date(+30)) yield offer(provider=kap, title=u"Deutsch für Anfänger", content=1) #~ yield course(offer=2,start_date=i2d(20110117)) yield course(offer=2, start_date=settings.SITE.demo_date(+16)) yield offer(provider=kap, title=u"Français pour débutants", content=2) #~ yield course(offer=3,start_date=i2d(20110124)) yield course(offer=3, start_date=settings.SITE.demo_date(+16))
def objects(): ptype = Instantiator('properties.PropType').build properties = dd.resolve_app('properties') yield ptype(id=1, **dd.babel_values('name', **dict( en="Present or not", de=u"Vorhanden oder nicht", fr=u"Présent ou pas", et=u"Olemas või mitte", nl=u"Ja of niet", ))) yield ptype(id=2, choicelist=properties.HowWell.actor_id, default_value=properties.HowWell.default.value, **dd.babel_values('name', **dict( en="Rating", de=u"Bewertung", et=u"Hinnang", fr=u"Appréciation(?)", nl=u"Hoe goed", )))
def objects(): from lino.api import dd, rt pcsw = dd.resolve_app('pcsw') #~ persongroup = Instantiator('pcsw.PersonGroup','name').build # Auswertung / Bilan yield pcsw.PersonGroup(ref_name='1', name=_("Evaluation")) # Formation / Ausbildung yield pcsw.PersonGroup(ref_name='2', name=_("Formation")) yield pcsw.PersonGroup(ref_name='4', name=_("Search")) # Suche / Recherche yield pcsw.PersonGroup(ref_name='4bis', name=_("Work")) # Arbeit / Travail yield pcsw.PersonGroup(ref_name='9', name=_("Standby")) #~ yield persongroup(u"Bilan",ref_name='1') #~ yield persongroup(u"Formation",ref_name='2') #~ yield persongroup(u"Recherche",ref_name='4') #~ yield persongroup(u"Travail",ref_name='4bis') #~ yield persongroup(u"Standby",ref_name='9',active=False) yield pcsw.CoachingEnding(**babelkw('name', de="Übergabe an Kollege", fr="Transfert vers collègue", en="Transfer to colleague",)) yield pcsw.CoachingEnding(**babelkw('name', de="Einstellung des Anrechts auf SH", fr="Arret du droit à l'aide sociale", en="End of right on social aid")) yield pcsw.CoachingEnding(**babelkw('name', de="Umzug in andere Gemeinde", fr="Déménagement vers autre commune", en="Moved to another town")) yield pcsw.CoachingEnding(**babelkw('name', de="Hat selber Arbeit gefunden", fr="A trouvé du travail", en="Found a job")) yield pcsw.DispenseReason(**babelkw('name', de="Gesundheitlich", fr="Santé", en="Health")) yield pcsw.DispenseReason(**babelkw('name', de="Studium/Ausbildung", fr="Etude/Formation", en="Studies")) yield pcsw.DispenseReason(**babelkw('name', de="Familiär", fr="Cause familiale", en="Familiar")) yield pcsw.DispenseReason(**babelkw('name', de="Sonstige", fr="Autre", en="Other"))
def cbss_relations(self, ar): if ar is None: return '' cbss = dd.resolve_app('cbss') SLAVE = cbss.RetrieveTIGroupsRequestsByPerson elems = [] sar = ar.spawn( SLAVE, master_instance=self, filter=models.Q(status__in=OK_STATES)) btn = SLAVE.insert_action.request_from(ar).ar2button() n = sar.get_total_count() if n > 0: items = [] SHOWN_TYPES = ('110', '120', '140', '141') obj = sar.data_iterator[n - 1] res = obj.Result(ar) for row in res: if row.type in SHOWN_TYPES: chunks = [] if row.counter == 1: chunks += [ 'IT%s (' % row.type, E.b(row.group), ') '] chunks += [str(row.since), ' ', row.info] items.append(E.li(*chunks)) if len(items) > 0: elems.append(E.ul(*items)) text = "%s %s" % (obj._meta.verbose_name, naturaltime(obj.sent)) elems.append(ar.obj2html(obj, text)) if btn is not None: elems += [' ', btn] if None in elems: raise Exception("20140513 None in %r" % elems) return E.div(*elems)
# Copyright 2008-2016 Luc Saffre # License: BSD (see file COPYING for details) """ Database models for `lino_xl.lib.products`. """ from django.db import models from django.utils.translation import ugettext_lazy as _ from lino.api import dd from lino import mixins from .choicelists import DeliveryUnit vat = dd.resolve_app('vat') class ProductCat(mixins.BabelNamed): """A **product category** is a way to group products.""" class Meta: app_label = 'products' verbose_name = _("Product Category") verbose_name_plural = _("Product Categories") abstract = dd.is_abstract_model(__name__, 'ProductCat') description = models.TextField(blank=True) class ProductCats(dd.Table): model = 'products.ProductCat'
if not nt: return prj = owner.get_related_project() if prj: kw.update(project=prj) note = rt.modules.notes.Note(event_type=nt, owner=owner, subject=subject, body=body, user=request.user, **kw) #~ owner.update_system_note(note) note.save() system = dd.resolve_app('system') def customize_siteconfig(): """ Injects application-specific fields to :class:`SiteConfig <lino.modlib.system.SiteConfig>`. """ dd.inject_field( 'system.SiteConfig', 'system_note_type', dd.ForeignKey('notes.EventType', blank=True, null=True, verbose_name=_("Default system note type"), help_text=_("""\ Note Type used by system notes. If this is empty, then system notes won't create any entry to the Notes table."""
from lino_xl.lib.clients.mixins import ClientBase # from lino_xl.lib.notes.mixins import Notable from lino_xl.lib.cal.mixins import EventGenerator from lino_xl.lib.cal.workflows import TaskStates from lino_xl.lib.cv.mixins import BiographyOwner # from lino.utils.mldbc.fields import BabelVirtualField from lino.mixins import ObservedDateRange from lino_xl.lib.clients.choicelists import ClientEvents, ClientStates from lino.core.roles import Explorer from lino_xl.lib.cv.roles import CareerUser from .choicelists import TranslatorTypes, StartingReasons, ProfessionalStates from .choicelists import OldEndingReasons from .roles import ClientsNameUser, ClientsUser, ClientsStaff contacts = dd.resolve_app('contacts') # def cef_level_getter(lng): # def f(obj): # LanguageKnowledge = rt.models.cv.LanguageKnowledge # if obj._cef_levels is None: # obj._cef_levels = dict() # for lk in LanguageKnowledge.objects.filter(person=obj): # obj._cef_levels[lk.language.iso2] = lk.obj._cef_levels # return obj._cef_levels.get(lng.django_code) # return f from lino.utils.mldbc.mixins import BabelDesignated class Category(BabelDesignated):
from lino_xl.lib.excerpts.mixins import Certifiable from lino_xl.lib.excerpts.mixins import ExcerptTitle from lino.modlib.users.mixins import UserAuthored from lino.modlib.printing.mixins import Printable # from lino.modlib.printing.utils import PrintableObject from lino_xl.lib.cal.mixins import Reservation from lino_xl.lib.cal.choicelists import Recurrencies from lino_xl.lib.cal.utils import day_and_month from lino_xl.lib.contacts.mixins import ContactRelated from lino.utils.dates import DateRangeValue from .choicelists import EnrolmentStates, CourseStates, ActivityLayouts from .actions import PrintPresenceSheet cal = dd.resolve_app('cal') # returns None if cal is not imported try: teacher_model = dd.plugins.courses.teacher_model teacher_label = dd.plugins.courses.teacher_label pupil_model = dd.plugins.courses.pupil_model pupil_name_fields = dd.plugins.courses.pupil_name_fields except AttributeError: # Happens only when Sphinx autodoc imports it and this module is # not installed. teacher_label = _("Instructor") teacher_model = 'foo.Bar' pupil_model = 'foo.Bar' pupil_name_fields = 'foo bar' FILL_EVENT_GUESTS = False
from django.conf import settings from django.utils.translation import ugettext_lazy as _ from lino.api import dd, rt from lino.utils import i2d, Cycler from lino_xl.lib.beid.mixins import BeIdCardTypes from lino.utils.instantiator import Instantiator from lino.core.utils import resolve_model from lino.utils import mti from lino.utils.ssin import generate_ssin from lino_xl.lib.cal.choicelists import DurationUnits # from lino_xl.lib.cal.utils import WORKDAYS isip = dd.resolve_app('isip') jobs = dd.resolve_app('jobs') pcsw = dd.resolve_app('pcsw') uploads = dd.resolve_app('uploads') contacts = dd.resolve_app('contacts') users = dd.resolve_app('users') countries = dd.resolve_app('countries') reception = dd.resolve_app('reception') cal = dd.resolve_app('cal') cv = dd.resolve_app('cv') Company = dd.resolve_model('contacts.Company') #~ dblogger.info('Loading') #~ def coaching_stories(state):
import logging logger = logging.getLogger(__name__) from django.db import models from django.conf import settings from lino.api import dd, rt, _, gettext from lino import mixins from lino.utils import join_words, join_elems from etgen.html import E from lino_xl.lib.contacts.roles import ContactsUser, ContactsStaff from .choicelists import MemberRoles, MemberDependencies contacts = dd.resolve_app('contacts') config = dd.plugins.households from .choicelists import child_roles, parent_roles class Type(mixins.BabelNamed): """ Type of a household. http://www.belgium.be/fr/famille/couple/cohabitation/ """ class Meta: app_label = 'households' verbose_name = _("Household Type") verbose_name_plural = _("Household Types")
def card2client(cls, data): "does the actual conversion" self = cls from lino.utils import ssin from lino.api import dd, rt from lino.mixins.beid import BeIdCardTypes from lino.utils import join_words from lino.utils import IncompleteDate from lino_xl.lib.contacts.utils import street2kw countries = dd.resolve_app('countries', strict=True) kw = dict() #~ def func(fldname,qname): #~ kw[fldname] = data[qname] kw.update(national_id=ssin.format_ssin(data['nationalNumber'])) kw.update(first_name=join_words(data['firstName1'], data['firstName2'], data['firstName3'])) #~ func('first_name','firstName1') kw.update(last_name=data['surname']) card_number = data['cardNumber'] if 'picture' in data: fn = self.card_number_to_picture_file(card_number) if os.path.exists(fn): logger.warning("Overwriting existing image file %s.", fn) fp = file(fn, 'wb') fp.write(base64.b64decode(data['picture'])) fp.close() #~ print 20121117, repr(data['picture']) #~ kw.update(picture_data_encoded=data['picture']) #~ func('card_valid_from','validityBeginDate') #~ func('card_valid_until','validityEndDate') #~ func('birth_date','birthDate') kw.update(birth_date=IncompleteDate( *settings.SITE.parse_date(data['birthDate']))) kw.update(card_valid_from=datetime.date( *settings.SITE.parse_date(data['validityBeginDate']))) kw.update(card_valid_until=datetime.date( *settings.SITE.parse_date(data['validityEndDate']))) kw.update(card_number=card_number) kw.update(card_issuer=data['issuingMunicipality']) kw.update(noble_condition=data['nobleCondition']) kw.update(street=data['street']) kw.update(street_no=data['streetNumber']) kw.update(street_box=data['boxNumber']) if kw['street'] and not (kw['street_no'] or kw['street_box']): kw = street2kw(kw['street'], **kw) kw.update(zip_code=data['zipCode']) kw.update(birth_place=data['birthLocation']) pk = data['country'].upper() msg1 = "BeIdReadCardToClientAction %s" % kw.get('national_id') #~ try: country = countries.Country.objects.get(isocode=pk) kw.update(country=country) #~ except countries.Country.DoesNotExist,e: #~ except Exception,e: #~ logger.warning("%s : no country with code %r",msg1,pk) #~ BE = countries.Country.objects.get(isocode='BE') #~ fld = countries.Place._meta.get_field() kw.update(city=countries.Place.lookup_or_create( 'name', data['municipality'], country=country)) def sex2gender(sex): if sex == 'M': return dd.Genders.male if sex in 'FVW': return dd.Genders.female logger.warning("%s : invalid gender code %r", msg1, sex) kw.update(gender=sex2gender(data['sex'])) if False: def nationality2country(nationality): try: return countries.Country.objects.get( nationalities__icontains=nationality) except countries.Country.DoesNotExist, e: logger.warning("%s : no country for nationality %r", msg1, nationality) except MultipleObjectsReturned, e: logger.warning( "%s : found more than one country for nationality %r", msg1, nationality)
from .timloader1 import TimLoader Person = dd.resolve_model("contacts.Person") Company = dd.resolve_model("contacts.Company") Partner = dd.resolve_model("contacts.Partner") RoleType = dd.resolve_model("contacts.RoleType") Role = dd.resolve_model("contacts.Role") Household = dd.resolve_model('households.Household') Product = dd.resolve_model('products.Product') List = dd.resolve_model('lists.List') Member = dd.resolve_model('lists.Member') households_Member = dd.resolve_model('households.Member') Account = dd.resolve_model('ledger.Account') tickets = dd.resolve_app('tickets') working = dd.resolve_app('working') def ticket_state(idpns): if idpns == ' ': return tickets.TicketStates.new if idpns == 'A': return tickets.TicketStates.waiting if idpns == 'C': return tickets.TicketStates.fixed if idpns == 'X': return tickets.TicketStates.cancelled return tickets.TicketStates.new # return None # 20120829 tickets.TicketStates.blank_item
def run_from_ui(self, ar, **kw): elem = ar.selected_rows[0] #~ if elem.sent: #~ return rr.ui.error(message='Mail has already been sent.') #~ subject = elem.subject #~ sender = "%s <%s>" % (rr.get_user().get_full_name(),rr.get_user().email) sender = "%s <%s>" % (elem.user.get_full_name(), elem.user.email) #~ recipients = list(elem.get_recipients_to()) to = [] cc = [] bcc = [] found = False missing_addresses = [] for r in elem.recipient_set.all(): recipients = None if r.type == RecipientTypes.to: recipients = to elif r.type == RecipientTypes.cc: recipients = cc elif r.type == RecipientTypes.bcc: recipients = bcc if recipients is not None: if not r.address: missing_addresses.append(r) if r.address.endswith('@example.com'): logger.info("20120712 ignored recipient %s", r.name_address()) else: recipients.append(r.name_address()) found = True #~ else: #~ logger.info("Ignoring recipient %s (type %s)",r,r.type) if not found: return ar.error(_("No recipients found.")) if len(missing_addresses): msg = _("There are recipients without address: ") msg += ', '.join([str(r) for r in missing_addresses]) return ar.error(msg, alert=True) #~ as_attachment = elem.owner.attach_to_email(rr) #~ body = elem.body #~ if as_attachment: #~ body = elem.body #~ else: #~ body = elem.owner.get_mailable_body(rr) text_content = html2text(elem.body) msg = EmailMultiAlternatives(subject=elem.subject, from_email=sender, body=text_content, to=to, bcc=bcc, cc=cc) msg.attach_alternative(elem.body, "text/html") for att in elem.attachment_set.all(): #~ if as_attachment or att.owner != elem.owner: fn = att.owner.get_target_name() if fn is None: raise Warning(_("Couldn't find target file of %s") % att.owner) msg.attach_file(fn) uploads = dd.resolve_app("uploads") for up in uploads.UploadsByController.request(elem): #~ for up in uploads.Upload.objects.filter(owner=elem): fn = os.path.join(settings.MEDIA_ROOT, up.file.name) msg.attach_file(fn) num_sent = msg.send() elem.sent = timezone.now() kw.update(refresh=True) #~ msg = "Email %s from %s has been sent to %s." % ( #~ elem.id,elem.sender,', '.join([ #~ r.address for r in elem.recipient_set.all()])) msg = _( "Email %(id)s from %(sender)s has been sent to %(num)d recipients." ) % dict(id=elem.id, sender=sender, num=num_sent) kw.update(message=msg, alert=True) #~ for n in """EMAIL_HOST SERVER_EMAIL EMAIL_USE_TLS EMAIL_BACKEND""".split(): #~ msg += "\n" + n + " = " + unicode(getattr(settings,n)) logger.info(msg) if elem.owner: elem.owner.after_send_mail(elem, ar, kw) elem.save() ar.success(**kw)
import logging logger = logging.getLogger(__name__) from lino.utils.instantiator import Instantiator, i2d from lino.utils import Cycler from django.utils.translation import ugettext_lazy as _ from django.conf import settings from atelier.utils import date_offset from lino.api import dd, rt DEMO_REF_DATE = i2d(20140101) cal = dd.resolve_app('cal') courses = dd.resolve_app('courses') rooms = dd.resolve_app('rooms') Booking = dd.resolve_model('rooms.Booking') Room = dd.resolve_model('cal.Room') Event = dd.resolve_model('cal.Event') Partner = dd.resolve_model('contacts.Partner') Company = dd.resolve_model('contacts.Company') Teacher = dd.resolve_model('courses.Teacher') TeacherType = dd.resolve_model('courses.TeacherType') Pupil = dd.resolve_model('courses.Pupil') PupilType = dd.resolve_model('courses.PupilType') Enrolment = dd.resolve_model('courses.Enrolment') Course = dd.resolve_model('courses.Course') Product = dd.resolve_model('products.Product')
- a minimal accounts chart - some journals """ from __future__ import unicode_literals import logging logger = logging.getLogger(__name__) from django.conf import settings from lino.api import dd, rt, _ from lino_cosi.lib.accounts.utils import DEBIT, CREDIT accounts = dd.resolve_app('accounts') vat = dd.resolve_app('vat') sales = dd.resolve_app('sales') ledger = dd.resolve_app('ledger') finan = dd.resolve_app('finan') declarations = dd.resolve_app('declarations') #~ partners = dd.resolve_app('partners') def pcmnref(ref, pcmn): if settings.SITE.plugins.ledger.use_pcmn: return pcmn return ref CUSTOMERS_ACCOUNT = pcmnref('customers', '4000')
## Copyright 2013 Luc Saffre ## This file is part of the Lino project. from django.db import models from django.conf import settings from django.utils.translation import ugettext_lazy as _ from lino.api import dd from lino import mixins from lino.modlib.users.mixins import UserAuthored contacts = dd.resolve_app("contacts") class EntryType(mixins.BabelNamed): class Meta: verbose_name = _("Entry Type") verbose_name_plural = _("Entry Types") # ~ def after_ui_save(self,ar): # ~ CompaniesWithEntryTypes.setup_columns() class EntryTypes(dd.Table): model = EntryType class Entry(UserAuthored): class Meta: verbose_name = _("Entry")
# -*- coding: UTF-8 -*- # Copyright 2013-2016 Luc Saffre # License: BSD (see file COPYING for details) """ The :xfile:`models` module for :mod:`lino_book.projects.belref`. """ from lino.api import dd concepts = dd.resolve_app('concepts') class Main(concepts.TopLevelConcepts): pass @dd.receiver(dd.post_analyze) def my_details(sender, **kw): site = sender lst = (site.models.countries.Places, site.models.countries.Countries, site.models.concepts.Concepts) for t in lst: t.required_roles.discard(dd.SiteUser) t.required_roles.discard(dd.SiteStaff) site.models.countries.Places.set_detail_layout(""" name country inscode
from django.db import models from django.core.exceptions import ValidationError from lino_xl.lib.excerpts.mixins import Certifiable from lino_xl.lib.accounts.utils import DEBIT, CREDIT, ZERO from lino_xl.lib.accounts.fields import DebitOrCreditField from lino_xl.lib.ledger.mixins import VoucherItem, SequencedVoucherItem from lino_xl.lib.ledger.mixins import ProjectRelated, Matching from etgen.html import E from lino.api import dd, rt, _ from lino_xl.lib.ledger.choicelists import VoucherStates ledger = dd.resolve_app('ledger') class FinancialVoucher(ledger.Voucher, Certifiable): auto_compute_amount = False class Meta: abstract = True item_account = dd.ForeignKey( 'accounts.Account', verbose_name=_("Default account"), blank=True, null=True) item_remark = models.CharField( _("Your reference"), max_length=200, blank=True)
from .timloader1 import TimLoader Person = dd.resolve_model("contacts.Person") Company = dd.resolve_model("contacts.Company") Partner = dd.resolve_model("contacts.Partner") RoleType = dd.resolve_model("contacts.RoleType") Role = dd.resolve_model("contacts.Role") Household = dd.resolve_model('households.Household') Product = dd.resolve_model('products.Product') List = dd.resolve_model('lists.List') Member = dd.resolve_model('lists.Member') households_Member = dd.resolve_model('households.Member') Account = dd.resolve_model('accounts.Account') tickets = dd.resolve_app('tickets') working = dd.resolve_app('working') def ticket_state(idpns): if idpns == ' ': return tickets.TicketStates.new if idpns == 'A': return tickets.TicketStates.waiting if idpns == 'C': return tickets.TicketStates.fixed if idpns == 'X': return tickets.TicketStates.cancelled return tickets.TicketStates.new # return None # 20120829 tickets.TicketStates.blank_item
from django.core.exceptions import ValidationError # from lino.mixins.registrable import Registrable from lino.modlib.checkdata.choicelists import Checker from lino_xl.lib.excerpts.mixins import Certifiable from lino_xl.lib.ledger.utils import DEBIT, CREDIT, ZERO, MAX_AMOUNT from lino_xl.lib.ledger.models import DebitOrCreditField from lino_xl.lib.ledger.mixins import VoucherItem, SequencedVoucherItem from lino_xl.lib.ledger.mixins import ProjectRelated, Matching from etgen.html import E from lino.api import dd, rt, _ from lino_xl.lib.ledger.choicelists import VoucherStates ledger = dd.resolve_app('ledger') class FinancialVoucher(ledger.RegistrableVoucher, Certifiable): auto_compute_amount = False class Meta: abstract = True app_label = "finan" state = ledger.VoucherStates.field(default='draft') item_account = dd.ForeignKey( 'ledger.Account', verbose_name=_("Default account"), blank=True, null=True)
# Copyright 2009-2013 Luc Saffre # License: BSD (see file COPYING for details) import logging logger = logging.getLogger(__name__) from django import http from django.views.generic import View from lino.api import dd from lino.utils.xmlgen import html as xghtml E = xghtml.E pages = dd.resolve_app('pages') class PagesIndex(View): def get(self, request, ref='index'): if not ref: ref = 'index' #~ print 20121220, ref obj = pages.lookup(ref, None) if obj is None: raise http.Http404("Unknown page %r" % ref) html = pages.render_node(request, obj) return http.HttpResponse(html)
def add_system_note(request, owner, subject, body, **kw): """Create a system note.""" nt = owner.get_system_note_type(request) if not nt: return prj = owner.get_related_project() if prj: kw.update(project=prj) note = rt.modules.notes.Note(event_type=nt, owner=owner, subject=subject, body=body, user=request.user, **kw) # ~ owner.update_system_note(note) note.save() system = dd.resolve_app("system") def customize_siteconfig(): """ Injects application-specific fields to :class:`SiteConfig <lino.modlib.system.SiteConfig>`. """ dd.inject_field( "system.SiteConfig", "system_note_type", dd.ForeignKey( "notes.EventType", blank=True, null=True, verbose_name=_("Default system note type"), help_text=_(
# Copyright 2012 Rumma & Ko Ltd # License: BSD (see file COPYING for details) """ code changes must be documented in *one central place per developer*, not per module. """ import os import datetime from django.conf import settings from lino.utils import i2d, i2t from lino.utils.restify import restify, doc2rst from lino.api import dd, rt blogs = dd.resolve_app('blogs') tickets = dd.resolve_app('tickets') class Blogger(object): def __init__(self, user=None): self.objects_list = [] self.date = None self.user = user self.current_project = None def set_date(self, d): self.date = i2d(d) def set_project(self, project):
# -*- coding: UTF-8 -*- # Copyright 2009-2015 Rumma & Ko Ltd # License: BSD (see file COPYING for details) """Generates 20 fictive sales invoices, distributed over more than one month. """ from __future__ import unicode_literals from django.conf import settings from lino.utils import Cycler from lino.api import dd, rt vat = dd.resolve_app('vat') sales = dd.resolve_app('sales') ledger = dd.resolve_app('ledger') partner_model = settings.SITE.partners_app_label + '.Partner' Partner = dd.resolve_model(partner_model) REQUEST = settings.SITE.login() def objects(): if False: yield sales.InvoicingMode(**dd.babel_values( 'name', en='Default', de="Standard", fr="Standard")) if ledger: Invoice = dd.resolve_model('sales.VatProductInvoice')
def objects(): #~ dblogger.info("Installing countries few_cities fixture") countries = dd.resolve_app('countries') #~ Place = resolve_model('countries.Place') Place = countries.Place Country = countries.Country PlaceTypes = countries.PlaceTypes city = Instantiator(Place, 'name country').build def make_city(country_id, name=None, **kw): if False: # AFTER17: kw.setdefault('type', PlaceTypes.city.pk) if kw.get('type', False) and isinstance(kw.get('type', False), PlaceType): kw['type'] = kw['type'].pk else: kw.setdefault('type', PlaceTypes.city) flt = rt.lookup_filter('name', name, country__isocode=country_id, **kw) try: return Place.objects.get(flt) # return Place.objects.exclude(type__in=[ # PlaceTypes.county, PlaceTypes.province]).get(flt) except MultipleObjectsReturned: #~ qs = Place.objects.exclude(type=PlaceTypes.county).filter(country__isocode=country_id,name=name) raise Exception("Oops, there are multiple cities for %r", name) except Place.DoesNotExist: obj = city(name, country_id, **kw) obj.full_clean() obj.save() return obj BE = Country.objects.get(pk='BE') DE = Country.objects.get(pk='DE') FR = Country.objects.get(pk='FR') eupen = make_city('BE', 'Eupen', zip_code='4700') yield eupen yield make_city('BE', 'Nispert', type=PlaceTypes.township, parent=eupen) reuland = make_city('BE', 'Burg-Reuland ', zip_code='4790') yield make_city('BE', 'Ouren', type=PlaceTypes.township, parent=reuland) yield Place(country=BE, zip_code='4720', type=PlaceTypes.city, **dd.babel_values('name', de='Kelmis', fr='La Calamine', en="Kelmis", et="Kelmis")) yield make_city('BE', 'Kettenis', zip_code='4701', type=PlaceTypes.village) yield make_city('BE', 'Raeren', zip_code='4730', type=PlaceTypes.village) yield make_city('BE', 'Angleur', zip_code='4031') yield make_city('BE', 'Ans', zip_code='4430') yield make_city('BE', 'Ottignies', zip_code='1340') yield make_city('BE', 'Thieusies', zip_code='7061') yield make_city('BE', 'Cuesmes', zip_code='7033') yield make_city('BE', 'La Reid', zip_code='4910') yield make_city('BE', 'Blégny ', zip_code='4670') yield make_city('BE', 'Trembleur ', zip_code='4670') yield make_city('BE', 'Mortier ', zip_code='4670') yield make_city('BE', 'Cerfontaine', zip_code='5630') yield make_city('BE', 'Burdinne', zip_code='4210') def be_province(de, fr, nl): if False: # AFTER17: p = Place(country=BE, type=PlaceTypes.province.pk, **dd.babel_values('name', de=de, fr=fr, nl=nl, en=fr, et=fr)) else: p = Place(country=BE, type=PlaceTypes.province, **dd.babel_values('name', de=de, fr=fr, nl=nl, en=fr, et=fr)) return p def be_city(zip_code, de=None, fr=None, nl=None, en=None, **kw): kw.update(dd.babel_values('name', de=de, fr=fr, nl=nl, en=en, et=en)) if False: # AFTER17: kw.setdefault('type', PlaceTypes.city.pk) if kw.get('type', False) and isinstance(kw.get('type', False), PlaceType): kw['type'] = kw['type'].pk else: kw.setdefault('type', PlaceTypes.city) return Place(country=BE, zip_code=zip_code, **kw) yield be_province("Antwerpen", "Anvers", "Antwerpen") yield be_province("Luxemburg", "Luxembourg", "Luxemburg") yield be_province("Namür", "Namur", "Namen") prov = be_province("Limburg", "Limbourg", "Limburg") yield prov yield make_city('BE', 'Aalst-bij-Sint-Truiden', zip_code='3800', parent=prov, type=PlaceTypes.village) prov = be_province("Lüttich", "Liège", "Luik") yield prov yield be_city('4000', "Lüttich", "Liège", "Luik", "Liège", parent=prov) yield be_city('4750', "Bütgenbach", "Butgenbach", "Butgenbach", "Butgenbach", parent=prov) yield be_city('4760', "Büllingen", "Bullange", "Büllingen", "Büllingen", parent=prov) yield be_city('4780', "Sankt Vith", "Saint-Vith", "Sankt Vith", "Sankt Vith", parent=prov) yield be_city('4780', "Recht", "Recht", "Recht", "Recht", parent=prov) yield be_city('4837', "Baelen", "Baelen", "Baelen", "Baelen", parent=prov) yield be_province("Hennegau", "Hainaut", "Henegouwen") yield be_province("Wallonisch-Brabant", "Brabant wallon", "Waals-Brabant") yield be_province("Flämisch-Brabant", "Brabant flamant", "Vlaams-Brabant") prov = be_province("Ostflandern", "Flandre de l'Est", "Oost-Vlaanderen") yield prov aalst = be_city('9300', "Aalst", "Alost", "Aalst", "Aalst", parent=prov) yield aalst yield be_city('9308', name="Gijzegem", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Baardegem", parent=aalst, type=PlaceTypes.village) yield be_city('9320', name="Erembodegem", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Herdersem", parent=aalst, type=PlaceTypes.village) yield be_city('9308', name="Hofstade", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Meldert", parent=aalst, type=PlaceTypes.village) yield be_city('9320', name="Nieuwerkerken", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Moorsel", parent=aalst, type=PlaceTypes.village) yield be_province("Westflandern", "Flandre de l'Ouest", "West-Vlaanderen") yield be_city('1000', "Brüssel", "Bruxelles", "Brussel", "Brussels") yield be_city('7000', "Bergen", "Mons", "Bergen", "Mons") yield be_city('8400', "Ostende", "Ostende", "Oostende", "Ostende") yield be_city('5000', "Namür", "Namur", "Namen", "Namur") harjumaa = make_city('EE', 'Harju', type=PlaceTypes.county) yield harjumaa parnumaa = make_city('EE', 'Pärnu', type=PlaceTypes.county) yield parnumaa raplamaa = make_city('EE', 'Rapla', type=PlaceTypes.county) yield raplamaa yield make_city('EE', 'Vigala', type=PlaceTypes.municipality, parent=raplamaa) yield make_city('EE', 'Rapla', type=PlaceTypes.town, parent=raplamaa) tallinn = make_city('EE', 'Tallinn', type=PlaceTypes.town, parent=harjumaa) yield tallinn yield make_city('EE', 'Kesklinn', type=PlaceTypes.township, parent=tallinn) yield make_city('EE', 'Põhja-Tallinn', type=PlaceTypes.township, parent=tallinn) yield make_city('EE', 'Pärnu', type=PlaceTypes.town, parent=parnumaa) yield make_city('EE', 'Tartu', type=PlaceTypes.town) yield make_city('EE', 'Narva', type=PlaceTypes.town) yield make_city('EE', 'Ääsmäe', type=PlaceTypes.town, parent=harjumaa) #~ yield make_city(u'Aachen','DE') yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='Aachen', fr='Aix-la-Chapelle', nl="Aken", en="Aachen", et="Aachen")) yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='Köln', fr='Cologne', nl="Keulen", en="Cologne", et="Köln")) yield make_city('DE', 'Berlin') yield make_city('DE', 'Hamburg') yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='München', fr='Munich', en="Munich", et="München")) yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='Monschau', fr='Montjoie', en="Monschau", et="Monschau")) yield make_city('NL', 'Maastricht') yield make_city('NL', 'Amsterdam') yield make_city('NL', 'Den Haag') yield make_city('NL', 'Rotterdam') yield make_city('NL', 'Utrecht') yield make_city('NL', 'Breda') yield Place(country=FR, type=PlaceTypes.city, **dd.babel_values('name', de='Paris', fr='Paris', en="Paris", et="Pariis", nl="Parijs")) yield Place(country=FR, type=PlaceTypes.city, **dd.babel_values('name', de='Nizza', fr='Nice', en="Nice", et="Nizza")) yield make_city('FR', 'Metz') yield make_city('FR', 'Strasbourg') yield make_city('FR', 'Nancy') yield make_city('FR', 'Marseille')
from django.conf import settings #~ from django.contrib.auth import models as auth from django.core.exceptions import ValidationError from django.utils.translation import ugettext_lazy as _ from lino.api import dd, rt #~ from lino import reports from lino.core import actions from lino import mixins from lino.utils import mti #~ from lino.utils.quantities import Duration from lino_xl.lib.vat.mixins import myround contacts = dd.resolve_app('contacts') accounts = dd.resolve_app('accounts') ledger = dd.resolve_app('ledger') vat = dd.resolve_app('vat') products = dd.resolve_app('products') sales = dd.resolve_app('sales') class OrderStates(dd.Workflow): pass add = OrderStates.add_item add('10', _("Draft"), 'draft', editable=True) add('20', _("Registered"), 'registered', editable=False) add('30', _("Inactive"), 'inactive', editable=False)
from lino.utils.choosers import chooser # from lino.utils import ssin from lino import mixins from django.conf import settings from lino_xl.lib.cal.choicelists import amonthago from lino_xl.lib.notes.actions import NotableAction from lino.modlib.users.choicelists import UserTypes from lino.modlib.users.mixins import ByUser, UserAuthored from lino.core.diff import ChangeWatcher from lino_welfare.modlib.pcsw.roles import SocialStaff, SocialAgent # from lino_welfare.modlib.integ.roles import IntegrationAgent from .roles import NewcomersAgent, NewcomersOperator users = dd.resolve_app('users') pcsw = dd.resolve_app('pcsw', strict=True) WORKLOAD_BASE = decimal.Decimal('10') # normal number of newcomers per month MAX_WEIGHT = decimal.Decimal('10') HUNDRED = decimal.Decimal('100.0') @dd.python_2_unicode_compatible class Broker(dd.Model): """A Broker (Vermittler) is an external institution who suggests newcomers. """ class Meta: verbose_name = _("Broker")
from lino.utils import mti from lino.api import dd, rt from .timloader1 import TimLoader Person = dd.resolve_model("contacts.Person") Company = dd.resolve_model("contacts.Company") RoleType = dd.resolve_model("contacts.RoleType") Role = dd.resolve_model("contacts.Role") Household = dd.resolve_model('households.Household') Product = dd.resolve_model('products.Product') List = dd.resolve_model('lists.List') Account = dd.resolve_model('accounts.Account') clocking = dd.resolve_app('clocking') User = rt.models.users.User UserTypes = rt.models.users.UserTypes Partner = rt.models.contacts.Partner lists_Member = rt.models.lists.Member households_Member = rt.models.households.Member Link = rt.models.humanlinks.Link LinkTypes = rt.models.humanlinks.LinkTypes households_MemberRoles = rt.models.households.MemberRoles from lino.utils.instantiator import create class TimLoader(TimLoader):
Company = dd.resolve_model("contacts.Company") RoleType = dd.resolve_model("contacts.RoleType") Role = dd.resolve_model("contacts.Role") Household = rt.models.households.Household Product = dd.resolve_model('products.Product') # List = dd.resolve_model('lists.List') Client = rt.models.tera.Client Course = rt.models.courses.Course Line = rt.models.courses.Line CourseAreas = rt.models.courses.CourseAreas Course = rt.models.courses.Course Enrolment = rt.models.courses.Enrolment Event = rt.models.cal.Event Account = dd.resolve_model('ledger.Account') working = dd.resolve_app('working') User = rt.models.users.User Note = rt.models.notes.Note UserTypes = rt.models.users.UserTypes Partner = rt.models.contacts.Partner # Coaching = rt.models.coachings.Coaching # lists_Member = rt.models.lists.Member households_Member = rt.models.households.Member households_MemberRoles = rt.models.households.MemberRoles class TimLoader(TimLoader): # archived_tables = set('GEN ART VEN VNL JNL FIN FNL'.split())
def add_system_note(request, owner, subject, body, **kw): """Create a system note.""" nt = owner.get_system_note_type(request) if not nt: return prj = owner.get_related_project() if prj: kw.update(project=prj) note = rt.modules.notes.Note( event_type=nt, owner=owner, subject=subject, body=body, user=request.user, **kw) #~ owner.update_system_note(note) note.save() system = dd.resolve_app('system') def customize_siteconfig(): """ Injects application-specific fields to :class:`SiteConfig <lino.modlib.system.SiteConfig>`. """ dd.inject_field( 'system.SiteConfig', 'system_note_type', dd.ForeignKey( 'notes.EventType', blank=True, null=True, verbose_name=_("Default system note type"), help_text=_("""\ Note Type used by system notes.
from django.db import models from django.db.models import Q from django.conf import settings from django.utils.translation import ugettext_lazy as _ from django.utils import timezone from django.contrib.humanize.templatetags.humanize import naturaltime from lino.modlib.users.mixins import My from etgen.html import E from lino.utils import join_elems from lino.api import dd, rt cal = dd.resolve_app('cal') system = dd.resolve_app('system') from lino_xl.lib.cal.choicelists import GuestStates, EntryStates from lino.modlib.notify.actions import NotifyingAction from lino.modlib.office.roles import OfficeUser, OfficeOperator from lino.modlib.notify.choicelists import MessageTypes MessageTypes.add_item('reception', dd.plugins.reception.verbose_name) # Before adding new GuestStates, make sure that # `lino_xl.lib.cal.workflows.feedback` has been imported because this # will clear GuestStates import lino_xl.lib.cal.workflows.feedback
# # License: BSD (see file COPYING for details) import logging logger = logging.getLogger(__name__) from django import http from django.views.generic import View from lino.api import dd from lino.utils.xmlgen import html as xghtml E = xghtml.E pages = dd.resolve_app('pages') class PagesIndex(View): def get(self, request, ref='index'): if not ref: ref = 'index' #~ print 20121220, ref obj = pages.lookup(ref, None) if obj is None: raise http.Http404("Unknown page %r" % ref) html = pages.render_node(request, obj) return http.HttpResponse(html)
from __future__ import unicode_literals import logging logger = logging.getLogger(__name__) import datetime from dateutil.relativedelta import relativedelta as delta from django.conf import settings from lino.utils import Cycler from lino.api import dd, rt from lino_cosi.lib.vat.mixins import myround vat = dd.resolve_app('vat') sales = dd.resolve_app('sales') # from lino.core.requests import BaseRequest REQUEST = settings.SITE.login() # BaseRequest() def objects(): Journal = rt.models.ledger.Journal Person = rt.models.contacts.Person Product = rt.models.products.Product USERS = Cycler(settings.SITE.user_model.objects.all())
from lino import mixins from lino.core.roles import Explorer from lino.utils import join_elems from etgen.html import E from lino.utils.mti import get_child from lino.utils.report import Report from lino.modlib.system.choicelists import PeriodEvents from lino.modlib.users.mixins import My from .choicelists import EnrolmentStates, CourseStates, CourseAreas from .roles import CoursesUser, CoursesTeacher cal = dd.resolve_app('cal') try: teacher_model = dd.plugins.courses.teacher_model teacher_label = dd.plugins.courses.teacher_label pupil_model = dd.plugins.courses.pupil_model except AttributeError: # Happens only when Sphinx autodoc imports it and this module is # not installed. teacher_label = _("Instructor") teacher_model = 'foo.Bar' pupil_model = 'foo.Bar' FILL_EVENT_GUESTS = False
from lino_xl.lib.excerpts.mixins import Certifiable from lino_xl.lib.excerpts.mixins import ExcerptTitle from lino.modlib.users.mixins import UserAuthored from lino.modlib.printing.mixins import Printable # from lino.modlib.printing.utils import PrintableObject from lino_xl.lib.cal.mixins import Reservation from lino_xl.lib.cal.choicelists import Recurrencies from lino_xl.lib.cal.utils import day_and_month from lino_xl.lib.contacts.mixins import ContactRelated from lino.utils.dates import DateRangeValue from .choicelists import EnrolmentStates, CourseStates, CourseAreas from .actions import PrintPresenceSheet cal = dd.resolve_app('cal') try: teacher_model = dd.plugins.courses.teacher_model teacher_label = dd.plugins.courses.teacher_label pupil_model = dd.plugins.courses.pupil_model pupil_name_fields = dd.plugins.courses.pupil_name_fields except AttributeError: # Happens only when Sphinx autodoc imports it and this module is # not installed. teacher_label = _("Instructor") teacher_model = 'foo.Bar' pupil_model = 'foo.Bar' pupil_name_fields = 'foo bar' FILL_EVENT_GUESTS = False
# Activity = dd.resolve_model('pcsw.Activity') Country = dd.resolve_model('countries.Country') Place = dd.resolve_model('countries.Place') Person = dd.resolve_model("contacts.Person") Company = dd.resolve_model("contacts.Company") # Account = dd.resolve_model('accounts.Account') Account = rt.modules.accounts.Account Group = dd.resolve_model('accounts.Group') Journal = dd.resolve_model('ledger.Journal') Movement = dd.resolve_model('ledger.Movement') # potentially UnresolvedModel: Household = dd.resolve_model('households.Household') List = dd.resolve_model('lists.List') if True: users = dd.resolve_app('users') households = dd.resolve_app('households') vat = dd.resolve_app('vat') sales = dd.resolve_app('sales') ledger = dd.resolve_app('ledger') accounts = dd.resolve_app('accounts') products = dd.resolve_app('products') contacts = dd.resolve_app('contacts') finan = dd.resolve_app('finan') sepa = dd.resolve_app('sepa') lists = dd.resolve_app('lists') VatRule = rt.modules.vat.VatRule # def convert_username(name): # return name.lower()
from __future__ import unicode_literals import logging logger = logging.getLogger(__name__) import datetime from dateutil.relativedelta import relativedelta as delta from decimal import Decimal from django.conf import settings from lino.utils import Cycler from lino.api import dd, rt finan = dd.resolve_app('finan') REQUEST = settings.SITE.login() # BaseRequest() MORE_THAN_A_MONTH = datetime.timedelta(days=40) # most payments are arriving as suggested, i.e. the customer pays the # full ammount. But there are exceptions: 5% discount taken at # payment, no payment a t all, partly payments of 70%, or (very # accidentally) 2% too much. PAYMENT_DIFFS = [None] * 4 PAYMENT_DIFFS += [-0.05] PAYMENT_DIFFS += [None] * 3 PAYMENT_DIFFS += [-1.00] PAYMENT_DIFFS += [None] * 2 PAYMENT_DIFFS += [-0.30]
def objects(): #~ dblogger.info("Installing countries few_cities fixture") countries = dd.resolve_app('countries') #~ Place = resolve_model('countries.Place') Place = countries.Place Country = countries.Country PlaceTypes = countries.PlaceTypes city = Instantiator(Place, 'name country').build def make_city(country_id, name=None, **kw): if False: # AFTER17: kw.setdefault('type', PlaceTypes.city.pk) if kw.get('type',False) and isinstance(kw.get('type',False),PlaceType): kw['type'] = kw['type'].pk else: kw.setdefault('type', PlaceTypes.city) flt = rt.lookup_filter( 'name', name, country__isocode=country_id, **kw) try: return Place.objects.get(flt) # return Place.objects.exclude(type__in=[ # PlaceTypes.county, PlaceTypes.province]).get(flt) except MultipleObjectsReturned: #~ qs = Place.objects.exclude(type=PlaceTypes.county).filter(country__isocode=country_id,name=name) raise Exception("Oops, there are multiple cities for %r", name) except Place.DoesNotExist: obj = city(name, country_id, **kw) obj.full_clean() obj.save() return obj BE = Country.objects.get(pk='BE') DE = Country.objects.get(pk='DE') FR = Country.objects.get(pk='FR') eupen = make_city('BE', 'Eupen', zip_code='4700') yield eupen yield make_city('BE', 'Nispert', type=PlaceTypes.township, parent=eupen) reuland = make_city('BE', 'Burg-Reuland ', zip_code='4790') yield make_city('BE', 'Ouren', type=PlaceTypes.township, parent=reuland) yield Place(country=BE, zip_code='4720', type=PlaceTypes.city, **dd.babel_values('name', de='Kelmis', fr='La Calamine', en="Kelmis", et="Kelmis")) yield make_city('BE', 'Kettenis', zip_code='4701', type=PlaceTypes.village) yield make_city('BE', 'Raeren', zip_code='4730', type=PlaceTypes.village) yield make_city('BE', 'Angleur', zip_code='4031') yield make_city('BE', 'Ans', zip_code='4430') yield make_city('BE', 'Ottignies', zip_code='1340') yield make_city('BE', 'Thieusies', zip_code='7061') yield make_city('BE', 'Cuesmes', zip_code='7033') yield make_city('BE', 'La Reid', zip_code='4910') yield make_city('BE', 'Blégny ', zip_code='4670') yield make_city('BE', 'Trembleur ', zip_code='4670') yield make_city('BE', 'Mortier ', zip_code='4670') yield make_city('BE', 'Cerfontaine', zip_code='5630') yield make_city('BE', 'Burdinne', zip_code='4210') def be_province(de, fr, nl): if False: # AFTER17: p = Place( country=BE, type=PlaceTypes.province.pk, **dd.babel_values('name', de=de, fr=fr, nl=nl, en=fr, et=fr)) else: p = Place( country=BE, type=PlaceTypes.province, **dd.babel_values('name', de=de, fr=fr, nl=nl, en=fr, et=fr)) return p def be_city(zip_code, de=None, fr=None, nl=None, en=None, **kw): kw.update(dd.babel_values('name', de=de, fr=fr, nl=nl, en=en, et=en)) if False: # AFTER17: kw.setdefault('type', PlaceTypes.city.pk) if kw.get('type',False) and isinstance(kw.get('type',False),PlaceType): kw['type'] = kw['type'].pk else: kw.setdefault('type', PlaceTypes.city) return Place(country=BE, zip_code=zip_code, **kw) yield be_province("Antwerpen", "Anvers", "Antwerpen") yield be_province("Luxemburg", "Luxembourg", "Luxemburg") yield be_province("Namür", "Namur", "Namen") prov = be_province("Limburg", "Limbourg", "Limburg") yield prov yield make_city('BE', 'Aalst-bij-Sint-Truiden', zip_code='3800', parent=prov, type=PlaceTypes.village) prov = be_province("Lüttich", "Liège", "Luik") yield prov yield be_city('4000', "Lüttich", "Liège", "Luik", "Liège", parent=prov) yield be_city('4750', "Bütgenbach", "Butgenbach", "Butgenbach", "Butgenbach", parent=prov) yield be_city('4760', "Büllingen", "Bullange", "Büllingen", "Büllingen", parent=prov) yield be_city('4780', "Sankt Vith", "Saint-Vith", "Sankt Vith", "Sankt Vith", parent=prov) yield be_city('4780', "Recht", "Recht", "Recht", "Recht", parent=prov) yield be_city('4837', "Baelen", "Baelen", "Baelen", "Baelen", parent=prov) yield be_province("Hennegau", "Hainaut", "Henegouwen") yield be_province("Wallonisch-Brabant", "Brabant wallon", "Waals-Brabant") yield be_province("Flämisch-Brabant", "Brabant flamant", "Vlaams-Brabant") prov = be_province("Ostflandern", "Flandre de l'Est", "Oost-Vlaanderen") yield prov aalst = be_city('9300', "Aalst", "Alost", "Aalst", "Aalst", parent=prov) yield aalst yield be_city('9308', name="Gijzegem", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Baardegem", parent=aalst, type=PlaceTypes.village) yield be_city('9320', name="Erembodegem", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Herdersem", parent=aalst, type=PlaceTypes.village) yield be_city('9308', name="Hofstade", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Meldert", parent=aalst, type=PlaceTypes.village) yield be_city('9320', name="Nieuwerkerken", parent=aalst, type=PlaceTypes.village) yield be_city('9310', name="Moorsel", parent=aalst, type=PlaceTypes.village) yield be_province("Westflandern", "Flandre de l'Ouest", "West-Vlaanderen") yield be_city('1000', "Brüssel", "Bruxelles", "Brussel", "Brussels") yield be_city('7000', "Bergen", "Mons", "Bergen", "Mons") yield be_city('8400', "Ostende", "Ostende", "Oostende", "Ostende") yield be_city('5000', "Namür", "Namur", "Namen", "Namur") harjumaa = make_city('EE', 'Harju', type=PlaceTypes.county) yield harjumaa parnumaa = make_city('EE', 'Pärnu', type=PlaceTypes.county) yield parnumaa raplamaa = make_city('EE', 'Rapla', type=PlaceTypes.county) yield raplamaa yield make_city('EE', 'Vigala', type=PlaceTypes.municipality, parent=raplamaa) yield make_city('EE', 'Rapla', type=PlaceTypes.town, parent=raplamaa) tallinn = make_city('EE', 'Tallinn', type=PlaceTypes.town, parent=harjumaa) yield tallinn yield make_city('EE', 'Kesklinn', type=PlaceTypes.township, parent=tallinn) yield make_city('EE', 'Põhja-Tallinn', type=PlaceTypes.township, parent=tallinn) yield make_city('EE', 'Pärnu', type=PlaceTypes.town, parent=parnumaa) yield make_city('EE', 'Tartu', type=PlaceTypes.town) yield make_city('EE', 'Narva', type=PlaceTypes.town) yield make_city('EE', 'Ääsmäe', type=PlaceTypes.town, parent=harjumaa) #~ yield make_city(u'Aachen','DE') yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='Aachen', fr='Aix-la-Chapelle', nl="Aken", en="Aachen", et="Aachen")) yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='Köln', fr='Cologne', nl="Keulen", en="Cologne", et="Köln")) yield make_city('DE', 'Berlin') yield make_city('DE', 'Hamburg') yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='München', fr='Munich', en="Munich", et="München")) yield Place(country=DE, type=PlaceTypes.city, **dd.babel_values('name', de='Monschau', fr='Montjoie', en="Monschau", et="Monschau")) yield make_city('NL', 'Maastricht') yield make_city('NL', 'Amsterdam') yield make_city('NL', 'Den Haag') yield make_city('NL', 'Rotterdam') yield make_city('NL', 'Utrecht') yield make_city('NL', 'Breda') yield Place(country=FR, type=PlaceTypes.city, **dd.babel_values('name', de='Paris', fr='Paris', en="Paris", et="Pariis", nl="Parijs")) yield Place(country=FR, type=PlaceTypes.city, **dd.babel_values('name', de='Nizza', fr='Nice', en="Nice", et="Nizza")) yield make_city('FR', 'Metz') yield make_city('FR', 'Strasbourg') yield make_city('FR', 'Nancy') yield make_city('FR', 'Marseille')
from builtins import str import logging logger = logging.getLogger(__name__) from lino.utils.instantiator import Instantiator, i2d from lino.utils import Cycler from django.utils.translation import ugettext_lazy as _ from django.conf import settings from lino.utils import date_offset from lino.api import dd, rt DEMO_REF_DATE = i2d(20140101) cal = dd.resolve_app('cal') courses = dd.resolve_app('courses') rooms = dd.resolve_app('rooms') Booking = dd.resolve_model('rooms.Booking') Room = dd.resolve_model('cal.Room') Event = dd.resolve_model('cal.Event') Partner = dd.resolve_model('contacts.Partner') Company = dd.resolve_model('contacts.Company') Teacher = dd.resolve_model('courses.Teacher') TeacherType = dd.resolve_model('courses.TeacherType') Pupil = dd.resolve_model('courses.Pupil') PupilType = dd.resolve_model('courses.PupilType') Enrolment = dd.resolve_model('courses.Enrolment') Course = dd.resolve_model('courses.Course') Product = dd.resolve_model('products.Product')
def card2client(cls, data): "does the actual conversion" self = cls from lino.utils import ssin from lino.api import dd, rt from lino.mixins.beid import BeIdCardTypes from lino.utils import join_words from lino.utils import IncompleteDate from lino_xl.lib.contacts.utils import street2kw countries = dd.resolve_app('countries', strict=True) kw = dict() #~ def func(fldname,qname): #~ kw[fldname] = data[qname] kw.update(national_id=ssin.format_ssin(data['nationalNumber'])) kw.update(first_name=join_words( data['firstName1'], data['firstName2'], data['firstName3'])) #~ func('first_name','firstName1') kw.update(last_name=data['surname']) card_number = data['cardNumber'] if 'picture' in data: fn = self.card_number_to_picture_file(card_number) if os.path.exists(fn): logger.warning("Overwriting existing image file %s.", fn) fp = file(fn, 'wb') fp.write(base64.b64decode(data['picture'])) fp.close() #~ print 20121117, repr(data['picture']) #~ kw.update(picture_data_encoded=data['picture']) #~ func('card_valid_from','validityBeginDate') #~ func('card_valid_until','validityEndDate') #~ func('birth_date','birthDate') kw.update(birth_date=IncompleteDate( *settings.SITE.parse_date(data['birthDate']))) kw.update(card_valid_from=datetime.date( *settings.SITE.parse_date(data['validityBeginDate']))) kw.update(card_valid_until=datetime.date( *settings.SITE.parse_date(data['validityEndDate']))) kw.update(card_number=card_number) kw.update(card_issuer=data['issuingMunicipality']) kw.update(noble_condition=data['nobleCondition']) kw.update(street=data['street']) kw.update(street_no=data['streetNumber']) kw.update(street_box=data['boxNumber']) if kw['street'] and not (kw['street_no'] or kw['street_box']): kw = street2kw(kw['street'], **kw) kw.update(zip_code=data['zipCode']) kw.update(birth_place=data['birthLocation']) pk = data['country'].upper() msg1 = "BeIdReadCardToClientAction %s" % kw.get('national_id') #~ try: country = countries.Country.objects.get(isocode=pk) kw.update(country=country) #~ except countries.Country.DoesNotExist,e: #~ except Exception,e: #~ logger.warning("%s : no country with code %r",msg1,pk) #~ BE = countries.Country.objects.get(isocode='BE') #~ fld = countries.Place._meta.get_field() kw.update(city=countries.Place.lookup_or_create( 'name', data['municipality'], country=country)) def sex2gender(sex): if sex == 'M': return dd.Genders.male if sex in 'FVW': return dd.Genders.female logger.warning("%s : invalid gender code %r", msg1, sex) kw.update(gender=sex2gender(data['sex'])) if False: def nationality2country(nationality): try: return countries.Country.objects.get( nationalities__icontains=nationality) except countries.Country.DoesNotExist, e: logger.warning("%s : no country for nationality %r", msg1, nationality) except MultipleObjectsReturned, e: logger.warning( "%s : found more than one country for nationality %r", msg1, nationality)
""" from __future__ import unicode_literals import logging logger = logging.getLogger(__name__) from django.db import models from django.conf import settings from django.utils.translation import ugettext_lazy as _ from lino.api import dd, rt from lino.core.roles import SiteStaff from lino_xl.lib.contacts.roles import ContactsStaff households = dd.resolve_app('households') #~ cal = dd.resolve_app('cal') properties = dd.resolve_app('properties') countries = dd.resolve_app('countries') contacts = dd.resolve_app('contacts') cv = dd.resolve_app('cv') # uploads = dd.resolve_app('uploads') users = dd.resolve_app('users') isip = dd.resolve_app('isip') jobs = dd.resolve_app('jobs') pcsw = dd.resolve_app('pcsw') courses = dd.resolve_app('courses') #~ from lino_welfare.modlib.isip import models as isip #~ newcomers = dd.resolve_app('newcomers')
from lino.api import dd from lino import mixins from lino.modlib.comments.mixins import Commentable from lino.utils import AttrDict from etgen.html import E def headertag(level): tagname = "h" + str(level) return getattr(E, tagname) #~ contacts = dd.resolve_app('contacts') #~ countries = dd.resolve_app('countries') languages = dd.resolve_app('languages') #~ class Book(dd.Choice): #~ abbr = dd.BabelCharField(_("Abbreviation"),max_length=20) #~ #~ class Books(dd.ChoiceList): #~ #~ verbose_name = _("Book") #~ verbose_name_plural = _("Books") #~ item_class = Book #~ #~ @classmethod #~ def add_item(cls,value,text,ref,abbr): #~ super(Books,cls).add_item(value,text,ref,abbr=abbr) #~
def objects(): Person = dd.resolve_model(dd.apps.humanlinks.person_model) Link = rt.modules.humanlinks.Link LinkTypes = rt.modules.humanlinks.LinkTypes ar = rt.login() households = dd.resolve_app('households') if households: married = households.Type.objects.get( **dd.str2kw('name', _("Married"))) divorced = households.Type.objects.get( **dd.str2kw('name', _("Divorced"))) ig = InstanceGenerator() ig.add_instantiator( 'person', Person, 'first_name last_name gender birth_date') ig.add_instantiator( 'link', Link, 'parent child type') NAME1 = "Frisch" opa = ig.person("Hubert", NAME1, 'M', '1933-07-21') oma = ig.person("Gaby", "Frogemuth", 'F', '1934-08-04') P = ig.person("Paul", NAME1, 'M', '1967-06-19') L = ig.person("Ludwig", NAME1, 'M', '1968-06-01') A = ig.person("Alice", NAME1, 'F', '1969-12-19') B = ig.person("Bernd", NAME1, 'M', '1971-09-10') P1 = ig.person("Paula", "Einzig", 'F', '1968-12-19') P1A = ig.person("Peter", NAME1, 'M', '1987-06-19') P2 = ig.person("Petra", "Zweith", 'F', '1968-12-19') P2A = ig.person("Philippe", NAME1, 'M', '1997-06-19') P2B = ig.person("Clara", NAME1, 'F', '1999-06-19') P3 = ig.person("Dora", "Drosson", 'F', '1971-12-19') P3A = ig.person("Dennis", NAME1, 'M', '2001-06-19') L1 = ig.person("Laura", "Loslever", 'F', '1968-04-27') L1A = ig.person("Melba", NAME1, 'F', '2002-04-05') L1B = ig.person("Irma", NAME1, 'F', '2008-03-24') yield ig.flush() ig.link(opa, oma, LinkTypes.spouse) for i in (P, L, A, B): ig.link(opa, i, LinkTypes.parent) ig.link(oma, i, LinkTypes.parent) ig.link(P, P1A, LinkTypes.parent) ig.link(P1, P1A, LinkTypes.parent) ig.link(P, P2A, LinkTypes.parent) ig.link(P2, P2A, LinkTypes.parent) ig.link(P, P2B, LinkTypes.parent) ig.link(P2, P2B, LinkTypes.parent) ig.link(P, P3A, LinkTypes.parent) ig.link(P3, P3A, LinkTypes.parent) ig.link(P, P2, LinkTypes.spouse) ig.link(L, L1, LinkTypes.spouse) for i in (L1A, L1B): ig.link(L, i, LinkTypes.parent) ig.link(L1, i, LinkTypes.parent) yield ig.flush() if households: households.Household.create_household(ar, opa, oma, married) households.Household.create_household(ar, P, P1, divorced) hh = households.Household.create_household(ar, P, P2, married) hh.members_by_role('head')[0].set_primary(ar) hh.members_by_role('partner')[0].set_primary(ar) households.Household.create_household(ar, L, L1, married) A = ig.person("Albert", "Adam", 'M', '1973-07-21') B = ig.person("Bruno", "Braun", 'M', '1973-07-22') E = ig.person("Eveline", "Evrard", 'F', '1974-08-21') F = ig.person("Françoise", "Freisen", 'F', '1974-08-22') I = ig.person("Ilja", "Adam", 'M', '1994-08-22') J = ig.person("Jan", "Braun", 'M', '1996-08-22') K = ig.person("Kevin", "Braun", 'M', '1998-08-22') L = ig.person("Lars", "Braun", 'M', '1998-08-22') M = ig.person("Monique", "Braun", 'F', '2000-08-22') N = ig.person("Noémie", "Adam", 'F', '2002-08-22') O = ig.person("Odette", "Adam", 'F', '2004-08-22') P = ig.person("Pascale", "Adam", 'F', '2004-08-22') yield ig.flush() ig.link(A, I, LinkTypes.parent) ig.link(A, N, LinkTypes.parent) ig.link(A, O, LinkTypes.parent) ig.link(A, P, LinkTypes.parent) ig.link(B, J, LinkTypes.parent) ig.link(B, K, LinkTypes.parent) ig.link(B, L, LinkTypes.parent) ig.link(B, M, LinkTypes.parent) ig.link(E, I, LinkTypes.parent) ig.link(E, J, LinkTypes.parent) ig.link(E, K, LinkTypes.parent) ig.link(E, L, LinkTypes.parent) ig.link(F, M, LinkTypes.parent) ig.link(F, N, LinkTypes.parent) ig.link(F, O, LinkTypes.parent) ig.link(F, P, LinkTypes.parent) ig.link(A, F, LinkTypes.spouse) ig.link(B, E, LinkTypes.spouse) yield ig.flush() if households: households.Household.create_household(ar, A, E, married) households.Household.create_household(ar, A, F, divorced) households.Household.create_household(ar, B, E, divorced) households.Household.create_household(ar, B, F, married)
""" Creates more journals specific to pronto """ from __future__ import unicode_literals from lino.api import dd, rt, _ from lino_xl.lib.ledger.utils import DC # from lino_xl.lib.ledger import choicelists as pcmn from lino_xl.lib.ledger.choicelists import CommonAccounts # from lino.utils import Cycler # accounts = dd.resolve_app('accounts') vat = dd.resolve_app('vat') sales = dd.resolve_app('sales') ledger = dd.resolve_app('ledger') finan = dd.resolve_app('finan') bevat = dd.resolve_app('bevat') bevats = dd.resolve_app('bevats') # ~ partners = dd.resolve_app('partners') def objects(): JournalGroups = rt.models.ledger.JournalGroups Company = rt.models.contacts.Company # JOURNALS
"CODE2":"","CODE3":"","DATCREA":{"__date__":{"year":1998,"month":11,"day":17}}, "ALLO":"Eheleute","NB1":"","NB2":"","IDDEV":"","MEMO":"","COMPTE2":"","RUENUM":" 24","RUEBTE":"", "DEBIT2":"","CREDIT2":"","IMPDATE":{"__date__":{"year":1999,"month":8,"day":9}}, "ATTRIB2":"","CPTSYSI":"","EMAIL":"", "MVIDATE":{"__date__":{"year":0,"month":0,"day":0}},"IDUSR":"","DOMI1":""}} """ User = dd.resolve_model('users.User') Partner = dd.resolve_model('contacts.Partner') Company = dd.resolve_model('contacts.Company') Person = dd.resolve_model('contacts.Person') Client = dd.resolve_model('pcsw.Client') Coaching = dd.resolve_model('coachings.Coaching') Household = dd.resolve_model('households.Household') households_Type = dd.resolve_model("households.Type") pcsw = dd.resolve_app("pcsw") isip = dd.resolve_app("isip") from lino_welfare.modlib.isip import models as isip class TestCase(TestCase): maxDiff = None def test00(self): ASD = rt.models.coachings.CoachingType(id=isip.COACHINGTYPE_ASD, name="ASD") ASD.save()
Product = dd.resolve_model('products.Product') # List = dd.resolve_model('lists.List') Client = rt.models.tera.Client ClientContact = rt.models.clients.ClientContact Course = rt.models.courses.Course Line = rt.models.courses.Line CourseAreas = rt.models.courses.CourseAreas Enrolment = rt.models.courses.Enrolment EnrolmentStates = rt.models.courses.EnrolmentStates Country = rt.models.countries.Country hc_Plan = rt.models.healthcare.Plan from lino_xl.lib.contacts.choicelists import CivilStates Account = dd.resolve_model('ledger.Account') working = dd.resolve_app('working') User = rt.models.users.User UserTypes = rt.models.users.UserTypes Partner = rt.models.contacts.Partner Company = rt.models.contacts.Company # Coaching = rt.models.coachings.Coaching # lists_Member = rt.models.lists.Member households_Member = rt.models.households.Member # Link = rt.models.humanlinks.Link # LinkTypes = rt.models.humanlinks.LinkTypes households_MemberRoles = rt.models.households.MemberRoles List = rt.models.lists.List Member = rt.models.lists.Member
# -*- coding: UTF-8 -*- # Copyright 2012 Rumma & Ko Ltd # License: BSD (see file COPYING for details) """ code changes must be documented in *one central place per developer*, not per module. """ import os import datetime from django.conf import settings from lino.utils import i2d, i2t from lino.utils.restify import restify, doc2rst from lino.api import dd, rt blogs = dd.resolve_app('blogs') tickets = dd.resolve_app('tickets') class Blogger(object): def __init__(self, user=None): self.objects_list = [] self.date = None self.user = user self.current_project = None def set_date(self, d): self.date = i2d(d) def set_project(self, project): self.current_project = project