2019-06-10 21:24:35 +00:00
|
|
|
from mongoengine import StringField, DateTimeField, ListField
|
|
|
|
|
|
|
|
from database import Database, strict
|
2019-09-24 18:34:35 +00:00
|
|
|
from database.fields import StrippedStringField
|
2019-06-10 21:24:35 +00:00
|
|
|
from database.model import AttributedDocument
|
|
|
|
from database.model.base import GetMixin
|
|
|
|
|
|
|
|
|
|
|
|
class Project(AttributedDocument):
|
|
|
|
|
|
|
|
get_all_query_options = GetMixin.QueryParameterOptions(
|
2019-09-24 18:34:35 +00:00
|
|
|
pattern_fields=("name", "description"),
|
|
|
|
list_fields=("tags", "system_tags", "id"),
|
2019-06-10 21:24:35 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
"db_alias": Database.backend,
|
|
|
|
"strict": strict,
|
|
|
|
"indexes": [
|
|
|
|
{
|
|
|
|
"name": "%s.project.main_text_index" % Database.backend,
|
|
|
|
"fields": ["$name", "$id", "$description"],
|
|
|
|
"default_language": "english",
|
|
|
|
"weights": {"name": 10, "id": 10, "description": 10},
|
|
|
|
}
|
|
|
|
],
|
|
|
|
}
|
|
|
|
|
|
|
|
id = StringField(primary_key=True)
|
|
|
|
name = StrippedStringField(
|
|
|
|
required=True,
|
|
|
|
unique_with=AttributedDocument.company.name,
|
|
|
|
min_length=3,
|
|
|
|
sparse=True,
|
|
|
|
)
|
|
|
|
description = StringField(required=True)
|
|
|
|
created = DateTimeField(required=True)
|
2019-09-24 18:34:35 +00:00
|
|
|
tags = ListField(StringField(required=True))
|
|
|
|
system_tags = ListField(StringField(required=True))
|
|
|
|
default_output_destination = StrippedStringField()
|
2019-06-10 21:24:35 +00:00
|
|
|
last_update = DateTimeField()
|