Example #1
0
class UserBase(AbstractBaseUser, PermissionsMixin):
    internal_name = models.CharField(_("内部登录名称"), max_length=64, unique=True)
    pn = models.CharField(
        _('电话号码'),
        max_length=25,
        null=True,
        validators=[validators.get_validator("phone number")])
    is_active = models.BooleanField(default=True, verbose_name=_("是否在用"))
    is_staff = models.BooleanField(default=False, verbose_name=_("是否为管理者"))
    role = models.IntegerField(_("用户角色"), choices=user_role_choice.choice)
    registered_date = models.DateTimeField(_("注册时间"), auto_now_add=True)

    objects = UserManager()
    USERNAME_FIELD = 'internal_name'
    REQUIRED_FIELDS = []

    class Meta:
        verbose_name = _('用户管理')
        verbose_name_plural = _('用户管理')

    def get_short_name(self):
        return u"{} - {}".format(self.internal_name, self.pn)

    def get_full_name(self):
        return u"{} - {}".format(self.internal_name, self.pn)

    def __unicode__(self):
        return self.pn or self.internal_name
Example #2
0
class OrderInfo(models.Model):
    create_time = models.DateTimeField(_('订单创建时间'), auto_now_add=True)
    amount = models.FloatField(_("订单金额"), default=0.0)
    o_state = models.IntegerField(_("订单状态"), choices=order_state_choice.choice)
    uid_c = models.ForeignKey(UserBase,
                              related_name="order_c",
                              verbose_name=_("客户id"),
                              null=True,
                              blank=True)
    uid_b = models.ForeignKey(UserBase,
                              related_name="order_b",
                              verbose_name=_("回收员id"),
                              null=True,
                              blank=True)
    c_delivery_info = models.ForeignKey(UserDeliveryInfo,
                                        verbose_name=_("客户收货信息"),
                                        null=True,
                                        blank=True)
    pn = models.CharField(
        _('电话号码'),
        max_length=25,
        null=True,
        blank=True,
        validators=[validators.get_validator("phone number")])

    recycle_bin = models.ForeignKey(
        RecycleBin,
        verbose_name=_("回收站"),
        null=True,
        blank=True,
    )

    def __unicode__(self):
        return u"{}:{} vs {}".format(self.id, self.uid_c, self.uid_b)
Example #3
0
class UserValidate(models.Model):
    uid = models.OneToOneField(UserBase,
                               on_delete=models.CASCADE,
                               related_name="user_validate",
                               db_index=True)
    contact = models.CharField(max_length=100, null=True, blank=True)
    company = models.CharField(max_length=255, null=True, blank=True)
    idcard_number = models.CharField(max_length=30, null=True, blank=True)
    bankcard = models.CharField(max_length=255, null=True, blank=True)
    obank = models.CharField(max_length=255, null=True, blank=True)
    texno = models.CharField(max_length=255, null=True, blank=True)
    address = models.CharField(max_length=255, null=True, blank=True)
    phonenum = models.CharField(
        max_length=25,
        null=True,
        blank=True,
        validators=[validators.get_validator("phone number")])
    t_user = models.IntegerField(choices=t_user_choice.choice,
                                 null=True,
                                 blank=True)
    validate_status = models.IntegerField(
        choices=validate_status_choice.choice)

    def __unicode__(self):
        if self.company is not None:
            return self.company
        elif self.contact is not None:
            return self.contact
        else:
            return "Validate User: %s" % self.uid.pn
Example #4
0
class UserBase(AbstractBaseUser, PermissionsMixin):

    email = models.EmailField(_('email address'), null=True)
    # FIXME: This is an issue, pn field should not be unique.
    pn = models.CharField(
        _('phone number'),
        max_length=25,
        unique=True,
        validators=[validators.get_validator("phone number")])
    role = models.IntegerField(_("user role"), choices=role_choice.choice)
    register_date = models.DateTimeField(_("register date"), auto_now_add=True)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)

    objects = UserManager()
    USERNAME_FIELD = 'pn'
    REQUIRED_FIELDS = []

    class Meta:
        verbose_name = _('userbase')
        verbose_name_plural = _('usersbase')
        unique_together = ('pn', 'role')

    def get_full_name(self):
        return self.pn

    def get_short_name(self):
        return self.pn

    def email_user(self, subject, message, from_email=None, **kwargs):
        send_mail(subject, message, from_email, [self.email], **kwargs)
Example #5
0
class PNFinalRegisterSerializer(serializers.ModelSerializer):
    sid = serializers.CharField(max_length=60)
    password = serializers.CharField(
        validators=[validators.get_validator("user password")])

    class Meta:
        model = UserBase
        fields = ('pn', 'role', 'password', 'sid')
Example #6
0
class ResetPasswordSerializer(serializers.ModelSerializer):
    sid = serializers.CharField(max_length=60)
    vcode = serializers.CharField(max_length=6)
    pn = serializers.CharField(
        validators=[validators.get_validator("phone number")])

    class Meta:
        model = UserBase
        fields = ('pn', 'role', 'password', 'sid', 'vcode')
