def Render(request, service_id):
        date = JalaliDate.today().__str__().replace('-', '/')
        week_start_date = JalaliDate.today() - timedelta(
            days=JalaliDate.today().weekday())
        weekday_date = week_start_date
        this_week_days = []
        for i in range(7):
            weekday_date.__str__().replace('-', '/')
            this_week_days.append(weekday_date.__str__().replace('-', '/'))
            weekday_date = weekday_date + timedelta(1)
        service = Services.objects.get(id=service_id)
        selected_sanses = Sans.objects.filter(
            time_table__id=service.timetable.id).order_by('start_time')
        sanses = [[], [], [], [], [], [], []]
        reserved_sanses = Reserves.objects.filter(date__in=this_week_days)
        #print(reserved_sanses)
        #reserved_sanses = [e.sans for e in reserved_sanses]
        # print(reserved_sanses)
        for sans in selected_sanses:
            is_reserved = False
            for reserved in reserved_sanses:
                if (sans.id == reserved.sans.id):
                    is_reserved = True
            sanses[sans.weekday].append(SansContext(sans, is_reserved))

        #print(sanses)

        return render(request, 'ServicePage.html', {
            'service': service,
            'days': sanses,
            'date': date,
            'user': user
        })
def Render(request, service_id):

    service = Services.objects.get(id=service_id)
    timetable = TimeTable.objects.get(pk=service.timetable.id)

    date = JalaliDate.today().__str__().replace('-', '/')
    week_start_date = JalaliDate.today() - timedelta(
        days=JalaliDate.today().weekday())
    weekday_date = week_start_date
    this_week_days = []
    for i in range(7):
        weekday_date.__str__().replace('-', '/')
        this_week_days.append(weekday_date.__str__().replace('-', '/'))
        weekday_date = weekday_date + timedelta(1)
    selected_sanses = Sans.objects.filter(
        time_table=service.timetable.id).order_by('start_time')
    print(len(selected_sanses))
    days = [[], [], [], [], [], [], []]
    for i in range(7):
        for sans in selected_sanses:
            if sans.weekday == i:
                days[i].append(sans)

    return render(
        request, 'editServicePage.html', {
            'service': service,
            'days': days,
            'date': date,
            'user': user,
            'categories': categories
        })
    def RenderTimeTable(request):
        if request.method == 'POST':
            timetable_id = request.POST.get('time_table', '')
            service_id = int(request.POST.get('service'))
            date = request.POST.get('date', '')
            date_splited = date.split('/')
            day = JalaliDate(int(date_splited[0]), int(date_splited[1]),
                             int(date_splited[2]))
            week_start_date = day - timedelta(
                days=JalaliDate.today().weekday())
            weekday_date = week_start_date
            this_week_days = []
            for i in range(7):
                weekday_date.__str__().replace('-', '/')
                this_week_days.append(weekday_date.__str__().replace('-', '/'))
                weekday_date = weekday_date + timedelta(1)
            service = Services.objects.get(id=service_id)
            selected_sanses = Sans.objects.filter(
                time_table__id=service.timetable.id).order_by('start_time')
            sanses = [[], [], [], [], [], [], []]
            reserved_sanses = Reserves.objects.filter(date__in=this_week_days)
            print(reserved_sanses)
            # reserved_sanses = [e.sans for e in reserved_sanses]
            # print(reserved_sanses)
            for sans in selected_sanses:
                is_reserved = False
                for reserved in reserved_sanses:
                    if (sans.id == reserved.sans.id):
                        is_reserved = True
                sanses[sans.weekday].append(SansContext(sans, is_reserved))

            print(sanses)

            return render(request, 'ServicePage.html', {
                'service': service,
                'days': sanses,
                'date': date,
                'user': user
            })

            selected_sanses = [sans for sans in selected_sanses]
            if (JalaliDate.today() <= day):
                final = set(selected_sanses).difference(set(reserved))
            else:
                date = JalaliDate.today().__str__().replace('-', '/')
                day = JalaliDate().today()
                final = []
            return render(
                request, 'ServicePage.html', {
                    'service': service,
                    'sanses': final,
                    'day_name': day.weekdayname(),
                    'date': date,
                    'user': user
                })
