コード例 #1
0
class InvoicingSettings(EmbeddedDocument):
    """A wrapper to Invoicing's module settings."""
    TAXES_APPLICATION = TAXES_APPLICATION
    PAYMENT_TYPES = PAYMENT_TYPES
    PAYMENT_CONDITIONS = PAYMENT_CONDITIONS

    supported_currencies = fields.ListField(fields.ReferenceField("Currency"))
    default_currency = fields.ReferenceField("Currency", required=True)
    fy_start_month = fields.IntField(required=True,
                                     default=0,
                                     min_value=0,
                                     max_value=11)
    inv_taxes_application = fields.StringField(required=True,
                                               choices=TAXES_APPLICATION,
                                               default="EXCLUSIVE")
    quotation_validity = fields.IntField(required=True, default=30)
    payment_conditions = fields.StringField(required=True,
                                            choices=PAYMENT_CONDITIONS,
                                            default="CASH")
    custom_payment_conditions = fields.StringField()
    accepted_payment_types = fields.ListField(
        fields.StringField(choices=PAYMENT_TYPES),
        required=True,
        default=lambda: ["CHECK", "CASH", "CREDIT_CARD", "TRANSFER"])
    late_fee_rate = fields.DecimalField()
    down_payment_percent = fields.DecimalField(required=True,
                                               default=lambda: Decimal("0"))
    automatic_reminders = fields.BooleanField(required=True, default=False)
    automatic_reminders_text = fields.StringField(max_length=1024)
    automatic_reminders_send_copy = fields.BooleanField(required=True,
                                                        default=True)
    numbering = fields.EmbeddedDocumentField(
        "InvoicingNumberingSettings",
        required=True,
        default=lambda: InvoicingNumberingSettings())
コード例 #2
0
class InvoiceItem(EmbeddedDocument):

    """
    An :class:`~invoicing.models.InvoiceItem` is an :class:`~invoicing.models.Item` embedded
    in the :class:`~invoicing.models.InvoiceRevision` items list.

    It corresponds to the line of an invoice.
    """
    reference = fields.StringField(required=True, max_length=32)
    description = fields.StringField(required=True, max_length=512)
    quantity = fields.DecimalField(required=True, default=lambda: Decimal("1"))
    unit_price = fields.DecimalField(required=True)
    tax = fields.ReferenceField("Tax", required=True)
    item_id = fields.ObjectIdField()
    #footnote = fields.StringField(max_length=512)

    def __unicode__(self):
        if isinstance(self.reference, basestring):
            return self.reference
        return unicode(self.reference)

    @property
    def total_price(self):
        """Return the total price for this item, considering the quantity."""
        return self.quantity * self.unit_price
コード例 #3
0
class Item(mongoengine.Document):
    meta = {'collection': 'mop_items', 'allow_inheritance': True}

    name = fields.StringField(required=True)
    description = fields.StringField(required=True)
    price = fields.DecimalField(required=True, min_value=0, precision=2)
    weight = fields.DecimalField(required=True, min_value=0, precision=2)
コード例 #4
0
class Historico(Document):
    stock = fields.StringField()
    open = fields.DecimalField()
    high = fields.DecimalField()
    low = fields.DecimalField()
    close = fields.DecimalField()
    volume = fields.DecimalField()
    date = fields.StringField()
コード例 #5
0
class GeneralReview(gj.Document):
    rating = fields.DecimalField(min_value=0, max_value=5, precision=1)
    rounded_rating = fields.IntField(min_value=0, max_value=5)
    food = fields.DecimalField(min_value=0, max_value=5, precision=1)
    service = fields.DecimalField(min_value=0, max_value=5, precision=1)
    ambience = fields.DecimalField(min_value=0, max_value=5, precision=1)
    noise = fields.StringField(max_length=10, choices=noise)
    amount = fields.IntField(min_value=0, default=0)
    distribution = fields.ListField(field=fields.IntField(min_value=0), max_length=5, default=[0]*5)