Example #7
0
class UserValidate(models.Model):
    uid = models.OneToOneField(UserBase,
                               on_delete=models.CASCADE,
                               related_name="user_validate",
                               db_index=True)
    contact = models.CharField(_("联系人姓名"),
                               max_length=100,
                               null=True,
                               blank=True)
    company = models.CharField(_("公司名称"),
                               max_length=255,
                               null=True,
                               blank=True)
    idcard_number = models.CharField(_("身份证号"),
                                     max_length=30,
                                     null=True,
                                     blank=True)
    bankcard = models.CharField(_("银行账户"),
                                max_length=255,
                                null=True,
                                blank=True)
    obank = models.CharField(_("开户银行"), max_length=255, null=True, blank=True)
    texno = models.CharField(_("纳税人识别号"),
                             max_length=255,
                             null=True,
                             blank=True)
    address = models.CharField(_("注册地址"),
                               max_length=255,
                               null=True,
                               blank=True)
    phonenum = models.CharField(
        max_length=25,
        null=True,
        blank=True,
        validators=[validators.get_validator("phone number")],
        verbose_name="手机号/账号")
    t_user = models.IntegerField(verbose_name="用户类型",
                                 choices=t_user_choice.choice,
                                 null=True,
                                 blank=True)
    validate_status = models.IntegerField(
        _("验证状态"), choices=validate_status_choice.choice)

    class Meta:
        verbose_name = _('用户管理')
        verbose_name_plural = _('用户管理')

    def __unicode__(self):
        if self.company is not None:
            return self.company
        elif self.contact is not None:
            return self.contact
        else:
            return "Validate User: %s" % self.uid.pn
Example #8
0
class UserValidate(models.Model):
    uid = models.OneToOneField(UserBase,
                               on_delete=models.CASCADE,
                               related_name="user_validate",
                               db_index=True)
    contact = models.CharField(max_length=100, null=True, blank=True)
    company = models.CharField(max_length=255, null=True, blank=True)
    idcard_number = models.CharField(max_length=30, null=True, blank=True)
    bankcard = models.CharField(max_length=255, null=True, blank=True)
    obank = models.CharField(max_length=255, null=True, blank=True)
    texno = models.CharField(max_length=255, null=True, blank=True)
    address = models.CharField(max_length=255, null=True, blank=True)
    phonenum = models.CharField(
        max_length=25,
        null=True,
        blank=True,
        validators=[validators.get_validator("phone number")])
    t_user = models.IntegerField(choices=t_user_choice.choice,
                                 null=True,
                                 blank=True)
    validate_status = models.IntegerField(
        choices=validate_status_choice.choice)
Example #9
0
class UserDeliveryInfo(models.Model):
    uid = models.ForeignKey(
        UserBase,
        related_name="user_delivery_info",
        verbose_name=_("用户id"),
    )
    address = models.TextField(_("收货地址"))
    contact = models.CharField(_("联系人"), max_length=30, null=True, blank=True)
    house_number = models.CharField(_("门牌号"),
                                    max_length=20,
                                    null=True,
                                    blank=True)
    contact_pn = models.CharField(
        _('联系电话'),
        max_length=25,
        validators=[validators.get_validator("phone number")])
    in_use = models.BooleanField(default=True)
    lat = models.FloatField(null=True, blank=True)
    lng = models.FloatField(null=True, blank=True)
    can_resolve_gps = models.BooleanField(default=False)

    def __unicode__(self):
        return u"{} {} {} {}".format(self.address, self.house_number,
                                     self.contact, self.contact_pn)
Example #10
0
class LoginSerializer(serializers.Serializer):
    code = serializers.CharField(max_length=50)
    pn = serializers.CharField(
        max_length=20, validators=[validators.get_validator("phone number")])
Example #11
0
class ForgetPwdSerializer(serializers.Serializer):
    pn = serializers.CharField(
        max_length=20, validators=[validators.get_validator("phone number")])
    new_pwd1 = serializers.CharField(max_length=50)
    new_pwd2 = serializers.CharField(max_length=50)
    vcode = serializers.CharField(max_length=6)
Example #12
0
class SendSerializer(serializers.Serializer):
    pn = serializers.CharField(
        max_length=20, validators=[validators.get_validator("phone number")])
Example #13
0
class RecyclingStaffLoginSerializer(serializers.Serializer):
    pn = serializers.CharField(
        max_length=20, validators=[validators.get_validator("phone number")])
    pwd = serializers.CharField(max_length=50)
Example #14
0
class SubmitPnSerializer(serializers.Serializer):
    pn = serializers.CharField(
        max_length=20, validators=[validators.get_validator("phone number")])
    user_sid = serializers.CharField(max_length=127)
Example #15
0
class ChangePasswordSerializer(serializers.Serializer):
    user_sid = serializers.CharField()
    old_password = serializers.CharField()
    new_password = serializers.CharField(
        validators=[validators.get_validator("user password")])
Example #16
0
class ValidateViaSMSApiSerializer(serializers.Serializer):
    pn = serializers.CharField(validators=[
        validators.get_validator('phone number'),
    ])