def to_jalali(date, no_time=False, second=False): if date: if no_time: return datetime2jalali(date).strftime('%Y/%m/%d') elif second: return datetime2jalali(date).strftime('%H:%M:%S %Y/%m/%d') else: return datetime2jalali(date).strftime('%H:%M %Y/%m/%d') return ''
def get_start_date_display(self): event_start_date = self.event_start_date event_end_date = self.event_end_date if event_start_date.date() == event_end_date.date(): return datetime2jalali(event_start_date).strftime( '%Y/%m/%d ساعت %H:%M ') else: return 'از {}'.format( datetime2jalali(event_start_date).strftime( '%Y/%m/%d ساعت %H:%M '))
def send_email(start, end, tool, receivers): start = datetime2jalali( prepare_datetime(start)).strftime('%y/%m/%d _ %H:%M:%S') end = datetime2jalali( prepare_datetime(end)).strftime('%y/%m/%d _ %H:%M:%S') mail = Mailer() mail.send_messages(subject='device schedule reminder', template='users/email_reminder.html', context={ 'start': start, 'end': end, 'tool': tool, }, to_emails=receivers)
def queryset(self, request, queryset): startdate = timezone.now() enddate = None if self.value() == 'today': enddate = startdate if self.value() == 'this_week': enddate = startdate - datetime.timedelta( days=(startdate.weekday() + 2) % 7) if self.value() == '10days': enddate = startdate - datetime.timedelta(days=9) if self.value() == 'this_month': enddate = startdate - datetime.timedelta( days=datetime2jalali(startdate).day - 1) if self.value() == '30days': enddate = startdate - datetime.timedelta(days=29) if self.value() == '90days': enddate = startdate - datetime.timedelta(days=89) if self.value() == '180days': enddate = startdate - datetime.timedelta(days=179) return queryset.filter( _review_date__range=[enddate, startdate]) if enddate else queryset
def get_context_data(self, **kwargs): # Call the base implementation first to get a context context = super().get_context_data(**kwargs) # Add in a QuerySet of all the books context['object_list'] = DeliveryToCategory.objects.all().order_by( '-date') for item in context['object_list']: item.date = datetime2jalali(item.date).strftime('%Y/%m/%d-%H:%M') return context
def to_jalali(g_date, strftime=None): if g_date is None: return '-' elif isinstance(g_date, datetime): strftime = strftime if strftime else DEFAULTS['Strftime']['datetime'] return datetime2jalali(g_date).strftime(strftime) elif isinstance(g_date, date): strftime = strftime if strftime else DEFAULTS['Strftime']['date'] return date2jalali(g_date).strftime(strftime) return '-'
def to_jalali(g_date, strftime=None): if g_date is None: return '-' elif isinstance(g_date, datetime): return datetime2jalali(g_date).strftime( strftime if strftime else '%y/%m/%d _ %H:%M:%S') elif isinstance(g_date, date): return date2jalali(g_date).strftime( strftime if strftime else '%y/%m/%d') return '-'
def OrderF(request): if request.method == "POST": cus = customers.objects.get(name_tafzili_shenavar=request.POST.get("Name_Moshtari")) das = DasteMahsool.objects.get(DasteMahsool=request.POST.get("Daste_Mahsool")) mav = Material.objects.get(NameKala=request.POST.get("MavadAvaliye1")) cg = Templates.objects.get(Code_ghalebe_asli=request.POST.get("CodeGhaleb")) orders.objects.create(Name_Moshtari=cus, Daste_Mahsool=das, MavadAvaliye1=mav, Name_Project=request.POST.get("Name_Project"), NoeFactor=request.POST.get("NoeFactor"), Tirazh=request.POST.get("Tirazh"), SharheMavadAvaliye1=request.POST.get("SharheMavadAvaliye1"), IsBehdashti=request.POST.get("IsBehdashti"), CodeGhaleb=cg, user=request.user) return redirect('orders:orderlist') else: OrderForm = Order_Form() jalali_join = datetime2jalali(request.user.date_joined).strftime('%y/%m/%d _ %H:%M:%S') return render(request, 'orders/order.html', {'order_form': OrderForm, 'JoinDateJalali': jalali_join})
def jalali_admin_safe_readonly(readonly_field, strftime=None): """ :param readonly_field: django.contrib.admin.helpers.AdminReadOnlyField :param strftime: format output :return: str """ instance = readonly_field.form.instance field_name = readonly_field.field['field'] if not hasattr(instance, field_name): return readonly_field field = getattr(instance, field_name) if isinstance(field, datetime): strftime = strftime if strftime else DEFAULTS['Strftime']['datetime'] return ObjectContents(datetime2jalali(field).strftime(strftime)) elif isinstance(field, date): strftime = strftime if strftime else DEFAULTS['Strftime']['date'] return ObjectContents(date2jalali(field).strftime(strftime)) elif field is None: return ObjectContents('-') return readonly_field
def per_date(self): return datetime2jalali(self.date).strftime('%y/%m/%d _ %H:%M:%S')
def get_updated(self, obj): if obj.updated - obj.created < timezone.timedelta(seconds=0.5): return 'تا کنون آپدیت نشده است!' return datetime2jalali(obj.updated).strftime('%Y/%m/%d - %H:%m:%S')
def jalali_now(strftime=None): strftime = strftime if strftime else DEFAULTS['Strftime']['datetime'] return datetime2jalali(datetime.now()).strftime(strftime)
def published_fa(model): return datetime2jalali(model.published_at).strftime('%y/%m/%d _ %H:%M:%S')
def get_created(self, obj): return datetime2jalali(obj.created).strftime('%Y/%m/%d - %H:%m:%S')
def start_datetime(self): return datetime2jalali(self.start).strftime('%y/%m/%d _ %H:%M:%S')
def end_datetime(self): return datetime2jalali(self.end).strftime('%y/%m/%d _ %H:%M:%S')
def date_get_persian(self, obj): try: return datetime2jalali(obj.date).strftime('%Y/%m/%d %H:%M') except: return ""
def get_shamsi_date(self, obj): return datetime2jalali(obj.created_at).strftime('%Y/%m/%d %H:%M:%S')
def get_created_jalali(self, obj): return datetime2jalali(obj.start_time).strftime('%y/%m/%d _ %H:%M:%S')
def get_context_data(self, **kwargs): # Call the base implementation first to get a context context = super().get_context_data(**kwargs) # Add in a QuerySet of all the books context['object_list'] = Operation.objects.all().order_by( '-created_date') for item in context['object_list']: if item.received_from_category is not None: # check for received_from_category item.received_from_category_status = True # Make dates jalali item.received_from_category.date = datetime2jalali( item.received_from_category.date).strftime( '%Y/%m/%d-%H:%M') # Find firewall try: item.firewall = item.received_from_category.firewall except: pass else: # check for received_from_category item.received_from_category_status = False # set firewall to None item.firewall = None if item.delivery_to_company is not None: # check for delivery_to_company item.delivery_to_company_status = True # Make dates jalali item.delivery_to_company.date = datetime2jalali( item.delivery_to_company.date).strftime('%Y/%m/%d-%H:%M') # Find firewall if item.firewall is None: try: item.firewall = item.delivery_to_company.firewall except: pass else: # check for delivery_to_company item.delivery_to_company_status = False if item.received_from_company is not None: # check for received_from_company item.received_from_company_status = True # Make dates jalali item.received_from_company.date = datetime2jalali( item.received_from_company.date).strftime('%Y/%m/%d-%H:%M') # Find new_firewall, and changes try: item.new_firewall = item.received_from_company.firewall item.change_description = item.received_from_company.firewall_change.change_description except: pass else: # check for received_from_company item.received_from_company_status = False # make a new firewall item.new_firewall = None if item.delivery_to_category is not None: # check for delivery_to_category item.delivery_to_category_status = True # Make dates jalali item.delivery_to_category.date = datetime2jalali( item.delivery_to_category.date).strftime('%Y/%m/%d-%H:%M') else: # check for delivery_to_category item.delivery_to_category_status = False # check for firewall changes if item.new_firewall is not None and\ item.firewall is not None and\ item.firewall != item.new_firewall: item.firewall_change_status = True else: item.firewall_change_status = False return context
def prepare_value(self, value): if isinstance(value, datetime_datetime): return datetime2jalali(value).strftime('%Y-%m-%d %H:%M:%S') return value
def get_created_jalali(self): return datetime2jalali(self.create).strftime('%y/%m/%d')
def get(self, request, *args, **kwargs): response = HttpResponse(content_type='application/ms-excel') response['Content-Disposition'] = 'attachment; filename='\ + 'Export_{}.csv'.format(datetime2jalali(datetime.now()).strftime('%Y/%m/%d-%H:%M:%S')) wb = xlwt.Workbook(encoding='utf-8') # START Received From Category ws = wb.add_sheet('Received From Category') # Sheet header row_num = 0 font_style = xlwt.XFStyle() font_style.font.bold = True columns = [ "ID", "Firewall Vendor", "Firewall Brand", "Firewall Model", "Firewall FW", "Firewall Serial Number", "Firewall Fiber Port Number", "Firewall Ethernet Port Number", "Category", "Device Problem", "Received Person Name", "Received Person Phone", "Category Person Name", "Category Person Phone", "Date/Time", "Status", "Description", ] for col_num in range(len(columns)): ws.write(row_num, col_num, columns[col_num], font_style) # Sheet body font_style = xlwt.XFStyle() # make data list rows_data = [] received_from_category = ReceivedFromCategory.objects.all().order_by( "-date") for obj in received_from_category: row_data = [] row_data.append(obj.id) if obj.firewall is not None: row_data.extend([ obj.firewall.vendor, obj.firewall.brand, obj.firewall.model, obj.firewall.version, obj.firewall.sn, obj.firewall.fiber_port_num, obj.firewall.eth_port_num, ]) else: row_data.extend([ "", "", "", "", "", "", "", ]) if obj.category is not None: row_data.extend([ obj.category.name, ]) else: row_data.extend([ "", ]) if obj.device_problem is not None: row_data.extend([ obj.device_problem.name, ]) else: row_data.extend([ "", ]) if obj.received_person is not None: row_data.extend([ obj.received_person.name, obj.received_person.phone_number, ]) else: row_data.extend([ "", "", ]) if obj.category_person is not None: row_data.extend([ obj.category_person.name, obj.category_person.phone_number, ]) else: row_data.extend([ "", "", ]) row_data.extend([ datetime2jalali(obj.date).strftime('%Y/%m/%d %H:%M'), ]) if obj.status is not None: row_data.extend([ obj.status.name, ]) else: row_data.extend([ "", ]) row_data.extend([ obj.description, ]) rows_data.append(row_data) # write data to sheet for row in rows_data: row_num += 1 for col_num in range(len(row)): ws.write(row_num, col_num, row[col_num], font_style) # START Delivery To Company ws = wb.add_sheet('Delivery To Company') # Sheet header row_num = 0 font_style = xlwt.XFStyle() font_style.font.bold = True columns = [ "ID", "Firewall Vendor", "Firewall Brand", "Firewall Model", "Firewall FW", "Firewall Serial Number", "Firewall Fiber Port Number", "Firewall Ethernet Port Number", "Action", "Date/Time", "Delivery Person Name", "Delivery Person Phone", "Company Person Name", "Company Person Phone", "Status", "Description", ] for col_num in range(len(columns)): ws.write(row_num, col_num, columns[col_num], font_style) # Sheet body font_style = xlwt.XFStyle() # make data list rows_data = [] delivery_to_company = DeliveryToCompany.objects.all().order_by("-date") for obj in delivery_to_company: row_data = [] row_data.append(obj.id) if obj.firewall is not None: row_data.extend([ obj.firewall.vendor, obj.firewall.brand, obj.firewall.model, obj.firewall.version, obj.firewall.sn, obj.firewall.fiber_port_num, obj.firewall.eth_port_num, ]) else: row_data.extend([ "", "", "", "", "", "", "", ]) row_data.append(obj.action) row_data.append( datetime2jalali(obj.date).strftime('%Y/%m/%d %H:%M')) if obj.delivery_person is not None: row_data.extend([ obj.delivery_person.name, obj.delivery_person.phone_number, ]) else: row_data.extend([ "", "", ]) if obj.company_person is not None: row_data.extend([ obj.company_person.name, obj.company_person.phone_number, ]) else: row_data.extend([ "", "", ]) if obj.status is not None: row_data.extend([ obj.status.name, ]) else: row_data.extend([ "", ]) row_data.extend([ obj.description, ]) rows_data.append(row_data) # write data to sheet for row in rows_data: row_num += 1 for col_num in range(len(row)): ws.write(row_num, col_num, row[col_num], font_style) # START Received From Company ws = wb.add_sheet('Received From Company') # Sheet header row_num = 0 font_style = xlwt.XFStyle() font_style.font.bold = True columns = [ "ID", "Firewall Vendor", "Firewall Brand", "Firewall Model", "Firewall FW", "Firewall Serial Number", "Firewall Fiber Port Number", "Firewall Ethernet Port Number", "Old Firewall Vendor", "Old Firewall Brand", "Old Firewall Model", "Old Firewall FW", "Old Firewall Serial Number", "Old Firewall Fiber Port Number", "Old Firewall Ethernet Port Number", "Company", "Device Problem", "Company Person Name", "Company Person Phone", "Received Person Name", "Received Person Phone", "Date/Time", "Status", "Description", ] for col_num in range(len(columns)): ws.write(row_num, col_num, columns[col_num], font_style) # Sheet body font_style = xlwt.XFStyle() # make data list rows_data = [] received_from_company = ReceivedFromCompany.objects.all().order_by( "-date") for obj in received_from_company: row_data = [] row_data.append(obj.id) if obj.firewall is not None: row_data.extend([ obj.firewall.vendor, obj.firewall.brand, obj.firewall.model, obj.firewall.version, obj.firewall.sn, obj.firewall.fiber_port_num, obj.firewall.eth_port_num, ]) else: row_data.extend([ "", "", "", "", "", "", "", ]) if obj.firewall_changes is not None: if obj.firewall_changes.old_firewall is not None: row_data.extend([ obj.firewall_changes.old_firewall.vendor, obj.firewall_changes.old_firewall.brand, obj.firewall_changes.old_firewall.model, obj.firewall_changes.old_firewall.version, obj.firewall_changes.old_firewall.sn, obj.firewall_changes.old_firewall.fiber_port_num, obj.firewall_changes.old_firewall.eth_port_num, ]) else: row_data.extend([ "", "", "", "", "", "", "", ]) else: row_data.extend([ "", "", "", "", "", "", "", ]) if obj.company is not None: row_data.extend([ obj.company.name, ]) else: row_data.extend([ "", ]) if obj.device_problem is not None: row_data.extend([ obj.device_problem.name, ]) else: row_data.extend([ "", ]) if obj.company_person is not None: row_data.extend([ obj.company_person.name, obj.company_person.phone_number, ]) else: row_data.extend([ "", ]) if obj.received_person is not None: row_data.extend([ obj.received_person.name, obj.received_person.phone_number, ]) else: row_data.extend([ "", "", ]) row_data.append( datetime2jalali(obj.date).strftime('%Y/%m/%d %H:%M')) if obj.status is not None: row_data.extend([ obj.status.name, ]) else: row_data.extend([ "", ]) row_data.extend([ obj.description, ]) rows_data.append(row_data) # write data to sheet for row in rows_data: row_num += 1 for col_num in range(len(row)): ws.write(row_num, col_num, row[col_num], font_style) # START Delivery To Category ws = wb.add_sheet('Delivery To Category') # Sheet header row_num = 0 font_style = xlwt.XFStyle() font_style.font.bold = True columns = [ "ID", "Firewall Vendor", "Firewall Brand", "Firewall Model", "Firewall FW", "Firewall Serial Number", "Firewall Fiber Port Number", "Firewall Ethernet Port Number", "Action", "Date/Time", "Delivery Person Name", "Delivery Person Phone", "Category Person Name", "Category Person Phone", "Category", "Status", "Description", ] for col_num in range(len(columns)): ws.write(row_num, col_num, columns[col_num], font_style) # Sheet body font_style = xlwt.XFStyle() # make data list rows_data = [] delivery_to_category = DeliveryToCategory.objects.all().order_by( "-date") for obj in delivery_to_category: row_data = [] row_data.append(obj.id) if obj.firewall is not None: row_data.extend([ obj.firewall.vendor, obj.firewall.brand, obj.firewall.model, obj.firewall.version, obj.firewall.sn, obj.firewall.fiber_port_num, obj.firewall.eth_port_num, ]) else: row_data.extend([ "", "", "", "", "", "", "", ]) row_data.append(obj.action) row_data.append( datetime2jalali(obj.date).strftime('%Y/%m/%d %H:%M')) if obj.delivery_person is not None: row_data.extend([ obj.delivery_person.name, obj.delivery_person.phone_number, ]) else: row_data.extend([ "", ]) if obj.category_person is not None: row_data.extend([ obj.category_person.name, obj.category_person.phone_number, ]) else: row_data.extend([ "", "", ]) if obj.category is not None: row_data.extend([ obj.category.name, ]) else: row_data.extend([ "", ]) if obj.status is not None: row_data.extend([ obj.status.name, ]) else: row_data.extend([ "", ]) row_data.extend([ obj.description, ]) rows_data.append(row_data) # write data to sheet for row in rows_data: row_num += 1 for col_num in range(len(row)): ws.write(row_num, col_num, row[col_num], font_style) wb.save(response) return response
def to_jalali_full(date, no_time=False): if no_time: return datetime2jalali(date).strftime('%Y/%m/%d') else: return datetime2jalali(date).strftime('%H:%M:%S %Y/%m/%d')
def my_view(request): jalali_join = datetime2jalali( request.user.date_joined).strftime('%y/%m/%d _ %H:%M:%S')
def jalali_created_at(self, obj): return datetime2jalali(obj.created_at).strftime('%y/%m/%d %H:%M:%S')