Build in data models

Release:trunk
Date:November 03, 2011

Camelot comes with a number of build in data models. To avoid boiler plate models needed in almost any application (like Persons, Addresses, etc.), the developer is encouraged to use these data models as a start for developing custom applications.

Persons and Organizations

class camelot.model.authentication.Address(**kwargs)[source]

The Address to be given to a Party (a Person or an Organization)

../_images/new_view_address.png

Fields :

  • city : refers to City
  • street1 : VARCHAR(128), required
  • street2 : VARCHAR(128), not required
class camelot.model.authentication.AddressAdmin(app_admin, entity)[source]

Admin with only the Address information and not the Party information

class camelot.model.authentication.City(**kwargs)[source]
A subclass of GeographicBoundary used to store the name, the postal code
and the Country of a city
../_images/new_view_city.png

Fields :

  • country : refers to Country
class camelot.model.authentication.ContactMechanism(**kwargs)[source]
../_images/new_view_contactmechanism.png

Fields :

  • party_contact_mechanisms : refers to PartyContactMechanism
  • mechanism : VARCHAR(256), required
  • party_address : refers to PartyAddress
class camelot.model.authentication.Country(**kwargs)[source]
A subclass of GeographicBoundary used to store the name and the
ISO code of a country
../_images/new_view_country.png

Fields :

class camelot.model.authentication.DirectedDirector(**kwargs)[source]

Relation from a directed organization to a director

class camelot.model.authentication.EmployerEmployee(**kwargs)[source]

Relation from employer to employee

class camelot.model.authentication.GeographicBoundary(**kwargs)[source]

The base class for Country and City

class camelot.model.authentication.Organization(**kwargs)[source]
An organization represents any internal or external organization. Organizations can include
businesses and groups of individuals
../_images/new_view_organization.png

Fields :

  • name : VARCHAR(50), required
  • employees : refers to EmployerEmployee
  • shareholders : refers to SharedShareholder
  • directors : refers to DirectedDirector
  • customers : refers to SupplierCustomer
  • tax_id : VARCHAR(20), not required
  • logo : VARCHAR(100), not required
  • suppliers : refers to SupplierCustomer
class camelot.model.authentication.Party(**kwargs)[source]

Base class for persons and organizations. Use this base class to refer to either persons or organisations in building authentication systems, contact management or CRM

class camelot.model.authentication.Person(**kwargs)[source]

Person represents natural persons

../_images/new_view_person.png

Fields :

  • comment : TEXT, not required
  • picture : VARCHAR(100), not required
  • last_name : VARCHAR(40), required
  • suffix : VARCHAR(3), not required
  • first_name : VARCHAR(40), required
  • sex : VARCHAR(1), not required
  • is_staff : <class ‘sqlalchemy.types.Boolean’>, not required
  • social_security_number : VARCHAR(12), not required
  • employers : refers to EmployerEmployee
  • middle_name : VARCHAR(40), not required
  • passport_number : VARCHAR(20), not required
  • birthdate : DATE, not required
  • is_superuser : <class ‘sqlalchemy.types.Boolean’>, not required
  • passport_expiry_date : DATE, not required
  • personal_title : VARCHAR(10), not required
  • martial_status : VARCHAR(1), not required
class camelot.model.authentication.RepresentedRepresentor(**kwargs)[source]

Relation from a representing party to the person representing the party

class camelot.model.authentication.SharedShareholder(**kwargs)[source]

Relation from a shared organization to a shareholder

class camelot.model.authentication.SupplierCustomer(**kwargs)[source]

Relation from supplier to customer

camelot.model.authentication.getCurrentAuthentication(_obj=None)[source]

Get the currently logged in person

camelot.model.authentication.updateLastLogin()[source]

Update the last login of the current person to now

Batch Jobs

Most applications need to perform some scheduled jobs to process information. Users need to be able to monitor the functioning of those scheduled jobs.

These classes provide the means to store the result of batch jobs to enable the user to review or plan them.

class camelot.model.batch_job.BatchJob(**kwargs)[source]

Information the batch job that is planned, running or has run

../_images/new_view_batchjob.png

Fields :

  • status : INTEGER, required
  • host : VARCHAR(256), required
  • date : <class ‘sqlalchemy.types.DateTime’>, required
  • message : TEXT, not required
  • type : refers to BatchJobType
add_exception_to_message(exception)[source]

If an exception occurs in a batch job, this method can be used to add the stack trace of the exception to the message

add_strings_to_message(strings)[source]
Parameters:strings – a list or generator of strings
is_canceled()[source]

Verifies if this Batch Job is canceled. Returns True if it is. This verification is done without using the ORM, so the verification has no impact on the current session or the objects itself. This method is thus suited to call inside a running batch job to verifiy if another user has canceled the running job.

Returns:True or False
class camelot.model.batch_job.BatchJobType(**kwargs)[source]
The type of batch job, the user will be able to filter his
jobs based on their type. A type might be ‘Create management reports’
../_images/new_view_batchjobtype.png

Fields :

  • name : VARCHAR(256), required
  • parent : refers to BatchJobType

Auditing

class camelot.model.memento.BeforeDelete(**kwargs)[source]

The state of the object before it is deleted

class camelot.model.memento.BeforeUpdate(**kwargs)[source]

The state of the object before an update took place

class camelot.model.memento.Create(**kwargs)[source]

Marks the creation of an object

class camelot.model.memento.Memento(**kwargs)[source]

Keeps information on the previous state of objects, to keep track of changes and enable restore to that previous state

Table Of Contents

Previous topic

Document Management

Next topic

Fixtures : handling static data in the database

This Page


Comments
blog comments powered by Disqus