コード例 #6
0
class CommonItem(BaseDocument):
    def __str__(self):
        return 'CommonItem'

    meta = {'collection': 'mop_items', 'allow_inheritance': True}

    name = fields.StringField(required=True)
    description = fields.StringField(required=True)
    price = fields.DecimalField(required=True, min_value=0, precision=2)
    weight = fields.DecimalField(required=True, min_value=0, precision=2)
コード例 #7
0
class Recipes(Document):
    title = fields.StringField(required=True, default="")
    calories = fields.DecimalField(required=True, default=0.0)
    protein = fields.DecimalField(required=True, default=0.0)
    sodium = fields.DecimalField(required=True, default=0.0)
    rating = fields.DecimalField(required=True, default=0.0)
    ingredients = fields.DynamicField(required=True)
    directions = fields.DynamicField(required=True)
    categories = fields.DynamicField(required=True)
    description = fields.StringField(required=True, default="")
コード例 #8
0
class ProfilingRequest(Document, FlaskAdminURLMixin, GetAttributeMixin):
    method = fields.StringField()
    path = fields.StringField()
    referrer = fields.StringField()
    environ = fields.DictField()
    status = fields.DictField()
    pyprofile = fields.StringField()
    query_count = fields.IntField()
    duration = fields.DecimalField()
    query_duration = fields.DecimalField()
    time = fields.DateTimeField()

    def __unicode__(self):
        return '%s %s' % (self.get('method'), self.get('path'))
コード例 #9
0
ファイル: models.py プロジェクト: igor-93/isl2017
class TagPopularity(Document):
    tag = fields.StringField(required=True)
    n_posts = fields.DecimalField(precision=15)

    def __str__(self):
        # return '('+self.tag+','+str(float(self.n_posts),'utf-8')+')'
        return '( %s, %f)' % (self.tag, float(self.n_posts))
コード例 #10
0
ファイル: models.py プロジェクト: igor-93/isl2017
class WeTrackPost(EmbeddedDocument):
    postcode = fields.StringField(max_length=50)
    postscore = fields.DecimalField(min_value=0, precision=10)
    timestamp = fields.DateTimeField()
    nr_likes = fields.FloatField(min_value=0, precision=10)
    nr_comments = fields.FloatField(min_value=0, precision=10)
    tags = fields.ListField(fields.StringField(max_length=100))
コード例 #11
0
class PatrimonyDocument(documents.BaseEmbeddedDocument):
    """
        Document that represent the customer's patrimonies registered in app
    """

    value = fields.DecimalField(required=True)
    description = fields.StringField(max_length=1000, required=True)
コード例 #12
0
class SourceIncomeDocument(documents.BaseEmbeddedDocument):
    """
        Document that represent the customer's source of income registered in app
    """

    value = fields.DecimalField(required=True)
    description = fields.StringField(max_length=1000, required=True)
コード例 #13
0
class grades(Document):
    student_id = fields.IntField()
    type = fields.StringField()
    score = fields.DecimalField()

    def __repr__(self):
        return 'Studen id: ' + str(self.student_id)
コード例 #14
0
ファイル: models.py プロジェクト: ehsanmqn/Ostadkar
class Feed(Document):
    sender = fields.StringField(default="", required=True)
    datetime = fields.DateTimeField(default=datetime.datetime.now(),
                                    required=True)
    priority = fields.DecimalField(default=0, required=True)
    description = fields.StringField(default="", required=True)
    others = fields.ListField(fields.EmbeddedDocumentField(OtherInput))
コード例 #15
0
class FieldOptionsModel(Document):
    required_field = fields.IntField(required=True)
    null_field = fields.IntField(null=True)
    choices_field = fields.StringField(choices=COLOR_CHOICES)
    length_limit_field = fields.StringField(min_length=3, max_length=12)
    value_limit_field = fields.IntField(min_value=3, max_value=12)
    decimal_field = fields.DecimalField(precision=4, max_value=9999)
