class EducationalOpportunity(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True) scales = ArrayField(size=6, validators=[MinLengthValidator(6), MinLengthValidator(6)], base_field=models.IntegerField(validators=[MinValueValidator(0), MaxValueValidator(100)])) activity = models.CharField(max_length=50) objects = EducationalOpportunityManager()
class Transaction(models.Model): amount = models.IntegerField(blank=False) track_id = models.CharField(blank=False, unique=True, max_length=20) is_deposit = models.BooleanField(default=True) recipient_has_wallet = models.BooleanField(default=True) status = models.CharField(choices=TRANSACTION_STATUSES, default='new', max_length=100) recipient = models.CharField(validators=[MinLengthValidator(9)], max_length=14) user = models.ForeignKey(User, on_delete=models.CASCADE) mobile_wallet = models.ForeignKey(MobileWallet, on_delete=models.CASCADE) recipient_operator = models.ForeignKey(Operator, on_delete=models.CASCADE, null=True, blank=True) history = models.CharField(null=True, max_length=255) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ('-updated_at',) def __str__(self): return str(self.amount) + ' FCFA to ' + self.recipient +' '+ self.status def display_proof(self): """Create a string for the Genre. This is required to display genre in Admin.""" return ', '.join(p.mno_id for p in self.proof_set.all()) display_proof.short_description = 'MNO ID'
def __init__(self, **kwargs): self.allow_blank = kwargs.pop('allow_blank', False) max_length = kwargs.pop('max_length', None) min_length = kwargs.pop('min_length', None) super(CharField, self).__init__(**kwargs) if max_length is not None: message = self.error_messages['max_length'].format(max_length=max_length) self.validators.append(MaxLengthValidator(max_length, message=message)) if min_length is not None: message = self.error_messages['min_length'].format(min_length=min_length) self.validators.append(MinLengthValidator(min_length, message=message))
def __init__(self, max_length=14, min_length=11, **kwargs): self.allow_blank = kwargs.get('allow_blank', False) self.max_length = kwargs.get('max_length', None) self.min_length = kwargs.get('min_length', None) super(BRCPFField, self).__init__(**kwargs) if self.max_length is not None: message = self.error_messages['max_length'].format( max_length=self.max_length) self.validators.append( MaxLengthValidator(self.max_length, message=message)) if self.min_length is not None: message = self.error_messages['min_length'].format( min_length=self.min_length) self.validators.append( MinLengthValidator(self.min_length, message=message))
def __init__(self, **kwargs): self.allow_blank = kwargs.pop('allow_blank', False) self.trim_whitespace = kwargs.pop('trim_whitespace', True) self.max_length = kwargs.pop('max_length', None) self.min_length = kwargs.pop('min_length', None) self.split_flag = kwargs.pop('split_flag', True) super(IdsSplitField, self).__init__(**kwargs) if self.max_length is not None: message = lazy(self.error_messages['max_length'].format, six.text_type)(max_length=self.max_length) self.validators.append( MaxLengthValidator(self.max_length, message=message)) if self.min_length is not None: message = lazy(self.error_messages['min_length'].format, six.text_type)(min_length=self.min_length) self.validators.append( MinLengthValidator(self.min_length, message=message))
class Station(models.Model): name = models.CharField(max_length=100, blank=False) is_merchant = models.BooleanField(default=True) state = models.CharField(choices=STATION_STATES, default='offline', max_length=100) phone_number = models.CharField(validators=[MinLengthValidator(9)], max_length=14, blank=False) imei = models.CharField(unique=True, max_length=20, null=True, blank=True) imsi = models.CharField(max_length=20) port = models.CharField(max_length=20, null=True, blank=True) operator = models.ForeignKey(Operator, on_delete=models.CASCADE, related_name='stations') modem = models.ForeignKey(Modem, on_delete=models.CASCADE, null=False, blank=False, related_name='stations') description = models.TextField(blank=True) services = models.ManyToManyField(Service, through='ServiceStation') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ('updated_at', ) unique_together = (( 'phone_number', 'modem', ), ( 'port', 'modem', )) def __str__(self): return self.name + " " + self.phone_number + " " + self.operator.name + " " + self.modem.name