예제 #4
0
 def group_sms(self, message, mobiles, yourMessageIds):
     api = "http://niksms.com/fa/PublicApi/GroupSms"
     now = JalaliDate.today()
     now_time = timezone.now()
     post_data = {
         'username':
         self.username,
         'password':
         self.password,
         'message':
         message,
         'numbers':
         mobiles,
         'senderNumber':
         "50004307",
         'sendOn':
         "{}/{}/{}-{}:{}".format(now.year, now.month, now.day,
                                 now_time.hour, now_time.minute),
         'yourMessageIds':
         yourMessageIds,
         'sendType':
         1
     }
     result = requests.post(api, post_data)
     return result
예제 #5
0
def add_global_template_variables():
    return dict(today=JalaliDate.today().strftime('%A %d %B %Y'),
                session=session,
                base_url=config.get('base_url'),
                pictures=DBSession.query(Picture).all(),
                categories=DBSession.query(Category).options(
                    joinedload('subcategory')).all())
예제 #6
0
    def test_strptime(self):
        """
        %Z not working at all
        """
        self.assertEqual(JalaliDate.strptime('1361', '%Y'), JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime('1361%C', '%Y%C'), JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime(u'اریا1361گلگشت', u'اریا%Yگلگشت'), JalaliDate(1361))

        current_century = int(JalaliDate.today().year / 100) * 100
        self.assertEqual(JalaliDate.strptime('61', '%y'), JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime('61%C', '%y%C'), JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime(u'اریا61گلگشت', u'اریا%yگلگشت'), JalaliDate(current_century+61))
        self.assertEqual(JalaliDate.strptime(u'جمعه 01 اردیبهشت 0001', u'%A %d %B %Y'),
                         JalaliDate(month=2, day=1))