コード例 #16
0
class RegularModel(Document):
    """
    A model class for testing regular flat fields.
    """
    str_field = fields.StringField()
    str_regex_field = fields.StringField(regex="^valid_regex")
    url_field = fields.URLField()
    email_field = fields.EmailField()
    int_field = fields.IntField()
    long_field = fields.LongField()
    float_field = fields.FloatField()
    boolean_field = fields.BooleanField()
    nullboolean_field = fields.BooleanField(null=True)
    date_field = fields.DateTimeField()
    complexdate_field = fields.ComplexDateTimeField()
    uuid_field = fields.UUIDField()
    id_field = fields.ObjectIdField()
    decimal_field = fields.DecimalField()

    custom_field = CustomField()

    # TODO
    # dynamic_field = fields.DynamicField()
    # bin_field = fields.BinaryField()
    # file_field = fields.FileField()
    # image_field = fields.ImageField()

    def method(self):
        return 'method'
コード例 #17
0
ファイル: tax.py プロジェクト: tcpr1/vosae-app
class Tax(ZombieMixin, Document):
    """A tax is associated to :class:`~invoicing.models.Item`\ s and :class:`~invoicing.models.InvoiceItem`\ s."""
    tenant = fields.ReferenceField("Tenant", required=True)
    name = fields.StringField(required=True, max_length=64)
    rate = fields.DecimalField(required=True, precision=4)

    meta = {
        "indexes": ["tenant", "name"],

        # Vosae specific
        "vosae_permissions": ("change_invoicingsettings",),
        "vosae_mandatory_permissions": ("invoicing_access",),
    }

    def __unicode__(self):
        return u'%s (%s%%)' % (self.name, self.rate * 100)

    def save(self, *args, **kwargs):
        """
        The :class:`~invoicing.models.Tax` rate should not be updated.

        If needed, the tax must be removed and then re-added with the updated rate value.
        """
        if hasattr(self, '_changed_fields') and 'rate' in self._changed_fields:
            raise InvalidTaxRate("Tax rate is not modifiable.")
        super(Tax, self).save(*args, **kwargs)
コード例 #18
0
class Patrimony(EmbeddedDocument):
    """
        This models contains the patrimony data.
    """
    patrimony_type = fields.StringField(required=True, max_length=100)
    amount = fields.DecimalField(required=True)

    def __str__(self):
        return "{} - R$ {}".format(self.patrimony_type, self.amount)
コード例 #19
0
class Income(EmbeddedDocument):
    """
        This models contains the source Income data.
    """
    income_type = fields.StringField(required=True, max_length=100)
    amount = fields.DecimalField(required=True)

    def __str__(self):
        return "{} - R$ {}".format(self.income_type, self.amount)
コード例 #20
0
class Transaction(EmbeddedDocument):
    """
        This model contains the transaction data
    """
    amount = fields.DecimalField(max_digits=10, decimal_places=2)
    date_debt = fields.DateTimeField()
    payment_type = fields.StringField(max_length=100)

    def __str__(self):
        return "R$ {} ({})".format(self.amount, self.payment_type)
コード例 #21
0
class FieldOptionsModel(Document):
    required_field = fields.IntField(required=True)
    int_null_field = fields.IntField(null=True)
    string_null_field = fields.StringField(null=True)
    required_list_field = fields.ListField(fields.IntField(), required=True)
    non_required_list_field = fields.ListField(fields.IntField(), required=False)
    required_dict_field = fields.DictField(required=True)
    choices_field = fields.StringField(choices=COLOR_CHOICES)
    length_limit_field = fields.StringField(min_length=3, max_length=12)
    value_limit_field = fields.IntField(min_value=3, max_value=12)
    decimal_field = fields.DecimalField(precision=4, max_value=9999)
