class Category(models.Model): """ Category database model in the system. if "parent_category" is passed then this is a subcategory """ name = models.CharField(max_length=255, unique=True) is_verified = models.BooleanField(default=False) store_category = models.ForeignKey("core.StoreCategory", on_delete=models.CASCADE) parent_category = models.ForeignKey("self", on_delete=models.CASCADE, null=True, blank=True, related_name="sub_categories") owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True) created = jmodels.jDateField(auto_now_add=True) updated = jmodels.jDateField(auto_now=True) def __str__(self): return self.name class Meta: verbose_name_plural = "Categories"
class Store(models.Model): """ 'Store' database model in the system """ name = models.CharField(max_length=50) description = models.CharField(max_length=255, blank=True) address = models.CharField(max_length=255) long = models.DecimalField(max_digits=8, decimal_places=6) lat = models.DecimalField(max_digits=8, decimal_places=6) store_score = models.DecimalField(max_digits=2, decimal_places=1, null=True, default=None, blank=True) city = models.ForeignKey("City", on_delete=models.CASCADE) store_category = models.ForeignKey("core.StoreCategory", on_delete=models.CASCADE) owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="stores") is_open = models.BooleanField(default=False) is_verified = models.BooleanField(default=False) created = jmodels.jDateField(auto_now_add=True) updated = jmodels.jDateField(auto_now=True) def __str__(self): return self.name
class ContractModel(models.Model): reckoning = models.ForeignKey(ReckoningModel, on_delete=models.PROTECT, null=True, related_name='contracts') booker = models.ForeignKey(CommonUserModel, on_delete=models.SET_NULL, null=True, related_name='contracts') salon = models.ForeignKey(SalonModel, on_delete=models.SET_NULL, null=True, related_name='contracts') created_at_date = jmodels.jDateField(null=False) str_created_at_date = models.CharField(null=False, max_length=264) created_at_time = models.TimeField(null=False) total_price = models.FloatField(null=False) transfered_to_sportclub = models.BooleanField(null=False, default=False) transfered_at_date = jmodels.jDateField(null=True) transfered_at_time = models.TimeField(null=True) numbers = models.IntegerField(null=False) sportclub_portion = models.FloatField(null=True) company_portion = models.FloatField(null=True) def transfer_to_sportclub(self): self.transfer_to_sportclub = True date = jdatetime.datetime.now().date() time = datetime.datetime.now().time() self.transfered_at_date = date self.transfered_at_time = time self.save() def save(self, *args, **kwargs): self.str_created_at_date = str(self.created_at_date) super(ContractModel, self).save(*args, **kwargs)
class Product(models.Model): """ Product database model in the system """ name = models.CharField(max_length=255) purchased_price = models.IntegerField(null=True, blank=True) sale_price = models.IntegerField() stock = models.PositiveIntegerField() product_score = models.DecimalField(max_digits=2, decimal_places=1, null=True, default=None, blank=True) discount = models.IntegerField(null=True, blank=True) is_verified = models.BooleanField(default=False) brand = models.ForeignKey("Brand", on_delete=models.SET_NULL, null=True, blank=True) category = models.ForeignKey("Category", on_delete=models.SET_NULL, null=True, blank=True, related_name="products") store = models.ForeignKey("Store", on_delete=models.CASCADE) slug = AutoSlugField(populate_from="name", default="") created = jmodels.jDateField(auto_now_add=True) updated = jmodels.jDateField(auto_now=True) def __str__(self): return self.name
class FileRecovery(Base): RECOVERY_TYPE = ( ('نقدی', 'نقدی'), ('چک', 'چک'), ('فروش رهنی', 'فروش رهنی'), ) file = models.ForeignKey(File, verbose_name=_('پرونده'), related_name='recoveries') recovery_type = models.CharField(_('نوع وصولی'), max_length=100, choices=RECOVERY_TYPE, default='نقدی') value = models.PositiveIntegerField(_('مبلغ وصولی'), default=0) value_code = models.CharField(_('شماره سند'), max_length=200, default='0') detail = models.TextField(_('شرح')) recovery_date = jmodels.jDateField(_('تاریخ'), null=True) created_at = jmodels.jDateField(_('تاریخ'), null=True, auto_now_add=True) assurance_confirm = models.BooleanField(_('تاییدیه مالی'), default=False) class Meta: unique_together = ('file', 'recovery_type', 'value_code') verbose_name = _('file_recovery') verbose_name_plural = _('file_recoveries') db_table = 'file_recoveries' def __str__(self): return self.value_code
class LastDataModel(models.Model): salon = models.ForeignKey(SalonModel, on_delete=models.CASCADE, related_name='lastdatas', blank=False, null=False) last_length = models.IntegerField(null=True, blank=True) first_day = jmodels.jDateField(null=True, blank=True) first_day_2 = jmodels.jDateField(null=True, blank=True) last_day = jmodels.jDateField(null=True, blank=True) last_saturday = models.BooleanField(default=False) last_sunday = models.BooleanField(default=False) last_monday = models.BooleanField(default=False) last_tuesday = models.BooleanField(default=False) last_wednesday = models.BooleanField(default=False) last_thursday = models.BooleanField(default=False) last_friday = models.BooleanField(default=False) def save(self, *args, **kwargs): if self.last_saturday and self.last_sunday and self.last_monday and self.last_tuesday and self.last_wednesday and self.last_thursday and self.last_friday: self.first_day_2 = self.last_day + timedelta(days=1) self.first_day = None self.last_day = None self.last_length = None self.last_saturday = False self.last_sunday = False self.last_monday = False self.last_tuesday = False self.last_wednesday = False self.last_thursday = False self.last_friday = False super(LastDataModel, self).save(*args, **kwargs) def __str__(self): return str(self.salon.sportclub.sportclub_name) + '\'s ' + ' LastData'
class Comment(models.Model): STATUS = ( ('جدید', 'جدید'), ('True', 'انتشار'), ('False', 'عدم انتشار'), ) product = models.ForeignKey(Product, on_delete=models.CASCADE, verbose_name='محصول') user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='کاربر') name = models.CharField(max_length=50, blank=True, verbose_name='نام') email = models.CharField(max_length=100, blank=True, verbose_name='ایمیل') subject = models.CharField(max_length=50, blank=True, verbose_name='موضوع') comment = models.CharField(max_length=2000, blank=True, verbose_name='نظر') ip = models.CharField(max_length=20, blank=True, verbose_name='ای پی') status = models.CharField(max_length=10, choices=STATUS, default='جدید', verbose_name='وضعیت') create_at = jmodels.jDateField(auto_now_add=True) update_at = jmodels.jDateField(auto_now=True, verbose_name='به روز شده در') def __str__(self): return self.subject class Meta: verbose_name = 'نظر' verbose_name_plural = 'نظرات'
class Perm(TimeStampedModel): proforma = models.ForeignKey(Xpref, on_delete=models.CASCADE, related_name='perm_prof') number = models.IntegerField() date = models.CharField(max_length=10) year = models.CharField(max_length=4) due_date = jmodels.jDateField(null=True, blank=True) date_complete = jmodels.jDateField(null=True, blank=True) def __str__(self): return "Perm: %s - Prof: %s: " % ( self.number, self.proforma, ) def qty_total(self): count = self.permspec_perm.aggregate(Sum('qty')) return count['qty__sum'] def qty_sent(self): count = self.inv_out_perm.aggregate(sum=Sum('inventoryoutspec__qty')) if not count['sum']: return 0 return count['sum'] def qty_remained(self): return self.qty_total() - self.qty_sent() def update_delays(self): remaining = self.qty_total() - self.qty_sent() if remaining == 0: date = change_date_format(self.date, '/') self.date_complete = date self.save()
class SessionCategoryModel(models.Model): salon = models.ForeignKey(SalonModel, on_delete=models.CASCADE, related_name='sessioncategories', blank=False, null=False) saturdays = models.BooleanField(default=False) sundays = models.BooleanField(default=False) mondays = models.BooleanField(default=False) tuesdays = models.BooleanField(default=False) wednesdays = models.BooleanField(default=False) thursdays = models.BooleanField(default=False) fridays = models.BooleanField(default=False) range_start_day = jmodels.jDateField(null=False, blank=False) range_end_day = jmodels.jDateField(null=False, blank=False) is_closed = models.BooleanField(null=False, default=False) created_at_date = jmodels.jDateField(null=True, max_length=264) created_at_time = models.TimeField(null=True, max_length=264) def save(self, *args, **kwargs): self.created_at_date = jdatetime.datetime.now().date() self.created_at_time = datetime.datetime.now().time() super(SessionCategoryModel, self).save(*args, **kwargs) def __str__(self): return str(self.salon.sportclub.sportclub_name) + '\'s ' + str( self.pk) + ' SessionCategory'
class Order(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) address = models.CharField(max_length=250, verbose_name="آدرس") postal_code = models.CharField(max_length=20, verbose_name="کدپستی") city = models.CharField(max_length=100, verbose_name="شهر | استان") created = jmodels.jDateField(auto_now_add=True, verbose_name="تاریخ ایجاد") updated = jmodels.jDateField(auto_now=True, verbose_name="تاریخ تغییر") paid = models.BooleanField(default=False, verbose_name="وضعیت پرداخت") coupon = models.ForeignKey(Coupon, related_name='orders', null=True, blank=True, on_delete=models.SET_NULL, verbose_name="تخفیف") discount = models.IntegerField( default=0, validators=[MinValueValidator(0), MaxValueValidator(100)]) class Meta: ordering = ('-created', ) def __str__(self): return f'Order {self.id}' def get_total_cost(self): total_cost = sum(item.get_cost() for item in self.items.all()) return total_cost - total_cost * \ (self.discount / Decimal(100))
class Term(models.Model): objects = jmodels.jManager() start_date = jmodels.jDateField(null=False, blank=False) end_date = jmodels.jDateField(null=False, blank=False) @property def title(self): if self.start_date.month > self.end_date.month: return str(self.start_date.year) + " دوم" else: return str(self.start_date.year) + " اول" class Meta: unique_together = (("start_date", "end_date")) def __str__(self): return self.title def __init__(self, *args, **kwargs): super(Term, self).__init__(* args, **kwargs) if self.start_date is not None: self.old_title = self.title else: self.old_title = " " def clean(self): if (self.end_date < self.start_date) or (self.end_date.year - self.start_date.year > 1): raise ValidationError("Invalid Term interval!") elif self.title != self.old_title and self.title in list(map(lambda x: x.title, Term.objects.all())): raise ValidationError( "A term with the title <%s> is already defined!" % self.title) def save(self, *args, **kwargs): self.full_clean() super(Term, self).save(*args, **kwargs)
class Event(models.Model): title = models.CharField(max_length=30) content = models.TextField() # please add a location field to this date = jmodels.jDateField() # when is the event unitl = jmodels.jDateField() # when singup for the event finishes def __str__(self): return self.title
class BookingModel(models.Model): reckoning = models.ForeignKey(ReckoningModel, on_delete=models.PROTECT, null=True, related_name='bookings') salon = models.ForeignKey(SalonModel, on_delete=models.SET_NULL, null=True, related_name='bookings') session = models.ForeignKey(SessionModel, on_delete=models.SET_NULL, null=True, related_name='bookings') booker = models.ForeignKey(CommonUserModel, on_delete=models.SET_NULL, null=True, related_name='bookings') contract = models.ForeignKey(ContractModel, on_delete=models.SET_NULL, null=True, related_name='bookings') transfered_to_sportclub = models.BooleanField(null=False, default=False) transfered_at_date = jmodels.jDateField(null=True) transfered_at_time = models.TimeField(null=True) booked_at_date = jmodels.jDateField(null=False) booked_at_time = models.TimeField(null=False) final_price = models.FloatField(null=False) discount_percentage = models.IntegerField(null=False) company_discount_percentage = models.IntegerField(null=False) raw_price = models.FloatField(null=False) profit_percantage = models.IntegerField(null=False) company_portion = models.FloatField(null=False) sportclub_portion = models.FloatField( null=False) #change this to null = False later cancelled = models.BooleanField(null=False, default=False) is_contract = models.BooleanField(null=False, default=False) contract_discount = models.IntegerField(null=True) code = models.CharField(null=False, max_length=264) pay_back = models.FloatField(null=True) cancelled_at_date = jmodels.jDateField(null=True) cancelled_at_time = models.TimeField(null=True) cancelled_by_sportclub = models.BooleanField(null=False, default=False) pay_back_by_sportclub = models.FloatField(null=True) cancelled_by_sportclub_at_date = jmodels.jDateField(null=True) cancelled_by_sportclub_at_time = models.TimeField(null=True) def __str__(self): return str(self.user.username) + ' booked ' + str(self.sesison.pk) def transfer_to_sportclub(self): self.transfer_to_sportclub = True date = jdatetime.datetime.now().date() time = datetime.datetime.now().time() self.transfered_at_date = date self.transfered_at_time = time self.save()
class ReportedComment(models.Model): created = jmodels.jDateField(auto_now_add=True, blank=True) updated_at = jmodels.jDateField(auto_now_add=True, blank=True) reported = models.ForeignKey(ProductComment, on_delete=models.CASCADE, default='1', related_name='reportcm_id') def __str__(self): return str(self.reported)
class Campaign(models.Model): Title=models.CharField(verbose_name='عنوان', max_length=100, db_index=True) Description=models.TextField(verbose_name='توضیحات', blank=True) FK_Creator=models.ForeignKey(User, on_delete=models.SET_NULL, verbose_name='سازنده', related_name='Campaign_Creator', null=True) DISCOUNT_TYPE=( ('1','درصدی'), ('2','اعتباری'), ('3','ارسال رایگان'), ) DiscountType=models.CharField(verbose_name='نوع تخفیف', max_length=1, choices=DISCOUNT_TYPE, default='1') DiscountRate=models.CharField(verbose_name='میزان تخفیف', max_length=7, blank=True) FK_InvitationShops=models.ManyToManyField('Invitation', verbose_name='حجره های دعوت شده', related_name='Campaign_Invitation_Shop', blank=True) FK_Shops=models.ManyToManyField(Shop, verbose_name='حجره های مجاز', related_name='ShopCampaign', blank=True) FK_Products=models.ManyToManyField(Product, verbose_name='محصولات مجاز', related_name='ProductCampaign', blank=True) FK_Categories=models.ManyToManyField(Category, verbose_name='دسته بندی های مجاز', related_name='CategoryCampaign', blank=True) CAMPAGIN_TYPE=( ('0','تولد'), ('1','مناسبتی'), ('2','انجمنی'), ('3','فروش اولی'), ('4','خرید اولی'), ) CampaignType=models.CharField(verbose_name='نوع کمپین', max_length=1, choices=CAMPAGIN_TYPE) DISCOUNT_TYPE =( ('0','مدیریتی'), ('1','حجره ای'), ) DiscountStatus=models.CharField(verbose_name='نوع تخفیف', max_length=1, choices=DISCOUNT_TYPE, blank=True) TextRequest=models.TextField(verbose_name='متن پیام دعوت نامه', blank=True) MinimumAmount=models.CharField(verbose_name='حداقل مبلغ خرید', max_length=15, blank=True, default='0') MaximumAmount=models.CharField(verbose_name='حداکثر مبلغ خرید', max_length=15, blank=True, default='0') StartDate=jmodels.jDateField(verbose_name='تاریخ شروع کمپین') EndDate=jmodels.jDateField(verbose_name='تاریخ پایان کمپین') AVAILABLE_STATUS =( (True,'فعال'), (False,'غیر فعال'), ) PUBLISH_STATUS =( (True,'منتشر شده'), (False,'در انتظار تایید'), ) Available=models.BooleanField(verbose_name='وضعیت ثبت کمپین', choices=AVAILABLE_STATUS, default=True) Publish=models.BooleanField(verbose_name='وضعیت انتشار کمپین', choices=PUBLISH_STATUS, default=False) FK_User=models.ForeignKey(User, on_delete=models.SET_NULL, verbose_name='تایید کننده', related_name='Campaign_Accept', blank=True, null=True) # Output Customization Based On Creator, Serial Number def __str__(self): return "{} ({})".format(self.Title, self.FK_Creator) # Ordering With StartDate class Meta: ordering = ('StartDate',) verbose_name = "کمپین" verbose_name_plural = "کمپین ها"
class ProductImage(models.Model): product = models.ForeignKey("Product", on_delete=models.CASCADE, related_name="product_images") image = models.ImageField(upload_to=product_image_file_path) is_featured = models.BooleanField(default=False) created = jmodels.jDateField(auto_now_add=True) updated = jmodels.jDateField(auto_now=True) def __str__(self): return self.product.name
class BaseFollowUp(models.Model): author = models.ForeignKey('accounts.User', on_delete=models.CASCADE) summary = models.CharField(max_length=100) description = models.TextField(null=True, blank=True) pub_date = models.DateTimeField(default=now) date_fa = jmodels.jDateField(default=now) next_followup = jmodels.jDateField(null=True, blank=True) is_imported = models.BooleanField(default=False) class Meta: abstract = True def __str__(self): return self.summary
def addGood(request): buy_agent = MyBackend().authenticate(request.POST['username'], request.POST['password']) if buy_agent == None or (buy_agent.groups.all()[0].name != 'B' and not buy_agent.is_superuser) : return HttpResponse('borooo') today = jDateField() today = today.to_python(datetime.datetime.now()) order = Order.objects.filter(pk=int(request.POST['order']))[0] orderitem = OrderItem.objects.filter(pk=int(request.POST['orderitem']))[0] orderitem.status = 'I' orderitem.save() if not order.user == None: inform_user(user=order.user, message=render_to_string('mail/orderitem_available.html', {'orderitem': orderitem}), subject='سفارش شما در انبار موجود است') if not OrderItem.objects.filter(order=order).exclude(status='I'): order.status = 'D' order.save() for i in range(0, orderitem.quantity): good = Good(submitDate=today, category=orderitem.category, user=order.user, orderitem=orderitem, status='W') good.save() c = {'rlink': '../../allgoods/', 'success': "کالاها با موفقیت ثبت شدند"} return render_to_response("success.html", c)
class Profile(models.Model): GENDER = [ ('m', 'مرد'), ('w', 'زن'), ] MARITAL = [ ('m', 'متاهل'), ('s', 'مجرد'), ] user = models.OneToOneField(User, on_delete=models.CASCADE) email = models.EmailField('ایمیل') first_name = models.CharField('نام', max_length=200) last_name = models.CharField('نام خانوادگی', max_length=200) national_code = models.CharField('کد ملی', max_length=200) date_birth = jmodels.jDateField('تاریخ تولد') gender = models.CharField('جنسیت', max_length=1, choices=GENDER) marital = models.CharField('وضعیت تاهل', max_length=1, choices=MARITAL) address = models.TextField('آدرس') mobile = models.CharField('موبایل', max_length=15) picture = models.ImageField('عکس', null=True, blank=True) father_name = models.CharField('نام پدر', max_length=200) # # def __str__(self): # return (self.user.username) class Meta: verbose_name = 'profile' verbose_name_plural = 'پروفایل افراد'
class kagar_cyrus(models.Model): MELIYAT_CHOICES = ( ('IR', 'ایرانی'), ('AF', 'افغانی'), ) VAZIYAT_KARI_CHOICES = ( ('krg', 'کارگر'), ('ost', 'استادکار'), ) f_name = models.CharField('نام', max_length=200) l_name = models.CharField('نام خانوادگی', max_length=250) meli_code = models.CharField('کد ملی', max_length=10, help_text='ورود کد ملی ۱۰ رقمی', null=True, blank=True) birthday = jmodels.jDateField('تاریخ تولد', help_text='تاریخ تولد را وارد کنید', null=True, blank=True) meliyat = models.CharField('ملیت', max_length=2, choices=MELIYAT_CHOICES) vaziyet_kari = models.CharField('وضعیت کاری', max_length=3, choices=VAZIYAT_KARI_CHOICES) moaref_kargar = models.ForeignKey(personel_cyrus, 'معرف', null=True) address = models.CharField('آدرس', max_length=300, help_text='آدرس را در این قسمت وارد کنید') tel_cellphone = models.CharField('شماره تلفن همراه', max_length=11, help_text='لطفا شماره تلفن همراه را در این حالت وارد کنید 09113910400', ) tel_sabet = models.CharField('شماره تلفن ثابت', max_length=11, help_text='لطفا شماره تلفن همراه را در این حالت وارد کنید 01154633340', ) created = models.DateField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) class Meta: verbose_name = 'کارگرها' verbose_name_plural = 'لیست کارگرها' def __str__(self): return 'کد کارگر :{} , نام : {} {} , {} , {}'.format(self.id, self.f_name, self.l_name, self.vaziyet_kari, self.meliyat)
class DrugRegistration(models.Model): objects = jmodels.jManager() drug = models.OneToOneField('Drug',on_delete = models.CASCADE, null = False, blank = False, unique = True, verbose_name = 'دارو') addDate = jmodels.jDateField(default = jdatetime.date.today, null = False, blank = True, verbose_name = 'تاریخ ثبت') pharmacy = models.ForeignKey('Pharmacy', on_delete = models.CASCADE, null = False, blank = False, verbose_name = 'داروخانه ثبت کننده') def __str__(self): return '%s : %s'%(self.drug.name,self.parmacy.fullName)
class OpinionForDrug(models.Model): objects = jmodels.jManager() drug = models.ForeignKey('Drug', on_delete = models.CASCADE, null = False, blank = False, verbose_name = 'دارو') author = models.ForiegnKey('MyUser', on_delete = models.CASCADE, null = False, blank = False, verbose_name = 'نویسنده') title = models.CharField(db_index = True, max_length = 300, null = True, blank = True, verbose_name = 'عنوان') text = models.TextField(max_length = 1000, null = False, blank = False, verbose_name = 'متن') date = jmodels.jDateField(default = jdatetime.date.today, null = False = blank = True, verbose_name = 'تاریخ ثبت')
class CustomUser(models.Model): GENDER = [ ('M', 'Male'), ('F', 'Female'), ] username = models.CharField(max_length=255) full_name = models.CharField(max_length=255) gender = models.CharField( max_length=1, choices=GENDER, ) national_code = models.CharField(max_length=10) birthday_date = jmodels.jDateField() ceremony_datetime = jmodels.jDateTimeField(null=True) country = models.CharField(default="Iran", max_length=255) def get_first_and_last_name(self): if self.full_name: first_name, last_name = str(self.full_name).split(' ') return { 'first_name': first_name.capitalize(), 'last_name': last_name.capitalize(), } return {} def get_age(self): return jmodels.jDateField.parse_date( jmodels.datetime.datetime.now()).year - self.birthday_date.year def is_birthday(self): today = jdate.today() birthday = self.birthday_date return today.month == birthday.month and today.day == birthday.day
class ProductComment(models.Model): created = jmodels.jDateField(auto_now_add=True, blank=True) updated_at = jmodels.jDateField(auto_now_add=True, blank=True) usercm_id = models.ForeignKey(Person_Register, on_delete=models.CASCADE, default='1', related_name='usercm_id') productcm_id = models.ForeignKey(Product, on_delete=models.CASCADE, default='1', related_name='productcm_id') username = models.CharField(max_length=100, default='', null=True) cm = models.TextField(blank=True, null=True, default='') def __str__(self): return str(self.usercm_id)
class ReqEntered(models.Model): number_entered = models.CharField(max_length=20, blank=True, null=True) number_automation = models.IntegerField(unique=True) # received_by = models.ForeignKey(ReceivedBy, on_delete=models.DO_NOTHING) is_entered = models.BooleanField(default=False) title = models.CharField(max_length=250, null=True, blank=True) # owner = models.ForeignKey(User, on_delete=models.DO_NOTHING) owner_text = models.CharField(max_length=40, default='الوند') date_txt = models.CharField(max_length=12, null=True, blank=True) customer = models.CharField(max_length=200, null=True, blank=True) is_request = models.BooleanField(default=True) attachment = models.CharField(max_length=100, null=True, blank=True) description = models.TextField(max_length=600, null=True, blank=True) date_fa = jmodels.jDateField(default=now, null=True, blank=True) # date_fa = jmodels.jDateField(default=now, null=True, blank=True) def __str__(self): return '%s' % self.number_automation def save(self, force_insert=False, force_update=False, using=None, update_fields=None): self.date_fa = self.jdate_form_text() super(ReqEntered, self).save(force_insert, force_update, using, update_fields) def jdate_form_text(self): year, month, day = self.date_txt.split('/') if len(year) == 2: year = f"13{year}" return jdatetime.date(int(year), int(month), int(day))
class Item(TimeStampedModel): ITEM_TYPE = ( ('In', 'درآمد'), ('Exp', 'هزینه') ) name = models.CharField(max_length=500, verbose_name="نام") price = models.BigIntegerField(verbose_name="مقدار") date = jmodels.jDateField(verbose_name="تاریخ") user = models.ForeignKey(User, on_delete=models.CASCADE) group = models.ForeignKey( Group, on_delete=models.CASCADE, verbose_name="دستهبندی") tags = models.ManyToManyField(Tag) item_type = models.CharField( max_length=3, choices=ITEM_TYPE, verbose_name="نوع") class Meta: verbose_name = "دخل و خرج" verbose_name_plural = "دخل و خرج" indexes = [ models.Index(fields=['name', 'date']) ] def get_absolute_url(self): return reverse("dashboard_item_update", kwargs={"pk": self.pk}) def __str__(self): return f"{self.name} - {self.price}"
class Borrow(models.Model): book = models.ForeignKey(Book, on_delete=models.CASCADE, default='', verbose_name='عنوان کتاب') user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='نام کاربری') carry = jmodels.jDateField(auto_now_add=True, verbose_name='تاریخ امانت بردن') bring = jmodels.jDateField(validators=[validate_date], verbose_name='تاریخ انقضا') remainingTime = models.CharField(default='', max_length=100) def __str__(self): return f'${self.book}'
class bookshelfs(models.Model): FRESHMAN = 'FR' SOPHOMORE = 'SO' JUNIOR = 'JR' SENIOR = 'SR' YEAR_IN_SCHOOL_CHOICES = [ (FRESHMAN, 'Freshman'), (SOPHOMORE, 'Sophomore'), (JUNIOR, 'Junior'), (SENIOR, 'Senior'), ] name = models.CharField( max_length=30, choices=YEAR_IN_SCHOOL_CHOICES, ) # ).only("first_name", "last_name") # name = models.CharField(max_length=30) publicationDate = jmodels.jDateField() # publicationDate = models.DateField() pageNumber = models.IntegerField() firstPublished = models.BooleanField() def __str__(self): return self.name def better_time(self): return self.publicationDate.strftime('%d-%m-%Y') def anotherDateFormat(self): return self.publicationDate.strftime('%b %d %Y ')
class Bar(models.Model): objects = jmodels.jManager() name = models.CharField(max_length=200) date = jmodels.jDateField() def __str__(self): return "%s, %s" % (self.name, self.date)
class ExcludeDate(models.Model): DAY_CHOICES = ( (0, _('Saturday')), (1, _('Sunday')), (2, _('Monday')), (3, _('Tuesday')), (4, _('Wednesday')), (5, _('Thursday')), (6, _('Friday')), ) date = jmodels.jDateField(_('Date'), null=True, blank=True) times = models.ManyToManyField(Time, verbose_name=_('Times')) day = models.PositiveSmallIntegerField(_('Day'), choices=DAY_CHOICES, null=True, blank=True) def __str__(self): if self.date: return str(self.date) else: return str(self.DAY_CHOICES[self.day][1]) class Meta: verbose_name = _("ExcludeDate") verbose_name_plural = _("ExcludeDates")
class Grade(models.Model): objects = jmodels.jManager() out_of_twenty = models.FloatField( null=False, blank=False, default=20.0) # az 20 nomre value = models.FloatField(null=False, blank=False, default=0.0) base_value = models.FloatField(null=False, blank=False, default=20.0) date_examined = jmodels.jDateField(null=True, blank=True) title = models.CharField(max_length=255, blank=True) attend = models.ForeignKey( Attend, on_delete=models.CASCADE, related_name="grades") @property def percentage(self): return self.out_of_twenty*100/20.0 @property def carrier(self): return self.attend.carrier @property def course(self): return self.attend.course def __str__(self): return "Grade for: "+str(self.attend)+" | Title :"+str(self.title)
def addOrder(request): c = request.POST tableData = json.loads( c['tableData']); today = jDateField(); today = today.to_python(datetime.datetime.now()) order = Order(submitDate=today) status = OrderItem.ORDER_ITEM_STATUS_CHOICES[0][0] order.user = request.user isforall = 'isforall' in request.POST and request.POST['isforall'] if request.user.is_superuser: order.status = 'A' if isforall: status = 'P' order.user = None order.save() #print tableData for order_item in tableData: #print order_item[2] if order_item[3] == '': category = None else: category = Category.objects.filter(pk=order_item[3])[0] orderitem=OrderItem(order=order, category=category, quantity=int(order_item[1]), description = order_item[4], status= status #if it's admin and the order belongs to the public ..., if it's admin the order is accepted ) orderitem.save() if request.user.is_superuser and isforall: inform_purchase_agent(subject='سفارش نیازمند خرید است',message=render_to_string('mail/buy_orderitem.html',{'orderitem' : orderitem})) c = {'rlink' : '../../myorders/' , 'success' : "سفارش شما با موفقیت ثبت شد تا لحظاتی دیگر به فهرست سفارشاتتان خواهید رفت"} if request.user.is_superuser: if not isforall : inform_warehouse_manager( message=render_to_string('mail/order_warehouse_manager.html', {'order': order}), subject='سفارش نیازمند بررسی است') else: inform_admin('سفارش جدید', render_to_string('mail/order_added.html', {'order': order})) return render_to_response("success.html",c);