예제 #7
0
    def test_year(self):
        """
        Testing:
            %y           Year without century as a zero padded decimal number [00, 99].
            %n           Year without century as a decimal number in persian form [۱, ۹۹].
            %u           Year without century as a zero padded decimal number in persian form [۰۱, ۹۹].
            %Y           Year with century as a decimal number [1-3178].
            %N           Year with century as a decimal number in persian form [۱-۳۱۷۸].
            %O           Year with century as a zero padded decimal number in persian form [۰۰۰۱-۳۱۷۸].
        """

        self.assertEqual(JalaliDate(1361, 6, 15).strftime('%y'), u'61')
        self.assertEqual(JalaliDate(1361, 6, 15).strftime('%Y'), u'1361')
        self.assertEqual(JalaliDate(61, 11, 5).strftime('%N'), u'۶۱')
        self.assertEqual(JalaliDate(61, 11, 5).strftime('%O'), u'۰۰۶۱')

        self.assertEqual(JalaliDate.strptime('94', '%y'), JalaliDate(1394))
        self.assertEqual(JalaliDate.strptime('01', '%y'), JalaliDate(1301))
        self.assertEqual(JalaliDate.strptime('00', '%y'), JalaliDate(1300))
        self.assertEqual(JalaliDate.strptime(u'۹۴', '%n'), JalaliDate(1394))
        self.assertEqual(JalaliDate.strptime(u'۱', '%n'), JalaliDate(1301))
        self.assertEqual(JalaliDate.strptime(u'۰', '%n'), JalaliDate(1300))
        self.assertEqual(JalaliDate.strptime(u'۹۴', '%u'), JalaliDate(1394))
        self.assertEqual(JalaliDate.strptime(u'۰۱', '%u'), JalaliDate(1301))
        self.assertEqual(JalaliDate.strptime(u'۰۰', '%u'), JalaliDate(1300))

        self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%N'),
                         JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۰۴', '%N'), JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۴', '%N'), JalaliDate(4, 1, 1))

        self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%O'),
                         JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۰۴', '%O'), JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۴', '%O'), JalaliDate(4, 1, 1))

        this_century = JalaliDate(int(JalaliDate.today().year / 100) * 100)
        for i in range(99):
            self.assert_parse_and_format(
                this_century.replace(year=this_century.year + i), '%y')
            self.assert_parse_and_format(
                this_century.replace(year=this_century.year + i), '%n')
            self.assert_parse_and_format(
                this_century.replace(year=this_century.year + i), '%u')

        for i in range(1, 1001):
            self.assert_parse_and_format(JalaliDate(i), '%Y')
            self.assert_parse_and_format(JalaliDate(i), '%N')
            self.assert_parse_and_format(JalaliDate(i), '%O')
    def test_year(self):
        """
        Testing:
            %y           Year without century as a zero padded decimal number [00, 99].
            %n           Year without century as a decimal number in persian form [۱, ۹۹].
            %u           Year without century as a zero padded decimal number in persian form [۰۱, ۹۹].
            %Y           Year with century as a decimal number [1-3178].
            %N           Year with century as a decimal number in persian form [۱-۳۱۷۸].
            %O           Year with century as a zero padded decimal number in persian form [۰۰۰۱-۳۱۷۸].
        """

        self.assertEqual(JalaliDate(1361, 6, 15).strftime('%y'), u'61')
        self.assertEqual(JalaliDate(1361, 6, 15).strftime('%Y'), u'1361')
        self.assertEqual(JalaliDate(61, 11, 5).strftime('%N'), u'۶۱')
        self.assertEqual(JalaliDate(61, 11, 5).strftime('%O'), u'۰۰۶۱')

        self.assertEqual(JalaliDate.strptime('94', '%y'), JalaliDate(1394))
        self.assertEqual(JalaliDate.strptime('01', '%y'), JalaliDate(1301))
        self.assertEqual(JalaliDate.strptime('00', '%y'), JalaliDate(1300))
        self.assertEqual(JalaliDate.strptime(u'۹۴', '%n'), JalaliDate(1394))
        self.assertEqual(JalaliDate.strptime(u'۱', '%n'), JalaliDate(1301))
        self.assertEqual(JalaliDate.strptime(u'۰', '%n'), JalaliDate(1300))
        self.assertEqual(JalaliDate.strptime(u'۹۴', '%u'), JalaliDate(1394))
        self.assertEqual(JalaliDate.strptime(u'۰۱', '%u'), JalaliDate(1301))
        self.assertEqual(JalaliDate.strptime(u'۰۰', '%u'), JalaliDate(1300))

        self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%N'), JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۰۴', '%N'), JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۴', '%N'), JalaliDate(4, 1, 1))

        self.assertEqual(JalaliDate.strptime(u'۰۰۴', '%O'), JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۰۴', '%O'), JalaliDate(4, 1, 1))
        self.assertEqual(JalaliDate.strptime(u'۴', '%O'), JalaliDate(4, 1, 1))


        this_century = JalaliDate(int(JalaliDate.today().year/100) * 100)
        for i in range(99):
            self.assert_parse_and_format(this_century.replace(year=this_century.year+i), '%y')
            self.assert_parse_and_format(this_century.replace(year=this_century.year+i), '%n')
            self.assert_parse_and_format(this_century.replace(year=this_century.year+i), '%u')

        for i in range(1, 1001):
            self.assert_parse_and_format(JalaliDate(i), '%Y')
            self.assert_parse_and_format(JalaliDate(i), '%N')
            self.assert_parse_and_format(JalaliDate(i), '%O')
예제 #9
0
 def crawling_thread(self, thread_name, start_date, q_xls):
     while True:
         if start_date < date.today():
             end_date_jalali = JalaliDate.today()
             if JalaliDatetime.now().hour < 14:
                 end_date_jalali = end_date_jalali - timedelta(days=1)
             self.crawl(start_date, end_date_jalali.todate(), q_xls)
             start_date = end_date_jalali.todate()
             with open(f'{self.excel_location}/crawlstat', 'w') as statfile:
                 lastcheck = JalaliDatetime.now()
                 print("last check:", file=statfile)
                 print(lastcheck, file=statfile)
                 print("last crawl:", file=statfile)
                 print(end_date_jalali, file=statfile)
         if JalaliDatetime.now().hour < 16:
             time.sleep((16 - JalaliDatetime.now().hour) * 3600 + 100)
         else:
             time.sleep((40 - JalaliDatetime.now().hour) * 3600 + 100)
예제 #10
0
async def today(request: Request, iso: bool = False):
    arg_check(("iso", ), request.query_params.keys())

    j = JalaliDate.today()
    g = j.todate()
    if iso:
        return {"g": g.isoformat(), "j": j.isoformat()}
    return {
        "g": {
            "y": g.year,
            "m": g.month,
            "d": g.day
        },
        "j": {
            "y": j.year,
            "m": j.month,
            "d": j.day
        },
    }
예제 #11
0
    def test_strptime(self):
        """
        %Z not working at all
        """
        self.assertEqual(JalaliDate.strptime('1361', '%Y'), JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime('1361%C', '%Y%C'),
                         JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime(u'اریا1361گلگشت', u'اریا%Yگلگشت'),
                         JalaliDate(1361))

        current_century = int(JalaliDate.today().year / 100) * 100
        self.assertEqual(JalaliDate.strptime('61', '%y'),
                         JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime('61%C', '%y%C'),
                         JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime(u'اریا61گلگشت', u'اریا%yگلگشت'),
                         JalaliDate(current_century + 61))
        self.assertEqual(
            JalaliDate.strptime(u'جمعه 01 اردیبهشت 0001', u'%A %d %B %Y'),
            JalaliDate(month=2, day=1))
예제 #12
0
파일: year.py 프로젝트: pylover/khayyam
 def post_parser(self, ctx, formatter):
     from khayyam import JalaliDate
     ctx['year'] = int(JalaliDate.today().year / 100) * 100 + ctx['shortyear']
예제 #13
0
    def test_strptime(self):
        """
        %Z not working at all
        """

        def check_format(jdate ,fmt):
            jdate_str = jdate.strftime(fmt)
            d2 = JalaliDate.strptime(jdate_str, fmt)
            self.assertEqual(jdate, d2)

        # Test Year
        self.assertEqual(JalaliDate.strptime('1361', '%Y'), JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime('1361%C', '%Y%C'), JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime('اریا1361گلگشت', 'اریا%Yگلگشت'), JalaliDate(1361))

        current_century = int(JalaliDate.today().year / 100) * 100
        self.assertEqual(JalaliDate.strptime('61', '%y'), JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime('61%C', '%y%C'), JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime('اریا61گلگشت', 'اریا%yگلگشت'), JalaliDate(current_century+61))

        # Test months
        for i in range(1, 13):
            self.assertEqual(JalaliDate.strptime(str(i), '%m'), JalaliDate(month=i))
            self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_ABBRS[i], '%Y %b'),
                             JalaliDate(year=1345, month=i, day=1))
            self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_NAMES[i], '%Y %B'),
                             JalaliDate(year=1345, month=i, day=1))
            self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_ABBRS_ASCII[i], '%Y %g'),
                             JalaliDate(year=1345, month=i, day=1))
            self.assertEqual(JalaliDate.strptime('1345 %s' % PERSIAN_MONTH_NAMES_ASCII[i], '%Y %G'),
                             JalaliDate(year=1345, month=i, day=1))

        self.assertRaises(ValueError, JalaliDate.strptime, '13', '%m')
        self.assertRaises(ValueError, JalaliDate.strptime, '0', '%m')
        self.assertRaises(ValueError, JalaliDate.strptime, '1345 مت', '%Y %b')
        self.assertRaises(ValueError, JalaliDate.strptime, '1345 شتران', '%Y %B')
        self.assertRaises(ValueError, JalaliDate.strptime, '1345 مت', '%Y %g')
        self.assertRaises(ValueError, JalaliDate.strptime, '1345 شتران', '%Y %G')

        # Test Week and Weekdays
        for i in range(7):
            check_format(JalaliDate.min + timedelta(i), '%d %w %W %U')
            self.assertEqual(
                JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_ABBRS[i], '%Y %m %d %a'),
                JalaliDate(year=1345, month=10, day=10))
            self.assertEqual(
                JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_ABBRS_ASCII[i], '%Y %m %d %e'),
                JalaliDate(year=1345, month=10, day=10))
            self.assertEqual(
                JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_NAMES[i], '%Y %m %d %A'),
                JalaliDate(year=1345, month=10, day=10))
            self.assertEqual(
                JalaliDate.strptime('1345 10 10 %s' % PERSIAN_WEEKDAY_NAMES_ASCII[i], '%Y %m %d %E'),
                JalaliDate(year=1345, month=10, day=10))

        # Test days
        for i in range(1, 32):
            self.assertEqual(JalaliDate.strptime(str(i), '%d'), JalaliDate(day=i))
        self.assertRaises(ValueError, JalaliDate.strptime, '32', '%d')
        self.assertRaises(ValueError, JalaliDate.strptime, '0', '%d')

        # Test day of year
        for i in range(1, 366):
            self.assertEqual(JalaliDate.strptime(str(i), '%j'), JalaliDate.fromordinal(i))
        self.assertRaises(ValueError, JalaliDate.strptime, '366', '%j')
        self.assertRaises(ValueError, JalaliDate.strptime, '0', '%j')
        self.assertEqual(JalaliDate.strptime('1345 5', '%Y %j'),
                         JalaliDate(year=1345, month=1, day=5))

        self.assertEqual(JalaliDate.strptime('1302 123 3 4', '%Y %j %m %d'),
                         JalaliDate(year=1302, month=4, day=30))

        self.assertEqual(JalaliDate.strptime('1302 3 4', '%Y %m %d'),
                         JalaliDate(year=1302, month=3, day=4))

        self.assertEqual(JalaliDate.strptime(u'جمعه 01 اردیبهشت 0001', '%A %d %B %Y'),
                         JalaliDate(month=2, day=1))

        self.assertEqual(JalaliDate.strptime(u'جمعه 01 فروردین 0001', '%x'),
                         JalaliDate.min)

        self.assertEqual(JalaliDate.strptime(u'جمعه 31 فروردین 1375%', '%x%%'),
                         JalaliDate(1375, 1, 31))

        check_format(JalaliDate(1375, 1, 31), "%Y-%m-%d %%")
        check_format(JalaliDate(1375, 1, 31), "%Y-%m-%d %% %% %%")

        for i in xrange(1, 400):
            check_format(JalaliDate.fromordinal(i), "%Y-%m-%d %a%A%b%B%j%w%W%e%E%g%G%x %% %% %%")

        d = JalaliDate.today().replace(month=1, day=1)
        for i in xrange(1, algorithms.days_in_year(d.year)):
            check_format(d + timedelta(i), "%y-%m-%d")