コード例 #22
0
class SimpleDoc(Document):
    f_str = fields.StringField()
    f_url = fields.URLField()
    f_eml = fields.EmailField()
    f_int = fields.IntField()
    f_lng = fields.LongField()
    f_flt = fields.FloatField()
    f_dec = fields.DecimalField()
    f_bool = fields.BooleanField()
    f_dt = fields.DateTimeField()
    f_oid = fields.ObjectIdField()
    f_uuid = fields.UUIDField()
コード例 #23
0
        class TestDocument(Document):
            string_field = fields.StringField(
                verbose_name='A string',
                regex=r'[\w]+',
                max_length=100,
                min_length=10,
                help_text='Fill in a string',
            )

            url_field = fields.URLField(
                verbose_name='An URL',
                help_text='Fill in an URL',
            )

            email_field = fields.EmailField(
                verbose_name='An e-mail address',
                regex=r'.*',
                max_length=101,
                min_length=11,
                help_text='Fill in an e-mail address',
            )

            int_field = fields.IntField(
                verbose_name='An int',
                min_value=1,
                max_value=102,
                help_text='Fill in an int',
            )

            float_field = fields.FloatField(
                verbose_name='A float',
                min_value=2,
                max_value=103,
                help_text='Fill in a float',
            )

            decimal_field = fields.DecimalField(
                verbose_name='A decimal',
                min_value=3,
                max_value=104,
                help_text='Fill in a decimal',
            )

            datetime_field = fields.DateTimeField(
                verbose_name='A datetime',
                help_text='Fill in a datetime',
            )

            boolean_field = fields.BooleanField(
                verbose_name='A bool',
                help_text='Yes or no?',
            )
コード例 #24
0
ファイル: exchange_rate.py プロジェクト: tcpr1/vosae-app
class ExchangeRate(EmbeddedDocument):
    """
    Exchange rates are included in every :class:`~invoicing.models.Currency` objects.

    They represent the rate between two currencies at a specific time.
    """
    currency_to = fields.StringField(
        required=True, choices=settings.VOSAE_SUPPORTED_CURRENCIES)
    datetime = fields.DateTimeField(required=True)
    rate = fields.DecimalField(required=True)

    def __unicode__(self):
        return self.currency_to
コード例 #25
0
class Metadata(EmbeddedDocument):
    calculated = fields.BooleanField(default=False)
    eff_vs_layer_thickness = fields.EmbeddedDocumentField(Plot)
    eff_vs_bslayer_thickness = fields.EmbeddedDocumentField(Plot)
    eff_vs_tslayer_thickness = fields.EmbeddedDocumentField(Plot)
    eff_vs_wavelength = fields.EmbeddedDocumentField(Plot)
    eff_vs_wavelength_bs = fields.EmbeddedDocumentField(Plot)
    eff_vs_wavelength_ts = fields.EmbeddedDocumentField(Plot)
    total_efficiency = fields.DecimalField(null=True, default=0)
    phs_alpha_06 = fields.EmbeddedDocumentField(Plot)
    phs_alpha_94 = fields.EmbeddedDocumentField(Plot)
    phs_li_06 = fields.EmbeddedDocumentField(Plot)
    phs_li_94 = fields.EmbeddedDocumentField(Plot)
