Exemple #1
0
class Map(models.Model):
    """One map object with own odds"""
    group = models.ForeignKey(Group,
                              on_delete=models.PROTECT,
                              verbose_name='Group')
    league = models.ForeignKey(League,
                               on_delete=models.PROTECT,
                               verbose_name='League')
    number = models.PositiveIntegerField(verbose_name='Map number')
    team_1 = models.CharField(max_length=50, verbose_name='Team 1')
    team_2 = models.CharField(max_length=50, verbose_name='Team 2')
    knife_kill = jsonb.JSONField(verbose_name='Will there be a knife kill?',
                                 blank=True)
    over_27dot5 = jsonb.JSONField(
        verbose_name='(alingment: home) win and over 27.5 rounds', blank=True)
    over_25dot5 = jsonb.JSONField(
        verbose_name='(alingment: home) win and over 25.5 rounds', blank=True)
    overtime = jsonb.JSONField(verbose_name='Will there be overtime?',
                               blank=True)
    total_r_odd_even = jsonb.JSONField(verbose_name='Total rounds Odd/Even',
                                       blank=True)
    ace = jsonb.JSONField(verbose_name='Will there be an ace?', blank=True)
    r1_to_r5 = jsonb.JSONField(verbose_name='1st to 5 rounds', blank=True)
    winner_r1 = jsonb.JSONField(verbose_name='1st Round Winner', blank=True)
    winning_margin = jsonb.JSONField(verbose_name='Winning Margin', blank=True)
    r16_winner = jsonb.JSONField(verbose_name='16th Round Winner', blank=True)
    date_time = models.DateTimeField(verbose_name='Matchup date and time')

    def __str__(self):
        return f'{self.team_1} - {self.team_2} | Map:{self.number}'

    class Meta:
        verbose_name = 'Map'
        verbose_name_plural = 'Maps'
class Transaction(models.Model):
    name = models.CharField(max_length=255, blank=False)
    paths = jsonb.JSONField(default=list, null=True, blank=True)
    rules = jsonb.JSONField(default=dict, null=True, blank=True)

    def __str__(self):
        return self.name
Exemple #3
0
class TeamLine(models.Model):
    """
    Сomplex abstraction which contains all maps played between two teams in one event
    store all information about event and team-line odds
    """
    group = models.ForeignKey(Group,
                              on_delete=models.PROTECT,
                              verbose_name='Group')
    league = models.ForeignKey(League,
                               on_delete=models.PROTECT,
                               verbose_name='League')
    map_1 = models.OneToOneField(Map,
                                 on_delete=models.PROTECT,
                                 blank=True,
                                 verbose_name='Map 1')
    map_2 = models.OneToOneField(Map,
                                 on_delete=models.PROTECT,
                                 blank=True,
                                 verbose_name='Map 2')
    map_3 = models.OneToOneField(Map,
                                 on_delete=models.PROTECT,
                                 blank=True,
                                 verbose_name='Map 3')
    map_4 = models.OneToOneField(Map,
                                 on_delete=models.PROTECT,
                                 blank=True,
                                 verbose_name='Map 4')
    map_5 = models.OneToOneField(Map,
                                 on_delete=models.PROTECT,
                                 blank=True,
                                 verbose_name='Map 5')
    win_one_map_home = jsonb.JSONField(
        verbose_name='(alingment: home) win at least one map?', blank=True)
    win_one_map_away = jsonb.JSONField(
        verbose_name='(alingment: away) win at least one map?', blank=True)
    correct_score = jsonb.JSONField(verbose_name='Correct Score')

    def __str__(self):
        return f'Teamline {self.sport}:{self.league}'

    class Meta:
        verbose_name = 'Teamline'
        verbose_name_plural = 'Teamlines'
class Migration(migrations.Migration):

    initial = True

    dependencies = [('api_app', '0001_initial')]

    operations = [
        migrations.AddField(model_name='job',
                            name='runtime_configuration',
                            field=jsonb.JSONField(default=dict,
                                                  null=False,
                                                  blank=True)),
    ]
Exemple #5
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [("api_app", "0001_initial")]

    operations = [
        migrations.AddField(
            model_name="job",
            name="runtime_configuration",
            field=jsonb.JSONField(default=dict, null=False, blank=True),
        )
    ]
Exemple #6
0
class StrategyAlert(models.Model):
    FrequencyChoices = (
        (AlertFrequencyType.OnDemand, 'On Demand'),
        (AlertFrequencyType.Hourly, 'Hourly'),
        (AlertFrequencyType.Daily, 'Daily'),
        (AlertFrequencyType.Weekly, 'Weekly'),
        (AlertFrequencyType.BiWeekly, 'Bi-Weekly'),
        (AlertFrequencyType.Monthly, 'Monthly'),
    )

    key = models.CharField(max_length=50)
    settings = jsonb.JSONField(null=True, blank=True)
    frequency = models.IntegerField(choices=FrequencyChoices,
                                    default=AlertFrequencyType.OnDemand.value)
    note = models.TextField(null=True, blank=True)
Exemple #7
0
class Snapshot(TimeStamped):
    state = jsonb.JSONField(_("Game State"), default={})
    game_time = models.FloatField(_("Game Time in Seconds"), default=0.0)
    game = models.ForeignKey("Game", null=True)
    space = models.ForeignKey("Space", null=True)
    settings = models.ForeignKey("SpaceSettings", null=True)

    def __init__(self, *args, **kwargs):
        super(Snapshot, self).__init__(*args, **kwargs)
        self.game = self.space.game
        self.settings = self.space.settings

    def new_state(self):
        self.state = {}
        return self.state
Exemple #8
0
class Settings(TimeStamped, Ownable):
    """
    Stores settings in a JSON object
    """
    class Meta:
        abstract = True
        ordering = ["-created"]

    name = models.CharField(_("Name"), max_length=50, blank=True, null=True)
    data = jsonb.JSONField(_("Data"), default={})

    def get_setting(self, setting_name, default=None):
        try:
            return self.data[setting_name] or default
        except KeyError:
            return default
Exemple #9
0
class DocumentIndex(models.Model):
    """
    Indexed values for a specific document.
    """
    document = models.ForeignKey(Document, related_name='indices')
    json = jsonb.JSONField(verbose_name="JSON")
    geometry = models.GeometryCollectionField(blank=True, null=True,
                                              geography=True)

    objects = DocumentIndexManager()

    class Meta:
        ordering = ['pk']
        verbose_name = 'Index'
        verbose_name_plural = 'Indices'

    def __str__(self):
        return str(self.id)

    def verbose_name(self):
        return str(self.json)

    def format_document_type(self):
        return self.document.document_type.name
    format_document_type.short_description = 'Document type'
    format_document_type.admin_order_field = 'document__document_type__name'

    def format_document_id(self):
        if self.document.id is None:
            return
        url = reverse('admin:%s_%s_change' % (self._meta.app_label,
                                              self._meta.object_name.lower()),
                      args=[self.document.id])
        return "<a href='%s'>%d</a>" % (url, self.document.id)
    format_document_id.allow_tags = True
    format_document_id.short_description = 'Document ID'
    format_document_id.admin_order_field = 'document__id'

    def format_index_id(self):
        if self.id is None:
            return
        url = reverse('admin:%s_%s_change' % (self._meta.app_label,
                                              self._meta.object_name.lower()),
                      args=[self.id])
        return "<a href='%s'>%d</a>" % (url, self.id)
    format_index_id.allow_tags = True
    format_index_id.short_description = 'Index ID'
Exemple #10
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('invoice', '__first__'),
        ('auth', '__latest__'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('password',
                 models.CharField(max_length=128, verbose_name=_('password'))),
                ('last_login',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name=_('last login'))),
                ('is_superuser',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates that this user has all permissions without explicitly assigning them.',
                     verbose_name=_('superuser status'))),
                ('uid',
                 models.SlugField(blank=True,
                                  max_length=settings.MARKET_UID_LENGTH,
                                  null=True)),
                ('name',
                 models.CharField(blank=True,
                                  max_length=50,
                                  verbose_name=_('Full name'))),
                ('email',
                 models.EmailField(max_length=254,
                                   unique=True,
                                   verbose_name=_('Email'))),
                ('slug', models.SlugField(unique=True)),
                ('phone',
                 models.CharField(
                     blank=True,
                     max_length=20,
                     null=True,
                     validators=[
                         django.core.validators.RegexValidator(
                             re.compile('^[\\+\\d\\s][\\s0-9]{8,22}$', 32),
                             'Enter a valid phone number.', 'invalid')
                     ],
                     verbose_name=_('Phone number'))),
                ('karma',
                 models.SmallIntegerField(blank=True,
                                          default=10,
                                          verbose_name=_('Karma'))),
                ('avatar',
                 stdimage.models.StdImageField(
                     blank=True,
                     null=True,
                     upload_to=market.utils.models.upload_to_classname,
                     verbose_name=_('Photo'))),
                ('is_staff',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates whether the user can log into this admin site.',
                     verbose_name=_('staff status'))),
                ('is_active',
                 models.BooleanField(
                     default=True,
                     help_text=
                     'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.',
                     verbose_name=_('active'))),
                ('date_joined',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name=_('date joined'))),
                ('first_name',
                 models.CharField(blank=True, max_length=30, null=True)),
                ('last_name',
                 models.CharField(blank=True, max_length=30, null=True)),
                ('groups',
                 models.ManyToManyField(
                     blank=True,
                     help_text=
                     'The groups this user belongs to. A user will get all permissions granted to each of their groups.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Group',
                     verbose_name=_('groups'))),
                ('user_permissions',
                 models.ManyToManyField(
                     blank=True,
                     help_text='Specific permissions for this user.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Permission',
                     verbose_name=_('user permissions'))),
            ],
            options={
                'verbose_name': _('User'),
                'verbose_name_plural': _('Users'),
                'abstract': False,
            },
            managers=[
                ('objects', market.core.managers.CustomUserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Address',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('name',
                 models.CharField(max_length=255,
                                  null=True,
                                  verbose_name='Name/Company')),
                ('street',
                 models.CharField(max_length=255, verbose_name=_('Street'))),
                ('city', models.CharField(max_length=20,
                                          verbose_name=_('City'))),
                ('zip_code',
                 models.CharField(max_length=20,
                                  null=True,
                                  verbose_name=_('Post Code'))),
                ('state',
                 models.CharField(blank=True,
                                  max_length=50,
                                  null=True,
                                  verbose_name=_('State'))),
                ('country',
                 models.CharField(blank=False,
                                  max_length=10,
                                  null=False,
                                  verbose_name=_('Country'),
                                  choices=())),
                ('position_x',
                 models.DecimalField(blank=True,
                                     decimal_places=16,
                                     max_digits=19,
                                     null=True,
                                     verbose_name=_('Position lng'))),
                ('position_y',
                 models.DecimalField(blank=True,
                                     decimal_places=16,
                                     max_digits=19,
                                     null=True,
                                     verbose_name=_('Position lat'))),
                ('business_id',
                 models.CharField(blank=True,
                                  max_length=10,
                                  null=True,
                                  verbose_name=_('Business number'))),
                ('tax_id',
                 models.CharField(blank=True,
                                  max_length=12,
                                  null=True,
                                  verbose_name=_('Tax ID'))),
                ('extra',
                 models.TextField(blank=True,
                                  help_text='Will appear on an invoice.',
                                  null=True,
                                  verbose_name=_('Further description'))),
            ],
            options={
                'verbose_name': _('Address'),
                'verbose_name_plural': _('Addresses'),
            },
        ),
        migrations.CreateModel(
            name='BankAccount',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('prefix',
                 models.DecimalField(blank=True,
                                     decimal_places=0,
                                     max_digits=15,
                                     null=True,
                                     verbose_name=_('Prefix'))),
                ('number',
                 models.DecimalField(decimal_places=0,
                                     max_digits=16,
                                     verbose_name=_('Account number'))),
                ('bank',
                 models.DecimalField(decimal_places=0,
                                     max_digits=4,
                                     verbose_name=_('Bank code'))),
                ('user',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='bank_accounts',
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Cart',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('modified', models.DateTimeField(auto_now=True)),
                ('user',
                 models.OneToOneField(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': _('Cart'),
                'verbose_name_plural': _('Carts'),
            },
        ),
        migrations.CreateModel(
            name='CartItem',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('quantity', models.IntegerField()),
                ('cart',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='items',
                                   to='market.Cart')),
            ],
            options={
                'verbose_name': _('Cart item'),
                'verbose_name_plural': _('Cart items'),
            },
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.IntegerField(primary_key=True, serialize=False)),
                ('level', models.PositiveSmallIntegerField(default=1)),
                ('ordering', models.SmallIntegerField(default=0)),
                ('name', models.CharField(max_length=255)),
                ('slug',
                 models.SlugField(blank=True, db_index=False, max_length=255)),
                ('path',
                 models.CharField(
                     blank=True,
                     db_index=True,
                     help_text=_("Generated automatically, don't edit"),
                     max_length=255,
                     unique=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('parent',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='children',
                                   to='market.Category')),
            ],
            options={
                'verbose_name': _('Category'),
                'verbose_name_plural': _('Categories'),
                'ordering': ['ordering', 'path'],
            },
        ),
        migrations.CreateModel(
            name='ExtraOrderItemPriceField',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('label',
                 models.CharField(max_length=255, verbose_name=_('Label'))),
                ('value',
                 market.utils.models.CurrencyField(decimal_places=2,
                                                   default=Decimal('0.0'),
                                                   max_digits=30,
                                                   verbose_name=_('Amount'))),
                ('data',
                 jsonfield.JSONField(blank=True,
                                     null=True,
                                     verbose_name=_('Serialized extra data'))),
            ],
            options={
                'verbose_name': _('Extra order item price field'),
                'verbose_name_plural': _('Extra order item price fields'),
            },
        ),
        migrations.CreateModel(
            name='ExtraOrderPriceField',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('label',
                 models.CharField(max_length=255, verbose_name=_('Label'))),
                ('value',
                 market.utils.models.CurrencyField(decimal_places=2,
                                                   default=Decimal('0.0'),
                                                   max_digits=30,
                                                   verbose_name=_('Amount'))),
                ('data',
                 jsonfield.JSONField(blank=True,
                                     null=True,
                                     verbose_name=_('Serialized extra data'))),
                ('is_shipping',
                 models.BooleanField(default=False,
                                     editable=False,
                                     verbose_name=_('Is shipping'))),
            ],
            options={
                'verbose_name': _('Extra order price field'),
                'verbose_name_plural': _('Extra order price fields'),
            },
        ),
        migrations.CreateModel(
            name='Manufacturer',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('average_vote',
                 models.FloatField(blank=True,
                                   default=2.5,
                                   verbose_name=_('rating'))),
                ('num_votes',
                 models.IntegerField(blank=True,
                                     default=0,
                                     verbose_name=_('votes'))),
                ('name', models.CharField(max_length=100)),
                ('slug', models.SlugField()),
                ('email',
                 models.EmailField(blank=True,
                                   help_text=_('Customer support'),
                                   max_length=50,
                                   null=True)),
                ('phone',
                 models.CharField(
                     blank=True,
                     max_length=20,
                     null=True,
                     validators=[
                         django.core.validators.RegexValidator(
                             re.compile('^[\\+\\d\\s][\\s0-9]{8,22}$', 32),
                             'Enter a valid phone number.', 'invalid')
                     ])),
                ('description',
                 models.TextField(
                     blank=True,
                     null=True,
                     verbose_name=_('Short description of the company'))),
                ('logo',
                 stdimage.models.StdImageField(
                     blank=True,
                     help_text=_('Preferable a square of size 300x300 pixels'),
                     null=True,
                     upload_to=market.utils.models.upload_to_classname,
                     verbose_name=_('Photo'))),
                ('address',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='market.Address',
                                   verbose_name=_('Headquaters'))),
                ('category',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     to='market.Category',
                     verbose_name=_('Manufacturer specialization'))),
            ],
        ),
        migrations.CreateModel(
            name='Offer',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('name',
                 models.CharField(max_length=255, verbose_name=_('Name'))),
                ('slug', models.SlugField(unique=True,
                                          verbose_name=_('Slug'))),
                ('active',
                 models.BooleanField(db_index=True,
                                     default=False,
                                     verbose_name=_('Active'))),
                ('created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name=_('Date added'))),
                ('modified',
                 models.DateTimeField(auto_now=True,
                                      verbose_name=_('Last modified'))),
                ('unit_price',
                 market.utils.models.CurrencyField(
                     decimal_places=2,
                     default=Decimal('0.0'),
                     max_digits=30,
                     verbose_name=_('Unit price'))),
                ('unit_quantity',
                 models.DecimalField(decimal_places=4,
                                     max_digits=12,
                                     null=False,
                                     blank=False,
                                     default=Decimal(1))),
                ('unit_measure',
                 models.CharField(max_length=5,
                                  null=False,
                                  blank=False,
                                  choices=(('ks', _("units")), ('g',
                                                                _("grams")),
                                           ('kg', _("kilograms"))),
                                  default='ks')),
                ('quantity',
                 models.SmallIntegerField(default=-1,
                                          help_text=_('-1 means infinity'),
                                          verbose_name=_('Quantity'))),
                ('sold', models.IntegerField(default=0)),
                ('note',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name=_('Comment your offer'))),
                ('shipping_price',
                 market.utils.models.CurrencyField(
                     blank=True,
                     decimal_places=2,
                     default=0,
                     max_digits=30,
                     verbose_name=_('Shipping price'))),
                ('removed',
                 models.BooleanField(default=False,
                                     verbose_name=_('Removed'))),
                ('category',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='market.Category')),
            ],
            options={
                'verbose_name': _('Offer'),
                'verbose_name_plural': _('Offers'),
            },
        ),
        migrations.CreateModel(
            name='Order',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('uid',
                 models.SlugField(blank=True,
                                  max_length=settings.MARKET_UID_LENGTH,
                                  null=True)),
                ('shipping',
                 models.BooleanField(
                     default=False,
                     help_text=_('Marks if seller ships the order'))),
                ('status',
                 models.IntegerField(choices=[(10, 'Processing'),
                                              (20, 'Confirming'),
                                              (25, 'Unconfirmed'),
                                              (30, 'Confirmed'), (40, 'Paid'),
                                              (45, 'Shipped'),
                                              (50, 'Received'),
                                              (60, 'Canceled')],
                                     default=10,
                                     verbose_name=_('Status'))),
                ('subtotal',
                 market.utils.models.CurrencyField(
                     decimal_places=2,
                     default=Decimal('0.0'),
                     max_digits=30,
                     verbose_name=_('Order subtotal'))),
                ('total',
                 market.utils.models.CurrencyField(
                     decimal_places=2,
                     default=Decimal('0.0'),
                     max_digits=30,
                     verbose_name=_('Order Total'))),
                ('shipping_address_text',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name=_('Shipping address'))),
                ('billing_address_text',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name=_('Billing address'))),
                ('created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name=_('Created'))),
                ('modified',
                 models.DateTimeField(auto_now=True,
                                      verbose_name=_('Updated'))),
                ('message', models.TextField(blank=True, null=True)),
                ('order',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='suborders',
                                   to='market.Order')),
            ],
            options={
                'verbose_name': _('Order'),
                'verbose_name_plural': _('Orders'),
                'ordering': ['status', 'created'],
            },
        ),
        migrations.CreateModel(
            name='OrderExtraInfo',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('text',
                 models.TextField(blank=True, verbose_name=_('Extra info'))),
                ('order',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='extra_info',
                                   to='market.Order',
                                   verbose_name=_('Order'))),
            ],
            options={
                'verbose_name': _('Order extra info'),
                'verbose_name_plural': _('Order extra info'),
            },
        ),
        migrations.CreateModel(
            name='OrderItem',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('item_reference',
                 models.CharField(max_length=255,
                                  verbose_name=_('Item reference'))),
                ('item_name',
                 models.CharField(blank=True,
                                  max_length=255,
                                  null=True,
                                  verbose_name=_('Item name'))),
                ('unit_price',
                 market.utils.models.CurrencyField(
                     decimal_places=2,
                     default=Decimal('0.0'),
                     max_digits=30,
                     verbose_name=_('Unit price'))),
                ('quantity', models.IntegerField(verbose_name=_('Quantity'))),
                ('subtotal',
                 market.utils.models.CurrencyField(
                     decimal_places=2,
                     default=Decimal('0.0'),
                     max_digits=30,
                     verbose_name=_('Line subtotal'))),
                ('total',
                 market.utils.models.CurrencyField(
                     decimal_places=2,
                     default=Decimal('0.0'),
                     max_digits=30,
                     verbose_name=_('Line total'))),
                ('order',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='items',
                                   to='market.Order',
                                   verbose_name=_('Order'))),
            ],
            options={
                'verbose_name': _('Order item'),
                'verbose_name_plural': _('Order items'),
            },
        ),
        migrations.CreateModel(
            name='OrderPayment',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('amount',
                 market.utils.models.CurrencyField(decimal_places=2,
                                                   default=Decimal('0.0'),
                                                   max_digits=30,
                                                   verbose_name=_('Amount'))),
                ('transaction_id',
                 models.CharField(
                     help_text="The transaction processor's reference",
                     max_length=255,
                     verbose_name=_('Transaction ID'))),
                ('payment_method',
                 models.CharField(help_text=_(
                     'The payment backend used to process the purchase'),
                                  max_length=255,
                                  verbose_name=_('Payment method'))),
                ('order',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='market.Order',
                                   verbose_name=_('Order'))),
            ],
            options={
                'verbose_name': _('Order payment'),
                'verbose_name_plural': _('Order payments'),
            },
        ),
        migrations.CreateModel(
            name='PaymentBackend',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('name', models.CharField(max_length=50)),
                ('url_name', models.SlugField()),
                ('active', models.BooleanField(default=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('logo',
                 models.ImageField(
                     blank=True,
                     null=True,
                     upload_to=market.utils.models.upload_to_classname)),
            ],
            options={
                'verbose_name': _('Payment backend'),
                'verbose_name_plural': _('Payment backends'),
            },
        ),
        migrations.CreateModel(
            name='Product',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('average_vote',
                 models.FloatField(blank=True,
                                   default=2.5,
                                   verbose_name=_('rating'))),
                ('num_votes',
                 models.IntegerField(blank=True,
                                     default=0,
                                     verbose_name=_('votes'))),
                ('name',
                 models.CharField(max_length=255, verbose_name=_('Name'))),
                ('slug', models.SlugField(unique=True,
                                          verbose_name=_('Slug'))),
                ('active',
                 models.BooleanField(db_index=True,
                                     default=True,
                                     verbose_name=_('Active'))),
                ('removed',
                 models.BooleanField(default=False,
                                     verbose_name=_('Removed'))),
                ('created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name=_('Date added'))),
                ('modified',
                 models.DateTimeField(auto_now=True,
                                      verbose_name=_('Last modified'))),
                ('photo',
                 stdimage.models.StdImageField(
                     blank=True,
                     null=True,
                     upload_to=market.utils.models.upload_to_classname,
                     verbose_name=_('Photo'))),
                ('description',
                 models.TextField(verbose_name=_('Description of product'))),
                ('extra',
                 models.TextField(
                     blank=True,
                     help_text=
                     'One information per line. Use colons. (e.g. wight: 20kg)',
                     null=True,
                     verbose_name=_('Structured information'))),
                ('expedition_days',
                 models.SmallIntegerField(
                     blank=True,
                     default=0,
                     verbose_name=_('Days to expedition'))),
                ('price',
                 market.utils.models.CurrencyField(
                     blank=True,
                     decimal_places=2,
                     default=Decimal('0.0'),
                     help_text=
                     "The best price from all offers. Don't edit manually.",
                     max_digits=30,
                     null=True,
                     verbose_name=_('Best price'))),
                ('tax',
                 models.DecimalField(blank=True,
                                     decimal_places=0,
                                     default=Decimal('21'),
                                     help_text='Tax in % (e.g. 21).',
                                     max_digits=2,
                                     verbose_name=_('Tax'))),
                ('sold', models.IntegerField(default=0)),
                ('editable', models.BooleanField(default=False)),
                ('category',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='market.Category',
                                   verbose_name=_('Category'))),
                ('manufacturer',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to='market.Manufacturer',
                     verbose_name=_('Manufacturer'))),
            ],
        ),
        migrations.CreateModel(
            name='Vendor',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('uid',
                 models.SlugField(blank=True,
                                  max_length=settings.MARKET_UID_LENGTH,
                                  null=True)),
                ('average_vote',
                 models.FloatField(blank=True,
                                   default=2.5,
                                   verbose_name=_('rating'))),
                ('num_votes',
                 models.IntegerField(blank=True,
                                     default=0,
                                     verbose_name=_('votes'))),
                ('name',
                 models.CharField(
                     help_text='No need to be official or unique.',
                     max_length=100,
                     verbose_name=_('Vendor name'))),
                ('motto',
                 models.CharField(max_length=255, verbose_name=_('Motto'))),
                ('slug', models.SlugField(blank=True, unique=True)),
                ('description',
                 models.TextField(
                     blank=True,
                     null=True,
                     verbose_name=_('Description of your vendor'))),
                ('logo',
                 stdimage.models.StdImageField(
                     blank=True,
                     help_text=_('Preferable a square of size 300x300 pixels'),
                     null=True,
                     upload_to=market.utils.models.upload_to_classname,
                     verbose_name=_('Photo'))),
                ('ships', models.BooleanField(default=True)),
                ('background',
                 stdimage.models.StdImageField(
                     blank=True,
                     help_text=_(
                         'Preferable a rectagle of size 960x720 pixels'),
                     null=True,
                     upload_to=market.utils.models.upload_to_classname,
                     verbose_name=_('Background'))),
                ('openings',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name=_('Opening hours'))),
                ('active', models.BooleanField(db_index=True, default=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('modified', models.DateTimeField(auto_now=True)),
                ('deactivated', models.DateTimeField(blank=True, null=True)),
                ('address',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to='market.Address',
                     verbose_name=_('Billing Address'))),
                ('bank_account',
                 models.OneToOneField(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     to='market.BankAccount')),
                ('category',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='market.Category',
                                   verbose_name=_('Category'))),
                ('position',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='vendor_locations+',
                     to='market.Address',
                     verbose_name=_('Placement of your vendor'))),
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='VendorPayment',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('data',
                 django.contrib.postgres.fields.jsonb.JSONField(
                     help_text='Auth information for the payment service')),
                ('payment',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='market.PaymentBackend')),
            ],
            options={
                'verbose_name': 'Vendor Payment',
            },
        ),
        migrations.CreateModel(
            name='Bill',
            fields=[
                ('invoice_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='invoice.Invoice')),
                ('period_start', models.DateField()),
                ('period_end', models.DateField()),
                ('vendor',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='market.Vendor')),
            ],
            options={
                'verbose_name': _('Bill'),
                'verbose_name_plural': _('Bills'),
                'ordering': ['-period_end'],
            },
            bases=('invoice.invoice', ),
        ),
        migrations.CreateModel(
            name='Billing',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('period',
                 models.PositiveIntegerField(choices=[(1, 'monthly'),
                                                      (3, 'quartely'),
                                                      (6, 'half-yearly'),
                                                      (12, 'yearly')],
                                             default=3)),
                ('next_period',
                 models.PositiveIntegerField(
                     choices=[(1, 'monthly'), (3, 'quartely'),
                              (6, 'half-yearly'),
                              (12, 'yearly')],
                     default=3,
                     verbose_name=_('Next billing period'))),
                ('last_billed',
                 models.DateField(default=django.utils.timezone.now)),
                ('next_billing',
                 models.DateField(blank=True,
                                  help_text=_('Is set automatically'))),
                ('active', models.BooleanField(db_index=True, default=True)),
                ('vendor',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to='market.Vendor')),
            ],
            options={
                'verbose_name': _('Billing'),
                'verbose_name_plural': _('Billings'),
            },
        ),
        migrations.CreateModel(
            name='Campaign',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('code',
                 models.SlugField(help_text=_('Has to be UPPER CASE'),
                                  max_length=8)),
                ('expiration', models.DateTimeField()),
                ('usages', models.SmallIntegerField()),
            ],
            options={
                'verbose_name': _('Campaign'),
                'verbose_name_plural': _('Campaigns'),
            },
        ),
        migrations.CreateModel(
            name='Discount',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('name', models.CharField(max_length=120)),
                ('percent',
                 models.SmallIntegerField(default=100,
                                          help_text='Discount in %')),
                ('usages',
                 models.SmallIntegerField(default=1,
                                          help_text=_('Usages in months'))),
                ('vendor',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='tariff_discounts',
                                   to='market.Vendor')),
            ],
            options={
                'verbose_name': _('Discount'),
                'verbose_name_plural': _('Discounts'),
            },
        ),
        migrations.CreateModel(
            name='Statistics',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('quantity', models.PositiveIntegerField(default=0)),
                ('price',
                 market.utils.models.CurrencyField(decimal_places=2,
                                                   default=0,
                                                   max_digits=30)),
                ('vendor',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='market.Vendor')),
            ],
            options={
                'verbose_name': _('Statistics'),
                'verbose_name_plural': _('Statistics'),
            },
        ),
        migrations.CreateModel(
            name='Tariff',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name=_('ID'))),
                ('name', models.CharField(max_length=120)),
                ('description', models.TextField(null=True)),
                ('slug', models.SlugField()),
                ('daily',
                 market.utils.models.CurrencyField(decimal_places=2,
                                                   default=0,
                                                   max_digits=30)),
                ('active', models.BooleanField(db_index=True, default=True)),
                ('quantity', models.IntegerField()),
                ('price',
                 market.utils.models.CurrencyField(decimal_places=2,
                                                   default=Decimal('0.0'),
                                                   max_digits=30)),
            ],
            options={
                'verbose_name': _('Tariff'),
                'verbose_name_plural': _('Tariffs'),
                'ordering': ('daily', ),
            },
        ),
    ]