예제 #14
0
import sqlite3
from project import db
from khayyam import JalaliDate

from project._config import DATABASE_PATH

with sqlite3.connect(DATABASE_PATH) as connection:
    c = connection.cursor()

    # c.execute("""DROP TABLE IF EXISTS old_comments""")
    # c.execute("""ALTER TABLE comments RENAME TO old_comments""")

    db.create_all()

    c.execute(
        """SELECT comment, name, phone_number, profile_picture, comment_verify, comment_reply, Post_ID
		        FROM old_comments
		        ORDER BY post_id ASC""")

    data = [
        (row[0], row[1], row[2], row[3],
         JalaliDate.today().strftime('%A %d %B %Y'), row[4], row[5], row[6])
        for row in c.fetchall()
    ]

    c.executemany(
        """INSERT INTO comments (comment, name, phone_number, profile_picture, date, comment_verify, comment_reply, Post_ID)
		VALUES (?, ?, ?, ?, ?, ?, ?, ?)""", data)

    c.execute("DROP TABLE old_comments")
예제 #15
0
 def post_parser(self, ctx, formatter):
     from khayyam import JalaliDate
     ctx['year'] = int(
         JalaliDate.today().year / 100) * 100 + ctx['shortyear']
예제 #16
0
# _*_ coding: utf-8 _*_
from project import db
from project.models import User, Post, Comment, Song

import os
import datetime
from khayyam import JalaliDate

db.create_all()

#db.session.add(Question('mohmmad', '*****@*****.**', 'salam'))
#db.session.add(User('mohmmad', '1a2b3F', '9039639690', 112,2017, 17, False, 0))
# for i in range(1,5):
#     db.session.add(Post(u'تست {}'.format(i) , u'این یک تست برای{}'.format(i) , '/sample.jpg', JalaliDate.today().strftime('%A %d %B %Y'), u'تست متن سات این یک تست متن است', u'محمد گلی', 55))
# for i in range(1,6):
# 	db.session.add(Comment(u'تست {}'.format(i), u'محمد گلی', u'09359045545', '/sampleprofile.jpg', JalaliDate.today().strftime('%A %d %B %Y'), 1, u'این پاسخ شماره {}'.format(i), i))
for i in range(1, 6):
    db.session.add(
        Song(u'آهنگ {}'.format(i), '/test{}.mp3'.format(i),
             '/sampleCover{}.jpg'.format(i),
             JalaliDate.today().strftime('%A %d %B %Y'), 22, 1, 30,
             '/lyrics.txt', '/translate.txt'))
db.session.commit()