Ejemplo n.º 1
0
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 ''
Ejemplo n.º 2
0
    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 '))
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
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 '-'
Ejemplo n.º 7
0
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 '-'
Ejemplo n.º 8
0
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 '-'
Ejemplo n.º 9
0
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})        
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
 def per_date(self):
     return datetime2jalali(self.date).strftime('%y/%m/%d _ %H:%M:%S')
Ejemplo n.º 13
0
 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')
Ejemplo n.º 14
0
def jalali_now(strftime=None):
	strftime = strftime if strftime else DEFAULTS['Strftime']['datetime']
	return datetime2jalali(datetime.now()).strftime(strftime)
Ejemplo n.º 15
0
def published_fa(model):
    return datetime2jalali(model.published_at).strftime('%y/%m/%d _ %H:%M:%S')
Ejemplo n.º 16
0
 def get_created(self, obj):
     return datetime2jalali(obj.created).strftime('%Y/%m/%d - %H:%m:%S')
Ejemplo n.º 17
0
 def start_datetime(self):
     return datetime2jalali(self.start).strftime('%y/%m/%d _ %H:%M:%S')
Ejemplo n.º 18
0
 def end_datetime(self):
     return datetime2jalali(self.end).strftime('%y/%m/%d _ %H:%M:%S')
Ejemplo n.º 19
0
 def date_get_persian(self, obj):
     try:
         return datetime2jalali(obj.date).strftime('%Y/%m/%d %H:%M')
     except:
         return ""
Ejemplo n.º 20
0
 def get_shamsi_date(self, obj):
     return datetime2jalali(obj.created_at).strftime('%Y/%m/%d %H:%M:%S')
Ejemplo n.º 21
0
 def get_created_jalali(self, obj):
     return datetime2jalali(obj.start_time).strftime('%y/%m/%d _ %H:%M:%S')
Ejemplo n.º 22
0
    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
Ejemplo n.º 23
0
 def prepare_value(self, value):
     if isinstance(value, datetime_datetime):
         return datetime2jalali(value).strftime('%Y-%m-%d %H:%M:%S')
     return value
Ejemplo n.º 24
0
 def get_created_jalali(self):
     return datetime2jalali(self.create).strftime('%y/%m/%d')
Ejemplo n.º 25
0
    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
Ejemplo n.º 26
0
def jalali_now(strftime=None):
	strftime = strftime if strftime else DEFAULTS['Strftime']['datetime']
	return datetime2jalali(datetime.now()).strftime(strftime)
Ejemplo n.º 27
0
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')
Ejemplo n.º 28
0
def my_view(request):
    jalali_join = datetime2jalali(
        request.user.date_joined).strftime('%y/%m/%d _ %H:%M:%S')
Ejemplo n.º 29
0
 def jalali_created_at(self, obj):
     return datetime2jalali(obj.created_at).strftime('%y/%m/%d %H:%M:%S')