Tweak Person.emails and Person.phones relationships
				
					
				
			This commit is contained in:
		
							parent
							
								
									df39d271b7
								
							
						
					
					
						commit
						9b742751cd
					
				
					 1 changed files with 31 additions and 11 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue