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
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)), ]
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), ) ]
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)
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
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
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'
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', ), }, ), ]
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')]), ), ]
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'}), ]
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(