Exemple #11
0
class Migration(migrations.Migration):

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('djangoplugins', '__first__'),
    ]

    operations = [
        migrations.CreateModel(
            name='Document',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  auto_created=True,
                                  primary_key=True,
                                  serialize=False)),
                ('name', models.CharField(db_index=True, max_length=255)),
                ('content_type', models.CharField(max_length=255)),
                ('data', models.BinaryField()),
                ('filesize', models.IntegerField(editable=False)),
                ('sha1',
                 models.CharField(unique=True,
                                  db_index=True,
                                  max_length=40,
                                  editable=False)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('modified_at', models.DateTimeField(auto_now=True)),
                ('created_by',
                 models.ForeignKey(related_name='documents_created',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Document',
                'ordering': ['pk'],
                'verbose_name_plural': 'Documents',
            },
        ),
        migrations.CreateModel(
            name='DocumentIndex',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  auto_created=True,
                                  primary_key=True,
                                  serialize=False)),
                ('json', jsonb.JSONField(verbose_name='JSON')),
                ('geometry',
                 django.contrib.gis.db.models.fields.GeometryCollectionField(
                     srid=4326, geography=True, blank=True, null=True)),
                ('document',
                 models.ForeignKey(related_name='indices',
                                   to='documents.Document')),
            ],
            options={
                'verbose_name': 'Index',
                'ordering': ['pk'],
                'verbose_name_plural': 'Indices',
            },
        ),
        migrations.CreateModel(
            name='DocumentIndexAttachment',
            fields=[
                ('id',
                 models.AutoField(verbose_name='ID',
                                  auto_created=True,
                                  primary_key=True,
                                  serialize=False)),
                ('category', models.CharField(db_index=True, max_length=50)),
                ('content_type', models.CharField(max_length=255)),
                ('data', models.BinaryField()),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('modified_at', models.DateTimeField(auto_now=True)),
                ('created_by',
                 models.ForeignKey(related_name='attachments_created',
                                   to=settings.AUTH_USER_MODEL)),
                ('index',
                 models.ForeignKey(related_name='attachments',
                                   to='documents.DocumentIndex')),
                ('modified_by',
                 models.ForeignKey(related_name='attachments_modified',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Attachment',
                'ordering': ['pk'],
                'verbose_name_plural': 'Attachments',
            },
        ),
        migrations.CreateModel(
            name='DocumentType',
            fields=[
                ('name',
                 models.SlugField(primary_key=True,
                                  max_length=20,
                                  serialize=False)),
                ('definition',
                 djangoplugins.fields.PluginField(related_name='definition',
                                                  to='djangoplugins.Plugin')),
                ('indexer',
                 djangoplugins.fields.PluginField(related_name='indexer',
                                                  to='djangoplugins.Plugin')),
                ('retrieve_permissions',
                 djangoplugins.fields.ManyPluginField(
                     blank=True,
                     related_name='retrieve_permissions',
                     to='djangoplugins.Plugin')),
                ('upload_permissions',
                 djangoplugins.fields.ManyPluginField(
                     blank=True,
                     related_name='upload_permissions',
                     to='djangoplugins.Plugin')),
                ('validators',
                 djangoplugins.fields.ManyPluginField(
                     blank=True,
                     related_name='validators',
                     to='djangoplugins.Plugin')),
            ],
            options={
                'verbose_name': 'Document Type',
                'ordering': ['name'],
                'verbose_name_plural': 'Document Types',
            },
        ),
        migrations.AddField(
            model_name='document',
            name='document_type',
            field=models.ForeignKey(related_name='documents',
                                    to='documents.DocumentType'),
        ),
        migrations.AddField(
            model_name='document',
            name='modified_by',
            field=models.ForeignKey(related_name='documents_modified',
                                    to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterUniqueTogether(
            name='document',
            unique_together=set([('document_type', 'name')]),
        ),
    ]
Exemple #12
0
class Migration(migrations.Migration):
    initial = True
    dependencies = [('jobs', '0001_initial')]

    operations = [
        migrations.CreateModel(
            name='NodesConfiguration',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('cpu_model',
                 models.CharField(max_length=128, verbose_name='CPU model')),
                ('cpu_number',
                 models.PositiveSmallIntegerField(verbose_name='CPU number')),
                ('ram_memory',
                 models.PositiveIntegerField(verbose_name='RAM memory')),
                ('disk_memory',
                 models.PositiveIntegerField(verbose_name='Disk memory')),
            ],
            options={'db_table': 'nodes_configuration'}),
        migrations.CreateModel(
            name='Node',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('config',
                 models.ForeignKey(on_delete=models.deletion.CASCADE,
                                   to='service.NodesConfiguration')),
                ('hostname', models.CharField(max_length=128)),
                ('status',
                 models.CharField(choices=[('USER_OCCUPIED', 'User occupied'),
                                           ('HEALTHY', 'Healthy'),
                                           ('AILING', 'Ailing'),
                                           ('DISCONNECTED', 'Disconnected')],
                                  max_length=13)),
            ],
            options={'db_table': 'node'}),
        migrations.CreateModel(
            name='Task',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('status',
                 models.CharField(choices=[('PENDING', 'Pending'),
                                           ('PROCESSING', 'Processing'),
                                           ('FINISHED', 'Finished'),
                                           ('ERROR', 'Error'),
                                           ('CANCELLED', 'Cancelled')],
                                  default='PENDING',
                                  max_length=10)),
                ('error', models.CharField(max_length=1024, null=True)),
                ('filename', models.CharField(max_length=256)),
                ('archive', models.FileField(upload_to='Service')),
                ('description', jsonb.JSONField()),
                ('decision',
                 models.ForeignKey(on_delete=models.deletion.CASCADE,
                                   related_name='tasks',
                                   to='jobs.Decision')),
            ],
            options={'db_table': 'task'},
            bases=(bridge.utils.WithFilesMixin, models.Model)),
        migrations.CreateModel(
            name='Solution',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('decision',
                 models.ForeignKey(on_delete=models.deletion.CASCADE,
                                   related_name='solutions_set',
                                   to='jobs.Decision')),
                ('task',
                 models.OneToOneField(on_delete=models.deletion.CASCADE,
                                      related_name='solution',
                                      to='service.Task')),
                ('filename', models.CharField(max_length=256)),
                ('archive', models.FileField(upload_to='Service')),
                ('description', jsonb.JSONField()),
            ],
            options={'db_table': 'solution'},
            bases=(bridge.utils.WithFilesMixin, models.Model)),
        migrations.CreateModel(
            name='VerificationTool',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('version', models.CharField(max_length=128)),
                ('scheduler',
                 models.ForeignKey(on_delete=models.deletion.CASCADE,
                                   to='jobs.Scheduler')),
            ],
            options={'db_table': 'verification_tool'}),
        migrations.CreateModel(
            name='Workload',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('reserved_cpu_number',
                 models.PositiveSmallIntegerField(
                     verbose_name='Reserved CPU number')),
                ('reserved_ram_memory',
                 models.PositiveIntegerField(
                     verbose_name='Reserved RAM memory')),
                ('reserved_disk_memory',
                 models.PositiveIntegerField(
                     verbose_name='Reserved disk memory')),
                ('running_verification_jobs',
                 models.PositiveIntegerField(
                     verbose_name='Running verification jobs')),
                ('running_verification_tasks',
                 models.PositiveIntegerField(
                     verbose_name='Running verification tasks')),
                ('available_for_jobs',
                 models.BooleanField(verbose_name='Available for jobs')),
                ('available_for_tasks',
                 models.BooleanField(verbose_name='Available for tasks')),
                ('node',
                 models.OneToOneField(on_delete=models.deletion.CASCADE,
                                      related_name='workload',
                                      to='service.Node')),
            ],
            options={'db_table': 'workload'}),
    ]
Exemple #13
0
ATTRIBUTE_NEW_FIELDS = [
    migrations.AddField(
        model_name="attribute",
        name="input_type",
        field=models.CharField(
            choices=[("dropdown", "Dropdown"),
                     ("multiselect", "Multi Select")],
            default="dropdown",
            max_length=50,
        ),
    ),
    migrations.AlterField(
        model_name="product",
        name="attributes",
        field=jsonb.JSONField(blank=True,
                              default=dict,
                              validators=[validate_attribute_json]),
    ),
    migrations.AlterField(
        model_name="productvariant",
        name="attributes",
        field=jsonb.JSONField(blank=True,
                              default=dict,
                              validators=[validate_attribute_json]),
    ),
    migrations.AddField(
        model_name="attribute",
        name="available_in_grid",
        field=models.BooleanField(blank=True, default=True),
    ),
    migrations.AddField(