Exemple #1
0
class Organisation(MongoModel):
    name = CharField()
    member = ListField(ReferenceField(User))
    projects = ListField(ReferenceField(Project))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #2
0
    def test_validation_on_initialization(self):
        # Initializing ReferenceField with a model instance raises exception.
        dummy = DummyReferenceModel(data='hello')
        with self.assertRaisesRegex(ValueError,
                                    "model must be a Model class or a string"):
            _ = ReferenceField(dummy)

        # Initializing ReferenceField with a model class is OK.
        _ = ReferenceField(DummyReferenceModel)
Exemple #3
0
class IfcGroup(MongoModel):
    pid = IntegerField()
    ptype = CharField()
    name = CharField(blank=True)
    pset = ListField(ReferenceField(IfcSingleProperty))
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #4
0
class ExcelFile(MongoModel):
    path = CharField()
    filename = CharField()
    project = ReferenceField(Project)
    created = DateTimeField()
    created_by = ReferenceField(User)

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #5
0
class ProductType(MongoModel):
    name = CharField()
    producer = CharField()
    connection = ListField(ReferenceField(ProductSignal))
    power = ListField(ReferenceField(ProductPower))
    shape = ReferenceField(IfcShapeRepresentation)
    verified = BooleanField(default=False)
    pset = ListField(ReferenceField(IfcSingleProperty))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #6
0
class DataFrame(MongoModel):
    from_model = BooleanField()
    pset = BooleanField(blank=True)
    type = CharField(blank=True)
    name = CharField(blank=True)
    calculation = ListField(ReferenceField(Calculation))
    version = ReferenceField(Version)
    excelfile = ReferenceField(ExcelFile)
    header = IntegerField(blank=True)
    sheetname = CharField(blank=True)

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #7
0
class ChangeFileModel(MongoModel):
    contents = CharField()
    change = ReferenceField(ChangeModel)
    prog_language = CharField(choices=constants.LANGUAGE_NAMES)
    file_path = CharField()
    file = ReferenceField(RepositoryFileModel)

    class Meta:
        pass
        #connection_alias = 'mongo_000'

    def __str__(self):
        return "ChangeFileMongoModel: [%s] :: %s :: %s :: %s" % (
            self.change, self.file_path, self.prog_language, self.contents)