コード例 #26
0
ファイル: models.py プロジェクト: qfoxic/BigCity
class Advert(Category):
    parent = fields.ReferenceField('Category', reverse_delete_rule=CASCADE)
    title = fields.StringField(required=True, max_length=300)

    loc = fields.PointField(required=True, default=[0.0, 0.0])
    country = fields.StringField(max_length=30)
    region = fields.StringField(max_length=30)
    city = fields.StringField(max_length=30)
    street = fields.StringField(max_length=100)

    rooms = fields.IntField(required=True, default=0)
    square_gen = fields.IntField(required=True, default=0)
    square_live = fields.IntField(required=True, default=0)
    room_height = fields.IntField(required=True, default=0)
    floors = fields.IntField(required=True, default=0)
    floor = fields.IntField(required=True, default=0)
    wall_type = fields.IntField(choices=WALL_TYPES,
                                required=True,
                                default=WALL_TYPES[0][0])
    build_type = fields.IntField(choices=BUILD_TYPES,
                                 required=True,
                                 default=BUILD_TYPES[0][0])
    price = fields.DecimalField()
    finished = fields.DateTimeField()

    #language field is needed for full text search.
    language = fields.StringField(default='english')
    text = fields.StringField(max_length=5000)

    meta = {
        'indexes': [('kind', 'path', 'loc', 'parent'),
                    ('kind', 'path', 'loc', 'parent', 'finished')]
    }

    @queryset_manager
    def nodes(cls, queryset, uid, gids):
        return search_nodes(queryset, cls.get_kind(), uid, gids).filter(
            Q(finished__exists=False)
            | Q(finished__gt=datetime.datetime.now()))

    @queryset_manager
    def nearest(cls, queryset, uid, gids, lat, lon, parent=None):
        try:
            lon, lat = float(lon), float(lat)
        except (TypeError, ValueError):
            lon, lat = 0.0, 0.0
        return search_children(
            queryset, cls.get_kind(), uid, gids, pid=parent,
            direct=False).filter(loc__near=[lon, lat]).filter(
                Q(finished__exists=False)
                | Q(finished__gt=datetime.datetime.now()))
コード例 #27
0
class BillModel(Document):
    source = fields.StringField(name="账单来源")  # 微信导入/支付宝导入/信息收录
    title = fields.StringField(name="描述")
    fee = fields.DecimalField(name="金额(元)")
    remark = fields.StringField(name="备注")
    create_time = fields.DateTimeField("创建时间")
    is_delete = fields.BooleanField("删除")
    update_time = fields.DateTimeField("更新时间")

    meta = {
        "indexes": ["desc_type", "title"],
        "index_background": True,
        "collection": "file_info",
    }
コード例 #28
0
class ProfilingQuery(Document, FlaskAdminURLMixin, GetAttributeMixin):
    request = fields.ReferenceField(ProfilingRequest)
    command_name = fields.StringField()
    database_name = fields.StringField()
    operation_id = fields.IntField()
    connection = fields.EmbeddedDocumentField(
        ProfilingQueryConnection)  # connection_id
    request_id = fields.StringField()
    failure = fields.DictField()
    duration = fields.DecimalField()
    command = fields.DictField()

    def __unicode__(self):
        return '%s' % self.get('command_name', 'Command')
コード例 #29
0
ファイル: schema1.py プロジェクト: vmdhhh/mongoengine-migrate
 class Schema1EmbDoc2(EmbeddedDocument):
     embdoc2_int = fields.IntField()
     embdoc2_str = fields.StringField()
     embdoc2_str_empty = fields.StringField()
     embdoc2_str_ten = fields.StringField(choices=[str(x) for x in range(11)])
     embdoc2_float = fields.FloatField()
     embdoc2_int_empty = fields.IntField()
     embdoc2_long = fields.LongField()
     embdoc2_decimal = fields.DecimalField()
     embdoc2_complex_datetime = fields.ComplexDateTimeField()
     embdoc2_list = fields.ListField()
     embdoc2_ref_doc1 = fields.ReferenceField('Schema1Doc1')
     embdoc2_emb_embdoc2 = fields.EmbeddedDocumentField('self')
     embdoc2_emblist_embdoc2 = fields.EmbeddedDocumentListField('self')
コード例 #30
0
ファイル: models.py プロジェクト: zenweasel/ChromeCaster
class Media(Document):

    type = fields.StringField()
    file_id = fields.StringField(primary_key=True)
    artist = fields.StringField()
    title = fields.StringField()
    filename = fields.StringField()
    path = fields.StringField()
    album = fields.StringField()
    description = fields.StringField()
    genre = fields.StringField()
    bpm = fields.DecimalField()
    tags = fields.DictField()
    image = fields.StringField()

    def get_collection(self):
        return self._get_collection()