Tweak Person.emails
and Person.phones
relationships
This commit is contained in:
parent
df39d271b7
commit
9b742751cd
|
@ -29,7 +29,7 @@ from __future__ import unicode_literals, absolute_import
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy import orm
|
||||||
from sqlalchemy.ext.orderinglist import ordering_list
|
from sqlalchemy.ext.orderinglist import ordering_list
|
||||||
|
|
||||||
from .core import Base, uuid_column
|
from .core import Base, uuid_column
|
||||||
|
@ -87,16 +87,26 @@ class PersonPhoneNumber(PhoneNumber):
|
||||||
__mapper_args__ = {'polymorphic_identity': 'Person'}
|
__mapper_args__ = {'polymorphic_identity': 'Person'}
|
||||||
|
|
||||||
|
|
||||||
Person.phones = relationship(
|
Person.phones = orm.relationship(
|
||||||
PersonPhoneNumber,
|
PersonPhoneNumber,
|
||||||
backref='person',
|
|
||||||
primaryjoin=PersonPhoneNumber.parent_uuid == Person.uuid,
|
primaryjoin=PersonPhoneNumber.parent_uuid == Person.uuid,
|
||||||
foreign_keys=[PersonPhoneNumber.parent_uuid],
|
foreign_keys=[PersonPhoneNumber.parent_uuid],
|
||||||
collection_class=ordering_list('preference', count_from=1),
|
collection_class=ordering_list('preference', count_from=1),
|
||||||
order_by=PersonPhoneNumber.preference,
|
order_by=PersonPhoneNumber.preference,
|
||||||
cascade='save-update, merge, delete, delete-orphan')
|
cascade='save-update, merge, delete, delete-orphan',
|
||||||
|
doc="""
|
||||||
|
Sequence of :class:`PersonPhoneNUmber` instances which belong to the
|
||||||
|
person.
|
||||||
|
""",
|
||||||
|
backref=orm.backref(
|
||||||
|
'person',
|
||||||
|
doc="""
|
||||||
|
Reference to the :class:`Person` instance to which the phone number
|
||||||
|
belongs.
|
||||||
|
"""),
|
||||||
|
)
|
||||||
|
|
||||||
Person.phone = relationship(
|
Person.phone = orm.relationship(
|
||||||
PersonPhoneNumber,
|
PersonPhoneNumber,
|
||||||
primaryjoin=sa.and_(
|
primaryjoin=sa.and_(
|
||||||
PersonPhoneNumber.parent_uuid == Person.uuid,
|
PersonPhoneNumber.parent_uuid == Person.uuid,
|
||||||
|
@ -115,16 +125,26 @@ class PersonEmailAddress(EmailAddress):
|
||||||
__mapper_args__ = {'polymorphic_identity': 'Person'}
|
__mapper_args__ = {'polymorphic_identity': 'Person'}
|
||||||
|
|
||||||
|
|
||||||
Person.emails = relationship(
|
Person.emails = orm.relationship(
|
||||||
PersonEmailAddress,
|
PersonEmailAddress,
|
||||||
backref='person',
|
|
||||||
primaryjoin=PersonEmailAddress.parent_uuid == Person.uuid,
|
primaryjoin=PersonEmailAddress.parent_uuid == Person.uuid,
|
||||||
foreign_keys=[PersonEmailAddress.parent_uuid],
|
foreign_keys=[PersonEmailAddress.parent_uuid],
|
||||||
collection_class=ordering_list('preference', count_from=1),
|
collection_class=ordering_list('preference', count_from=1),
|
||||||
order_by=PersonEmailAddress.preference,
|
order_by=PersonEmailAddress.preference,
|
||||||
cascade='save-update, merge, delete, delete-orphan')
|
cascade='save-update, merge, delete, delete-orphan',
|
||||||
|
doc="""
|
||||||
|
Sequence of :class:`PersonEmailAddress` instances which belong to the
|
||||||
|
person.
|
||||||
|
""",
|
||||||
|
backref=orm.backref(
|
||||||
|
'person',
|
||||||
|
doc="""
|
||||||
|
Reference to the :class:`Person` instance to which the email address
|
||||||
|
belongs.
|
||||||
|
"""),
|
||||||
|
)
|
||||||
|
|
||||||
Person.email = relationship(
|
Person.email = orm.relationship(
|
||||||
PersonEmailAddress,
|
PersonEmailAddress,
|
||||||
primaryjoin=sa.and_(
|
primaryjoin=sa.and_(
|
||||||
PersonEmailAddress.parent_uuid == Person.uuid,
|
PersonEmailAddress.parent_uuid == Person.uuid,
|
||||||
|
@ -143,7 +163,7 @@ class PersonMailingAddress(MailingAddress):
|
||||||
__mapper_args__ = {'polymorphic_identity': 'Person'}
|
__mapper_args__ = {'polymorphic_identity': 'Person'}
|
||||||
|
|
||||||
|
|
||||||
Person.addresses = relationship(
|
Person.addresses = orm.relationship(
|
||||||
PersonMailingAddress,
|
PersonMailingAddress,
|
||||||
backref='person',
|
backref='person',
|
||||||
primaryjoin=PersonMailingAddress.parent_uuid == Person.uuid,
|
primaryjoin=PersonMailingAddress.parent_uuid == Person.uuid,
|
||||||
|
@ -152,7 +172,7 @@ Person.addresses = relationship(
|
||||||
order_by=PersonMailingAddress.preference,
|
order_by=PersonMailingAddress.preference,
|
||||||
cascade='save-update, merge, delete, delete-orphan')
|
cascade='save-update, merge, delete, delete-orphan')
|
||||||
|
|
||||||
Person.address = relationship(
|
Person.address = orm.relationship(
|
||||||
PersonMailingAddress,
|
PersonMailingAddress,
|
||||||
primaryjoin=sa.and_(
|
primaryjoin=sa.and_(
|
||||||
PersonMailingAddress.parent_uuid == Person.uuid,
|
PersonMailingAddress.parent_uuid == Person.uuid,
|
||||||
|
|
Loading…
Reference in a new issue