Exemple #8
0
class IfcProductType(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField()
    name = CharField(blank=True)
    predefined = CharField(blank=True)
    tag = CharField(blank=True)
    pset = ListField(ReferenceField(IfcSingleProperty))
    material = ListField(ReferenceField(IfcMaterial))
    shape = EmbeddedDocumentField(IfcShapeRepresentation)
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #9
0
class IfcBuilding(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField(blank=True)
    name = CharField(blank=True)
    description = CharField(blank=True)
    longName = CharField(blank=True)
    site = ReferenceField(IfcSite)
    pset = ListField(ReferenceField(IfcSingleProperty))
    shape = EmbeddedDocumentField(IfcShapeRepresentation)
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #10
0
class RepositoryModel(MongoModel):
    combo_id = CharField()
    name = CharField()
    namespace = ReferenceField(NamespaceModel)

    class Meta:
        #indexes = [IndexModel([('name', TEXT), ('namespace', TEXT)], unique=True)]
        #connection_alias = 'mongo_000'
        indexes = [IndexModel('combo_id', unique=True)]

    def __str__(self):
        return "RepositoryMongoModel: %s [%s]" % (self.name, self.namespace)

    @classmethod
    def build_combo_id(cls, name, namespace):
        if name is None:
            raise ValueError("Name can't be None")
        if namespace is None:
            raise ValueError("Namespace can't be None")
        return "%s/%s" % (namespace, name)

    def _build_combo_id(self):
        return self.build_combo_id(name=self.name,
                                   namespace=self.namespace.name)

    def set_combo_id(self):
        self.combo_id = self._build_combo_id()

    def save(self, cascade=None, full_clean=True, force_insert=False):
        self.set_combo_id()
        super().save(cascade=cascade,
                     full_clean=full_clean,
                     force_insert=force_insert)
Exemple #11
0
class IfcProject(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField()
    name = CharField(blank=True)
    longName = CharField(blank=True)
    description = CharField(blank=True)
    phase = CharField(blank=True)
    lengthUnit = CharField(blank=True)
    lengthPrefix = CharField(blank=True)
    dir = ListField(FloatField(blank=True))
    pset = ListField(ReferenceField(IfcSingleProperty))
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #12
0
class User(MongoModel):
    email = EmailField(primary_key=True)
    first_name = CharField()
    last_name = CharField()
    projects = ListField(ReferenceField(Project))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #13
0
class IfcSite(MongoModel):
    pid = IntegerField()
    guid = CharField()
    ptype = CharField()
    name = CharField(blank=True)
    description = CharField(blank=True)
    refLatitude = ListField(blank=True)
    refLongitude = ListField(blank=True)
    refElevation = FloatField(blank=True)
    LandTitleNumber = CharField(blank=True)
    #quitself.SiteAddress = element.SiteAddress
    pset = ListField(ReferenceField(IfcSingleProperty))
    project = ReferenceField(IfcProject)
    version = ListField(ReferenceField(Version))

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #14
0
class RepositoryFileModel(MongoModel):
    combo_id = CharField()
    contents = CharField(required=False, blank=True)
    repository = ReferenceField(RepositoryModel)
    prog_language = CharField(choices=constants.LANGUAGE_NAMES)
    file_path = CharField()
    current_change_file = ReferenceField("ChangeFileModel", blank=True)

    class Meta:
        #indexes = [IndexModel([('file_path', TEXT), ('repository', TEXT)], unique=True)]
        #connection_alias = 'mongo_000'
        indexes = [IndexModel('combo_id', unique=True)]

    '''
    class Meta:
        connection_alias = CODE_PERSISTENCE_BACKENDS[MONGODB_CONNECT_TO]['connection_profile']
    '''

    def __str__(self):
        return "RepositoryFileMongoModel: %s :: %s :: [%s] :: %s" % (
            self.file_path, self.prog_language, self.repository, self.contents)

    @classmethod
    def build_combo_id(cls, file_path, repository):
        if file_path is None:
            raise ValueError("File_Path can't be None")
        if repository is None:
            raise ValueError("Repository can't be None")
        return "%s/%s" % (repository, file_path)

    def _build_combo_id(self):
        return self.build_combo_id(
            file_path=self.file_path,
            repository="%s/%s" %
            (self.repository.namespace.name, self.repository.name))

    def set_combo_id(self):
        self.combo_id = self._build_combo_id()

    def save(self, cascade=None, full_clean=True, force_insert=False):
        self.set_combo_id()
        super().save(cascade=cascade,
                     full_clean=full_clean,
                     force_insert=force_insert)
Exemple #15
0
class ChangeModel(MongoModel):
    change_id = CharField()
    comment = CharField()
    author = CharField()
    timestamp = TimestampField()
    repository = ReferenceField(RepositoryModel)
    parent_change = ReferenceField("ChangeModel", blank=True)

    class Meta:
        pass
        #connection_alias = 'mongo_000'

    def __str__(self):
        if isinstance(self.timestamp, Timestamp):
            timestamp = self.timestamp.as_datetime().__str__()
        else:
            timestamp = self.timestamp
        return "ChangeMongoModel: %s :: \"%s\" :: %s :: %s :: [%s]" % (
            self.change_id, self.comment, self.author, timestamp,
            self.repository)
Exemple #16
0
class Version(MongoModel):
    project = ReferenceField(Project)
    branch = CharField()
    version = IntegerField()

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'

    def to_json(self):
        items = self.to_son()
        items['project'] = self.project.to_son()
        return items
Exemple #17
0
class IfcProduct(MongoModel):
    pid = IntegerField(blank=True)
    guid = CharField(blank=True)
    ptype = CharField(blank=True)
    name = CharField(blank=True)
    description = CharField(blank=True)
    pset = ListField(ReferenceField(IfcSingleProperty))
    group = ListField(ReferenceField(IfcGroup))
    material = ListField(ReferenceField(IfcMaterial))
    building = ListField(ReferenceField(IfcBuilding))
    storey = ListField(ReferenceField(IfcStorey))
    shape = EmbeddedDocumentField(IfcShapeRepresentation)
    space = ListField(ReferenceField(IfcSpace))
    system = ListField(ReferenceField(IfcSystem))
    productType = ReferenceField(IfcProductType)
    product = ReferenceField(ProductType)
    version = ListField(ReferenceField(Version))
    filepath = CharField(blank=True)

    class Meta:
        write_concern = WriteConcern(j=True)
        connection_alias = 'my-app'
Exemple #18
0
class TemporaryChangeFileModel(MongoModel):
    contents = CharField()
    repository = ReferenceField(RepositoryModel)
    language = CharField(choices=constants.LANGUAGE_NAMES)
    file_path = CharField()

    class Meta:
        pass
        #connection_alias = 'mongo_000'

    def __str__(self):
        return "TemporaryChangeFileMongoModel: [%s] :: %s :: %s :: %s" % (
            self.repository, self.file_path, self.language, self.contents)
Exemple #19
0
    def __init__(self,
                 model,
                 on_delete=ReferenceField.DO_NOTHING,
                 verbose_name=None,
                 mongo_name=None,
                 **kwargs):
        """
        :parameters:
          - `verbose_name`: A human-readable name for the Field.
          - `mongo_name`: The name of this field when stored in MongoDB.
          - `field`: The Field instance of all items in this list.
            This needs to be an *instance* of a `MongoBaseField` subclass.

        .. seealso:: constructor for
                     :class:`~pymodm.base.fields.MongoBaseField`
        """
        super(ReferenceListField,
              self).__init__(field=ReferenceField(model, on_delete=on_delete),
                             verbose_name=verbose_name,
                             mongo_name=mongo_name,
                             **kwargs)
        self._on_delete = on_delete
Exemple #20
0
class SpaceFunction(MongoModel):
    space = ReferenceField(IfcSpace)
    text = CharField()
    signal = ListField(ReferenceField(ProductSignal))