Source code for cogentviewer.models.deployment

"""
Table to represent deployments.

.. codeauthor::  Ross Wiklins
.. codeauthor::  James Brusey
.. codeauthor::  Daniel Goldsmith <djgoldsmith@googlemail.com>
"""


#SQL Alchemy Relevant information
from sqlalchemy import Column, Integer, String, DateTime

#And Backrefs and Relations.
from sqlalchemy.orm import relationship

#Import Pyramid Meta Data
import meta

[docs]class Deployment(meta.Base, meta.InnoDBMix): """Table to hold information about deployments. :var integer id: deployment id (pk) :var string name: deployment name :var string description: deployment description :var DateTime startDate: deployment start date :var DateTime endDate: deployment end date :var list meta: *Backref:* all :class:`cogentviewer.models.housemetadata.HouseMetadata` linked to this deployment :var list houses: *Backref:* all :class:`cogentviewer.models.house.House` objects in this deployment """ __tablename__ = "Deployment" id = Column(Integer, primary_key=True) name = Column(String(255)) description = Column(String(255)) startDate = Column(DateTime) endDate = Column(DateTime) meta = relationship("DeploymentMetadata", order_by="DeploymentMetadata.id", backref="deployment") houses = relationship("House", order_by="House.id", backref="deployment") def __str__(self): return "Deployment: {0} {1} {2} - {3}".format(self.id, self.name, self.startDate, self.endDate) def __eq__(self, other): """Check for equality Given that Deployment Names should be Unique, equality is given if the names match """ return self.name == other.name def __ne__(self, other): """Check for Inequality""" return not(self.name == other.name) #return not(self.id == other.id and self.name == other.name) def __lt__(self, other): """Order Objects, """ #if self.id == other.id: return self.name < other.name