From 33723a7dc008e1eb1068d9de765487396a428304 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sun, 14 Feb 2021 16:19:31 +0200 Subject: [PATCH 01/50] add hebrew dates to calendar-nre feature --- app/database/models.py | 7 + app/internal/load_hebrew_view.py | 62 + app/main.py | 6 +- app/resources/hebrew_view.json | 1462 +++++++++++++++++ app/routers/calendar.py | 12 +- app/routers/hebrew_date.py | 14 + .../calendar/monthly_view/add_week.html | 7 + 7 files changed, 1564 insertions(+), 6 deletions(-) create mode 100644 app/internal/load_hebrew_view.py create mode 100644 app/resources/hebrew_view.json create mode 100644 app/routers/hebrew_date.py diff --git a/app/database/models.py b/app/database/models.py index 0dcc0cb5..b94788d4 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -305,6 +305,13 @@ def __repr__(self): ) +class HebrewView(Base): + __tablename__ = "hebrewView" + + id = Column(Integer, primary_key=True, index=True) + date = Column(DateTime, nullable=False) + hebrew_date = Column(String, nullable=False) + # insert language data # Credit to adrihanu https://stackoverflow.com/users/9127249/adrihanu diff --git a/app/internal/load_hebrew_view.py b/app/internal/load_hebrew_view.py new file mode 100644 index 00000000..6d6f1401 --- /dev/null +++ b/app/internal/load_hebrew_view.py @@ -0,0 +1,62 @@ +import json +from datetime import datetime + +from app.database.models import HebrewView +from sqlalchemy.orm import Session +from typing import Dict, List, Optional + + +def get_hebrew_view_from_json() -> List[Dict[str, Optional[str]]]: + """Reading all parashot from the a JSON file that have been copied from: + 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on&mod=on& + nx=on&year=now&month=x&ss=on&mf=on&c=on& + geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on' + Each year the Json file will need to be re-updated + according to this API in this way: + + def relevent_details(p): + hebrew_dates_dict = {'date_gregorian': p['date'], 'date_hebrew': p['hebrew']} + return hebrew_dates_dict + + + def get_all_hebrew_dates(): + r = requests.get('https://www.hebcal.com/hebcal?v=1&cfg=json& + maj=on&min=on&mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on& + geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on') + items = r.json()['items'] + + all_hebrew_dates = list(filter(lambda i: 'hebdate' in i['category'], items)) + return [relevent_details(p) for p in all_hebrew_dates] + """ + + try: + with open('app/resources/hebrew_view.json', encoding='utf-8-sig') as f: + hebrew_dates_list = json.load(f) + except (IOError, ValueError): + return [] + return hebrew_dates_list + + +def add_hebrew_dates_to_db(session: Session) -> None: + """This function reads the parashot and inserts them into the db""" + hebrew_dates = get_hebrew_view_from_json() + hebrew_dates_objects = [ + HebrewView( + date=datetime.strptime(hebrew_date['date_gregorian'], '%Y-%m-%d').date(), + hebrew_date=hebrew_date['date_hebrew'] + ) + for hebrew_date in hebrew_dates + ] + session.add_all(hebrew_dates_objects) + session.commit() + + +def load_hebrew_view_if_table_empty(session: Session) -> None: + """loading parashot from file to db """ + if session.query(HebrewView).count() == 0: + add_hebrew_dates_to_db(session) + + +def get_hebrew_dates(db_session: Session) -> HebrewView: + """This function return a parashot object""" + return db_session.query(HebrewView) diff --git a/app/main.py b/app/main.py index 1de3b95a..efb1c54e 100644 --- a/app/main.py +++ b/app/main.py @@ -5,7 +5,7 @@ from app import config from app.database import engine, models from app.dependencies import get_db, logger, MEDIA_PATH, STATIC_PATH, templates -from app.internal import daily_quotes, json_data_loader +from app.internal import daily_quotes, json_data_loader, load_hebrew_view from app.internal.languages import set_ui_language from app.routers.salary import routes as salary @@ -31,6 +31,7 @@ def create_tables(engine, psql_environment): json_data_loader.load_to_db(next(get_db())) +load_hebrew_view.load_hebrew_view_if_table_empty(next(get_db())) # This MUST come before the app.routers imports. set_ui_language() @@ -38,7 +39,7 @@ def create_tables(engine, psql_environment): from app.routers import ( # noqa: E402 agenda, calendar, categories, celebrity, currency, dayview, - email, event, export, four_o_four, invitation, profile, search, + email, event, export, four_o_four, hebrew_date, invitation, profile, search, weekview, telegram, whatsapp, ) @@ -51,6 +52,7 @@ def create_tables(engine, psql_environment): celebrity.router, currency.router, dayview.router, + hebrew_date.router, weekview.router, email.router, event.router, diff --git a/app/resources/hebrew_view.json b/app/resources/hebrew_view.json new file mode 100644 index 00000000..cacb933d --- /dev/null +++ b/app/resources/hebrew_view.json @@ -0,0 +1,1462 @@ +[ + { + "date_gregorian": "2021-01-01", + "date_hebrew": "י״ז טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-02", + "date_hebrew": "י״ח טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-03", + "date_hebrew": "י״ט טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-04", + "date_hebrew": "כ׳ טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-05", + "date_hebrew": "כ״א טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-06", + "date_hebrew": "כ״ב טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-07", + "date_hebrew": "כ״ג טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-08", + "date_hebrew": "כ״ד טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-09", + "date_hebrew": "כ״ה טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-10", + "date_hebrew": "כ״ו טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-11", + "date_hebrew": "כ״ז טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-12", + "date_hebrew": "כ״ח טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-13", + "date_hebrew": "כ״ט טבת תשפ״א" + }, + { + "date_gregorian": "2021-01-14", + "date_hebrew": "א׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-15", + "date_hebrew": "ב׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-16", + "date_hebrew": "ג׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-17", + "date_hebrew": "ד׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-18", + "date_hebrew": "ה׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-19", + "date_hebrew": "ו׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-20", + "date_hebrew": "ז׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-21", + "date_hebrew": "ח׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-22", + "date_hebrew": "ט׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-23", + "date_hebrew": "י׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-24", + "date_hebrew": "י״א שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-25", + "date_hebrew": "י״ב שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-26", + "date_hebrew": "י״ג שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-27", + "date_hebrew": "י״ד שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-28", + "date_hebrew": "ט״ו שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-29", + "date_hebrew": "ט״ז שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-30", + "date_hebrew": "י״ז שבט תשפ״א" + }, + { + "date_gregorian": "2021-01-31", + "date_hebrew": "י״ח שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-01", + "date_hebrew": "י״ט שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-02", + "date_hebrew": "כ׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-03", + "date_hebrew": "כ״א שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-04", + "date_hebrew": "כ״ב שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-05", + "date_hebrew": "כ״ג שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-06", + "date_hebrew": "כ״ד שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-07", + "date_hebrew": "כ״ה שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-08", + "date_hebrew": "כ״ו שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-09", + "date_hebrew": "כ״ז שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-10", + "date_hebrew": "כ״ח שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-11", + "date_hebrew": "כ״ט שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-12", + "date_hebrew": "ל׳ שבט תשפ״א" + }, + { + "date_gregorian": "2021-02-13", + "date_hebrew": "א׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-14", + "date_hebrew": "ב׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-15", + "date_hebrew": "ג׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-16", + "date_hebrew": "ד׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-17", + "date_hebrew": "ה׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-18", + "date_hebrew": "ו׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-19", + "date_hebrew": "ז׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-20", + "date_hebrew": "ח׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-21", + "date_hebrew": "ט׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-22", + "date_hebrew": "י׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-23", + "date_hebrew": "י״א אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-24", + "date_hebrew": "י״ב אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-25", + "date_hebrew": "י״ג אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-26", + "date_hebrew": "י״ד אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-27", + "date_hebrew": "ט״ו אדר תשפ״א" + }, + { + "date_gregorian": "2021-02-28", + "date_hebrew": "ט״ז אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-01", + "date_hebrew": "י״ז אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-02", + "date_hebrew": "י״ח אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-03", + "date_hebrew": "י״ט אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-04", + "date_hebrew": "כ׳ אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-05", + "date_hebrew": "כ״א אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-06", + "date_hebrew": "כ״ב אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-07", + "date_hebrew": "כ״ג אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-08", + "date_hebrew": "כ״ד אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-09", + "date_hebrew": "כ״ה אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-10", + "date_hebrew": "כ״ו אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-11", + "date_hebrew": "כ״ז אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-12", + "date_hebrew": "כ״ח אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-13", + "date_hebrew": "כ״ט אדר תשפ״א" + }, + { + "date_gregorian": "2021-03-14", + "date_hebrew": "א׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-15", + "date_hebrew": "ב׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-16", + "date_hebrew": "ג׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-17", + "date_hebrew": "ד׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-18", + "date_hebrew": "ה׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-19", + "date_hebrew": "ו׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-20", + "date_hebrew": "ז׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-21", + "date_hebrew": "ח׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-22", + "date_hebrew": "ט׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-23", + "date_hebrew": "י׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-24", + "date_hebrew": "י״א ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-25", + "date_hebrew": "י״ב ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-26", + "date_hebrew": "י״ג ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-27", + "date_hebrew": "י״ד ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-28", + "date_hebrew": "ט״ו ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-29", + "date_hebrew": "ט״ז ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-30", + "date_hebrew": "י״ז ניסן תשפ״א" + }, + { + "date_gregorian": "2021-03-31", + "date_hebrew": "י״ח ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-01", + "date_hebrew": "י״ט ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-02", + "date_hebrew": "כ׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-03", + "date_hebrew": "כ״א ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-04", + "date_hebrew": "כ״ב ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-05", + "date_hebrew": "כ״ג ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-06", + "date_hebrew": "כ״ד ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-07", + "date_hebrew": "כ״ה ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-08", + "date_hebrew": "כ״ו ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-09", + "date_hebrew": "כ״ז ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-10", + "date_hebrew": "כ״ח ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-11", + "date_hebrew": "כ״ט ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-12", + "date_hebrew": "ל׳ ניסן תשפ״א" + }, + { + "date_gregorian": "2021-04-13", + "date_hebrew": "א׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-14", + "date_hebrew": "ב׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-15", + "date_hebrew": "ג׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-16", + "date_hebrew": "ד׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-17", + "date_hebrew": "ה׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-18", + "date_hebrew": "ו׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-19", + "date_hebrew": "ז׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-20", + "date_hebrew": "ח׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-21", + "date_hebrew": "ט׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-22", + "date_hebrew": "י׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-23", + "date_hebrew": "י״א אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-24", + "date_hebrew": "י״ב אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-25", + "date_hebrew": "י״ג אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-26", + "date_hebrew": "י״ד אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-27", + "date_hebrew": "ט״ו אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-28", + "date_hebrew": "ט״ז אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-29", + "date_hebrew": "י״ז אייר תשפ״א" + }, + { + "date_gregorian": "2021-04-30", + "date_hebrew": "י״ח אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-01", + "date_hebrew": "י״ט אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-02", + "date_hebrew": "כ׳ אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-03", + "date_hebrew": "כ״א אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-04", + "date_hebrew": "כ״ב אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-05", + "date_hebrew": "כ״ג אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-06", + "date_hebrew": "כ״ד אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-07", + "date_hebrew": "כ״ה אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-08", + "date_hebrew": "כ״ו אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-09", + "date_hebrew": "כ״ז אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-10", + "date_hebrew": "כ״ח אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-11", + "date_hebrew": "כ״ט אייר תשפ״א" + }, + { + "date_gregorian": "2021-05-12", + "date_hebrew": "א׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-13", + "date_hebrew": "ב׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-14", + "date_hebrew": "ג׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-15", + "date_hebrew": "ד׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-16", + "date_hebrew": "ה׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-17", + "date_hebrew": "ו׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-18", + "date_hebrew": "ז׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-19", + "date_hebrew": "ח׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-20", + "date_hebrew": "ט׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-21", + "date_hebrew": "י׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-22", + "date_hebrew": "י״א סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-23", + "date_hebrew": "י״ב סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-24", + "date_hebrew": "י״ג סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-25", + "date_hebrew": "י״ד סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-26", + "date_hebrew": "ט״ו סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-27", + "date_hebrew": "ט״ז סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-28", + "date_hebrew": "י״ז סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-29", + "date_hebrew": "י״ח סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-30", + "date_hebrew": "י״ט סיון תשפ״א" + }, + { + "date_gregorian": "2021-05-31", + "date_hebrew": "כ׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-01", + "date_hebrew": "כ״א סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-02", + "date_hebrew": "כ״ב סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-03", + "date_hebrew": "כ״ג סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-04", + "date_hebrew": "כ״ד סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-05", + "date_hebrew": "כ״ה סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-06", + "date_hebrew": "כ״ו סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-07", + "date_hebrew": "כ״ז סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-08", + "date_hebrew": "כ״ח סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-09", + "date_hebrew": "כ״ט סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-10", + "date_hebrew": "ל׳ סיון תשפ״א" + }, + { + "date_gregorian": "2021-06-11", + "date_hebrew": "א׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-12", + "date_hebrew": "ב׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-13", + "date_hebrew": "ג׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-14", + "date_hebrew": "ד׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-15", + "date_hebrew": "ה׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-16", + "date_hebrew": "ו׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-17", + "date_hebrew": "ז׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-18", + "date_hebrew": "ח׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-19", + "date_hebrew": "ט׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-20", + "date_hebrew": "י׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-21", + "date_hebrew": "י״א תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-22", + "date_hebrew": "י״ב תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-23", + "date_hebrew": "י״ג תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-24", + "date_hebrew": "י״ד תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-25", + "date_hebrew": "ט״ו תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-26", + "date_hebrew": "ט״ז תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-27", + "date_hebrew": "י״ז תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-28", + "date_hebrew": "י״ח תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-29", + "date_hebrew": "י״ט תמוז תשפ״א" + }, + { + "date_gregorian": "2021-06-30", + "date_hebrew": "כ׳ תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-01", + "date_hebrew": "כ״א תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-02", + "date_hebrew": "כ״ב תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-03", + "date_hebrew": "כ״ג תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-04", + "date_hebrew": "כ״ד תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-05", + "date_hebrew": "כ״ה תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-06", + "date_hebrew": "כ״ו תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-07", + "date_hebrew": "כ״ז תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-08", + "date_hebrew": "כ״ח תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-09", + "date_hebrew": "כ״ט תמוז תשפ״א" + }, + { + "date_gregorian": "2021-07-10", + "date_hebrew": "א׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-11", + "date_hebrew": "ב׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-12", + "date_hebrew": "ג׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-13", + "date_hebrew": "ד׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-14", + "date_hebrew": "ה׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-15", + "date_hebrew": "ו׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-16", + "date_hebrew": "ז׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-17", + "date_hebrew": "ח׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-18", + "date_hebrew": "ט׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-19", + "date_hebrew": "י׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-20", + "date_hebrew": "י״א אב תשפ״א" + }, + { + "date_gregorian": "2021-07-21", + "date_hebrew": "י״ב אב תשפ״א" + }, + { + "date_gregorian": "2021-07-22", + "date_hebrew": "י״ג אב תשפ״א" + }, + { + "date_gregorian": "2021-07-23", + "date_hebrew": "י״ד אב תשפ״א" + }, + { + "date_gregorian": "2021-07-24", + "date_hebrew": "ט״ו אב תשפ״א" + }, + { + "date_gregorian": "2021-07-25", + "date_hebrew": "ט״ז אב תשפ״א" + }, + { + "date_gregorian": "2021-07-26", + "date_hebrew": "י״ז אב תשפ״א" + }, + { + "date_gregorian": "2021-07-27", + "date_hebrew": "י״ח אב תשפ״א" + }, + { + "date_gregorian": "2021-07-28", + "date_hebrew": "י״ט אב תשפ״א" + }, + { + "date_gregorian": "2021-07-29", + "date_hebrew": "כ׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-07-30", + "date_hebrew": "כ״א אב תשפ״א" + }, + { + "date_gregorian": "2021-07-31", + "date_hebrew": "כ״ב אב תשפ״א" + }, + { + "date_gregorian": "2021-08-01", + "date_hebrew": "כ״ג אב תשפ״א" + }, + { + "date_gregorian": "2021-08-02", + "date_hebrew": "כ״ד אב תשפ״א" + }, + { + "date_gregorian": "2021-08-03", + "date_hebrew": "כ״ה אב תשפ״א" + }, + { + "date_gregorian": "2021-08-04", + "date_hebrew": "כ״ו אב תשפ״א" + }, + { + "date_gregorian": "2021-08-05", + "date_hebrew": "כ״ז אב תשפ״א" + }, + { + "date_gregorian": "2021-08-06", + "date_hebrew": "כ״ח אב תשפ״א" + }, + { + "date_gregorian": "2021-08-07", + "date_hebrew": "כ״ט אב תשפ״א" + }, + { + "date_gregorian": "2021-08-08", + "date_hebrew": "ל׳ אב תשפ״א" + }, + { + "date_gregorian": "2021-08-09", + "date_hebrew": "א׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-10", + "date_hebrew": "ב׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-11", + "date_hebrew": "ג׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-12", + "date_hebrew": "ד׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-13", + "date_hebrew": "ה׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-14", + "date_hebrew": "ו׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-15", + "date_hebrew": "ז׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-16", + "date_hebrew": "ח׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-17", + "date_hebrew": "ט׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-18", + "date_hebrew": "י׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-19", + "date_hebrew": "י״א אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-20", + "date_hebrew": "י״ב אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-21", + "date_hebrew": "י״ג אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-22", + "date_hebrew": "י״ד אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-23", + "date_hebrew": "ט״ו אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-24", + "date_hebrew": "ט״ז אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-25", + "date_hebrew": "י״ז אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-26", + "date_hebrew": "י״ח אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-27", + "date_hebrew": "י״ט אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-28", + "date_hebrew": "כ׳ אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-29", + "date_hebrew": "כ״א אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-30", + "date_hebrew": "כ״ב אלול תשפ״א" + }, + { + "date_gregorian": "2021-08-31", + "date_hebrew": "כ״ג אלול תשפ״א" + }, + { + "date_gregorian": "2021-09-01", + "date_hebrew": "כ״ד אלול תשפ״א" + }, + { + "date_gregorian": "2021-09-02", + "date_hebrew": "כ״ה אלול תשפ״א" + }, + { + "date_gregorian": "2021-09-03", + "date_hebrew": "כ״ו אלול תשפ״א" + }, + { + "date_gregorian": "2021-09-04", + "date_hebrew": "כ״ז אלול תשפ״א" + }, + { + "date_gregorian": "2021-09-05", + "date_hebrew": "כ״ח אלול תשפ״א" + }, + { + "date_gregorian": "2021-09-06", + "date_hebrew": "כ״ט אלול תשפ״א" + }, + { + "date_gregorian": "2021-09-07", + "date_hebrew": "א׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-08", + "date_hebrew": "ב׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-09", + "date_hebrew": "ג׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-10", + "date_hebrew": "ד׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-11", + "date_hebrew": "ה׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-12", + "date_hebrew": "ו׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-13", + "date_hebrew": "ז׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-14", + "date_hebrew": "ח׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-15", + "date_hebrew": "ט׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-16", + "date_hebrew": "י׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-17", + "date_hebrew": "י״א תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-18", + "date_hebrew": "י״ב תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-19", + "date_hebrew": "י״ג תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-20", + "date_hebrew": "י״ד תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-21", + "date_hebrew": "ט״ו תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-22", + "date_hebrew": "ט״ז תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-23", + "date_hebrew": "י״ז תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-24", + "date_hebrew": "י״ח תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-25", + "date_hebrew": "י״ט תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-26", + "date_hebrew": "כ׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-27", + "date_hebrew": "כ״א תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-28", + "date_hebrew": "כ״ב תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-29", + "date_hebrew": "כ״ג תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-09-30", + "date_hebrew": "כ״ד תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-10-01", + "date_hebrew": "כ״ה תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-10-02", + "date_hebrew": "כ״ו תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-10-03", + "date_hebrew": "כ״ז תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-10-04", + "date_hebrew": "כ״ח תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-10-05", + "date_hebrew": "כ״ט תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-10-06", + "date_hebrew": "ל׳ תשרי תשפ״ב" + }, + { + "date_gregorian": "2021-10-07", + "date_hebrew": "א׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-08", + "date_hebrew": "ב׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-09", + "date_hebrew": "ג׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-10", + "date_hebrew": "ד׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-11", + "date_hebrew": "ה׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-12", + "date_hebrew": "ו׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-13", + "date_hebrew": "ז׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-14", + "date_hebrew": "ח׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-15", + "date_hebrew": "ט׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-16", + "date_hebrew": "י׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-17", + "date_hebrew": "י״א חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-18", + "date_hebrew": "י״ב חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-19", + "date_hebrew": "י״ג חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-20", + "date_hebrew": "י״ד חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-21", + "date_hebrew": "ט״ו חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-22", + "date_hebrew": "ט״ז חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-23", + "date_hebrew": "י״ז חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-24", + "date_hebrew": "י״ח חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-25", + "date_hebrew": "י״ט חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-26", + "date_hebrew": "כ׳ חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-27", + "date_hebrew": "כ״א חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-28", + "date_hebrew": "כ״ב חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-29", + "date_hebrew": "כ״ג חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-30", + "date_hebrew": "כ״ד חשון תשפ״ב" + }, + { + "date_gregorian": "2021-10-31", + "date_hebrew": "כ״ה חשון תשפ״ב" + }, + { + "date_gregorian": "2021-11-01", + "date_hebrew": "כ״ו חשון תשפ״ב" + }, + { + "date_gregorian": "2021-11-02", + "date_hebrew": "כ״ז חשון תשפ״ב" + }, + { + "date_gregorian": "2021-11-03", + "date_hebrew": "כ״ח חשון תשפ״ב" + }, + { + "date_gregorian": "2021-11-04", + "date_hebrew": "כ״ט חשון תשפ״ב" + }, + { + "date_gregorian": "2021-11-05", + "date_hebrew": "א׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-06", + "date_hebrew": "ב׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-07", + "date_hebrew": "ג׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-08", + "date_hebrew": "ד׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-09", + "date_hebrew": "ה׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-10", + "date_hebrew": "ו׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-11", + "date_hebrew": "ז׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-12", + "date_hebrew": "ח׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-13", + "date_hebrew": "ט׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-14", + "date_hebrew": "י׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-15", + "date_hebrew": "י״א כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-16", + "date_hebrew": "י״ב כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-17", + "date_hebrew": "י״ג כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-18", + "date_hebrew": "י״ד כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-19", + "date_hebrew": "ט״ו כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-20", + "date_hebrew": "ט״ז כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-21", + "date_hebrew": "י״ז כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-22", + "date_hebrew": "י״ח כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-23", + "date_hebrew": "י״ט כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-24", + "date_hebrew": "כ׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-25", + "date_hebrew": "כ״א כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-26", + "date_hebrew": "כ״ב כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-27", + "date_hebrew": "כ״ג כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-28", + "date_hebrew": "כ״ד כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-29", + "date_hebrew": "כ״ה כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-11-30", + "date_hebrew": "כ״ו כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-12-01", + "date_hebrew": "כ״ז כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-12-02", + "date_hebrew": "כ״ח כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-12-03", + "date_hebrew": "כ״ט כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-12-04", + "date_hebrew": "ל׳ כסלו תשפ״ב" + }, + { + "date_gregorian": "2021-12-05", + "date_hebrew": "א׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-06", + "date_hebrew": "ב׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-07", + "date_hebrew": "ג׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-08", + "date_hebrew": "ד׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-09", + "date_hebrew": "ה׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-10", + "date_hebrew": "ו׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-11", + "date_hebrew": "ז׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-12", + "date_hebrew": "ח׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-13", + "date_hebrew": "ט׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-14", + "date_hebrew": "י׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-15", + "date_hebrew": "י״א טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-16", + "date_hebrew": "י״ב טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-17", + "date_hebrew": "י״ג טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-18", + "date_hebrew": "י״ד טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-19", + "date_hebrew": "ט״ו טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-20", + "date_hebrew": "ט״ז טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-21", + "date_hebrew": "י״ז טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-22", + "date_hebrew": "י״ח טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-23", + "date_hebrew": "י״ט טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-24", + "date_hebrew": "כ׳ טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-25", + "date_hebrew": "כ״א טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-26", + "date_hebrew": "כ״ב טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-27", + "date_hebrew": "כ״ג טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-28", + "date_hebrew": "כ״ד טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-29", + "date_hebrew": "כ״ה טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-30", + "date_hebrew": "כ״ו טבת תשפ״ב" + }, + { + "date_gregorian": "2021-12-31", + "date_hebrew": "כ״ז טבת תשפ״ב" + } +] diff --git a/app/routers/calendar.py b/app/routers/calendar.py index 346295f8..459ced49 100644 --- a/app/routers/calendar.py +++ b/app/routers/calendar.py @@ -1,10 +1,11 @@ from http import HTTPStatus -from fastapi import APIRouter, Request +from fastapi import APIRouter, Request, Depends from fastapi.responses import HTMLResponse from starlette.responses import Response -from app.dependencies import templates +from app.dependencies import get_db, templates +from app.internal import load_hebrew_view from app.routers import calendar_grid as cg router = APIRouter( @@ -17,16 +18,19 @@ @router.get("/") -async def calendar(request: Request) -> Response: +async def calendar(request: Request, db_session=Depends(get_db)) -> Response: user_local_time = cg.Day.get_user_local_time() day = cg.create_day(user_local_time) + hebrew_obj = load_hebrew_view.get_hebrew_dates(db_session) return templates.TemplateResponse( "calendar_monthly_view.html", { "request": request, "day": day, "week_days": cg.Week.DAYS_OF_THE_WEEK, - "weeks_block": cg.get_month_block(day) + "weeks_block": cg.get_month_block(day), + "hebrewView": hebrew_obj + } ) diff --git a/app/routers/hebrew_date.py b/app/routers/hebrew_date.py new file mode 100644 index 00000000..79f1b796 --- /dev/null +++ b/app/routers/hebrew_date.py @@ -0,0 +1,14 @@ +from fastapi import APIRouter, Depends, Request +from sqlalchemy.orm import Session + + +from app.dependencies import get_db +from app.internal import load_hebrew_view + + +router = APIRouter() + + +@router.get("/parasha") +async def parasha(request: Request, db: Session = Depends(get_db)): + return load_hebrew_view.get_hebrew_dates(db) diff --git a/app/templates/partials/calendar/monthly_view/add_week.html b/app/templates/partials/calendar/monthly_view/add_week.html index a53a7f4a..b07da70a 100644 --- a/app/templates/partials/calendar/monthly_view/add_week.html +++ b/app/templates/partials/calendar/monthly_view/add_week.html @@ -15,6 +15,13 @@ {% for event in day.events %}
{{ event[0] }} {{ event[1] }}
{% endfor %} + {% for hebrew in hebrewView %} + {% if hebrew.date.date() == day.date %} +
+

{{hebrew.hebrew_date}}

+
+ {% endif %} + {% endfor %} {% endfor %} From 0d296f3f9554cc7e5300ec2bcc1d41ef5c22ea0b Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sun, 14 Feb 2021 16:28:19 +0200 Subject: [PATCH 02/50] add test to hebrew dates --- tests/test_hebrew_date.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tests/test_hebrew_date.py diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py new file mode 100644 index 00000000..a43e4152 --- /dev/null +++ b/tests/test_hebrew_date.py @@ -0,0 +1,10 @@ +from app.internal import load_hebrew_view +from app.database.models import HebrewView + + +def test_if_db_correct(): + example = HebrewView(0, "2021-01-01", "י״ז טבת תשפ״א") + result = load_hebrew_view.get_hebrew_dates(example) + assert result.date == "2021-01-01" + assert result.hebrew_date == "י״ז טבת תשפ״א" + assert result.count() == 1 From 970534d78108b8104cc24924bbcf8b7a163bc458 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sun, 14 Feb 2021 16:41:06 +0200 Subject: [PATCH 03/50] edit flake8 --- app/database/models.py | 1 + app/internal/load_hebrew_view.py | 9 ++++++--- app/main.py | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/database/models.py b/app/database/models.py index b94788d4..5235fb6a 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -316,6 +316,7 @@ class HebrewView(Base): # Credit to adrihanu https://stackoverflow.com/users/9127249/adrihanu # https://stackoverflow.com/questions/17461251 + def insert_data(target, session: Session, **kw): session.execute( target.insert(), diff --git a/app/internal/load_hebrew_view.py b/app/internal/load_hebrew_view.py index 6d6f1401..fd87c748 100644 --- a/app/internal/load_hebrew_view.py +++ b/app/internal/load_hebrew_view.py @@ -15,7 +15,8 @@ def get_hebrew_view_from_json() -> List[Dict[str, Optional[str]]]: according to this API in this way: def relevent_details(p): - hebrew_dates_dict = {'date_gregorian': p['date'], 'date_hebrew': p['hebrew']} + hebrew_dates_dict = {'date_gregorian': p['date'], + 'date_hebrew': p['hebrew']} return hebrew_dates_dict @@ -25,7 +26,8 @@ def get_all_hebrew_dates(): geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on') items = r.json()['items'] - all_hebrew_dates = list(filter(lambda i: 'hebdate' in i['category'], items)) + all_hebrew_dates = list(filter( + lambda i: 'hebdate' in i['category'], items)) return [relevent_details(p) for p in all_hebrew_dates] """ @@ -42,7 +44,8 @@ def add_hebrew_dates_to_db(session: Session) -> None: hebrew_dates = get_hebrew_view_from_json() hebrew_dates_objects = [ HebrewView( - date=datetime.strptime(hebrew_date['date_gregorian'], '%Y-%m-%d').date(), + date=datetime.strptime(hebrew_date['date_gregorian'], + '%Y-%m-%d').date(), hebrew_date=hebrew_date['date_hebrew'] ) for hebrew_date in hebrew_dates diff --git a/app/main.py b/app/main.py index efb1c54e..eedd6fee 100644 --- a/app/main.py +++ b/app/main.py @@ -39,8 +39,8 @@ def create_tables(engine, psql_environment): from app.routers import ( # noqa: E402 agenda, calendar, categories, celebrity, currency, dayview, - email, event, export, four_o_four, hebrew_date, invitation, profile, search, - weekview, telegram, whatsapp, + email, event, export, four_o_four, hebrew_date, invitation, + profile, search, weekview, telegram, whatsapp, ) json_data_loader.load_to_db(next(get_db())) From f0bc5884eafef10de6620b197b6ff63e4c668a5f Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sun, 14 Feb 2021 16:44:27 +0200 Subject: [PATCH 04/50] edit flake8 --- app/database/models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/database/models.py b/app/database/models.py index 5235fb6a..69a109ab 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -317,6 +317,7 @@ class HebrewView(Base): # Credit to adrihanu https://stackoverflow.com/users/9127249/adrihanu # https://stackoverflow.com/questions/17461251 + def insert_data(target, session: Session, **kw): session.execute( target.insert(), From 842616734c909fb6a06996a34307c533f3c986d6 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 16 Feb 2021 00:09:52 +0200 Subject: [PATCH 05/50] edit --- app/internal/load_hebrew_view.py | 12 ++++++------ app/main.py | 7 +++---- app/routers/calendar.py | 3 +-- app/routers/hebrew_date.py | 5 ++--- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/app/internal/load_hebrew_view.py b/app/internal/load_hebrew_view.py index fd87c748..f9ea11f5 100644 --- a/app/internal/load_hebrew_view.py +++ b/app/internal/load_hebrew_view.py @@ -7,7 +7,7 @@ def get_hebrew_view_from_json() -> List[Dict[str, Optional[str]]]: - """Reading all parashot from the a JSON file that have been copied from: + """Reading all hebrew dates from the a JSON file that have been copied from: 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on&mod=on& nx=on&year=now&month=x&ss=on&mf=on&c=on& geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on' @@ -30,7 +30,6 @@ def get_all_hebrew_dates(): lambda i: 'hebdate' in i['category'], items)) return [relevent_details(p) for p in all_hebrew_dates] """ - try: with open('app/resources/hebrew_view.json', encoding='utf-8-sig') as f: hebrew_dates_list = json.load(f) @@ -40,7 +39,7 @@ def get_all_hebrew_dates(): def add_hebrew_dates_to_db(session: Session) -> None: - """This function reads the parashot and inserts them into the db""" + """This function reads the dates and inserts them into the db""" hebrew_dates = get_hebrew_view_from_json() hebrew_dates_objects = [ HebrewView( @@ -55,11 +54,12 @@ def add_hebrew_dates_to_db(session: Session) -> None: def load_hebrew_view_if_table_empty(session: Session) -> None: - """loading parashot from file to db """ + """loading hebrew dates from file to db """ if session.query(HebrewView).count() == 0: add_hebrew_dates_to_db(session) def get_hebrew_dates(db_session: Session) -> HebrewView: - """This function return a parashot object""" - return db_session.query(HebrewView) + """This function return a list of the hebrew dates of the current year object""" + print(db_session.query(HebrewView)) + return print(db_session.query(HebrewView)) diff --git a/app/main.py b/app/main.py index a75baa76..c528921c 100644 --- a/app/main.py +++ b/app/main.py @@ -42,8 +42,7 @@ def create_tables(engine, psql_environment): # This MUST come before the app.routers imports. set_ui_language() -from app.routers import ( # noqa: E402 - +from app.routers import ( agenda, calendar, categories, celebrity, currency, dayview, email, event, export, four_o_four, hebrew_date, invitation, login, logout, profile, register, search, telegram, user, @@ -76,12 +75,11 @@ async def swagger_ui_redirect(): celebrity.router, currency.router, dayview.router, - hebrew_date.router, - weekview.router, email.router, event.router, export.router, four_o_four.router, + hebrew_date.router, invitation.router, login.router, logout.router, @@ -91,6 +89,7 @@ async def swagger_ui_redirect(): search.router, telegram.router, user.router, + weekview.router, whatsapp.router, ] diff --git a/app/routers/calendar.py b/app/routers/calendar.py index d95f5a18..d11f8d31 100644 --- a/app/routers/calendar.py +++ b/app/routers/calendar.py @@ -30,8 +30,7 @@ async def calendar(request: Request, db_session=Depends(get_db)) -> Response: "day": day, "week_days": cg.Week.DAYS_OF_THE_WEEK, "weeks_block": cg.get_month_block(day), - "hebrewView": hebrew_obj - + "hebrewView": hebrew_obj, } ) diff --git a/app/routers/hebrew_date.py b/app/routers/hebrew_date.py index 79f1b796..734cee99 100644 --- a/app/routers/hebrew_date.py +++ b/app/routers/hebrew_date.py @@ -1,7 +1,6 @@ from fastapi import APIRouter, Depends, Request from sqlalchemy.orm import Session - from app.dependencies import get_db from app.internal import load_hebrew_view @@ -9,6 +8,6 @@ router = APIRouter() -@router.get("/parasha") -async def parasha(request: Request, db: Session = Depends(get_db)): +@router.get("/hebrewdate") +async def hebrew_date(request: Request, db: Session = Depends(get_db)): return load_hebrew_view.get_hebrew_dates(db) From fbdd7f52541a35397ae9258f615499906425a300 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 16 Feb 2021 00:13:55 +0200 Subject: [PATCH 06/50] edit --- app/internal/load_hebrew_view.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/internal/load_hebrew_view.py b/app/internal/load_hebrew_view.py index f9ea11f5..e49679b5 100644 --- a/app/internal/load_hebrew_view.py +++ b/app/internal/load_hebrew_view.py @@ -60,6 +60,7 @@ def load_hebrew_view_if_table_empty(session: Session) -> None: def get_hebrew_dates(db_session: Session) -> HebrewView: - """This function return a list of the hebrew dates of the current year object""" + """This function return a list of hebrew dates + of the current year object""" print(db_session.query(HebrewView)) return print(db_session.query(HebrewView)) From 442a640c82354b07d5fd4e52f6a4879dfa1efeeb Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 16 Feb 2021 00:17:59 +0200 Subject: [PATCH 07/50] edit --- app/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index c528921c..af6259ba 100644 --- a/app/main.py +++ b/app/main.py @@ -42,11 +42,11 @@ def create_tables(engine, psql_environment): # This MUST come before the app.routers imports. set_ui_language() -from app.routers import ( +from app.routers import ( # noqa: E402 agenda, calendar, categories, celebrity, currency, dayview, email, event, export, four_o_four, hebrew_date, invitation, login, logout, profile, register, search, telegram, user, - weekview, whatsapp + weekview, whatsapp, ) json_data_loader.load_to_db(next(get_db())) From fcefcbe3f5ed664aff8ee11221b35a676060e199 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 16 Feb 2021 20:59:42 +0200 Subject: [PATCH 08/50] check --- app/internal/load_hebrew_view.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/internal/load_hebrew_view.py b/app/internal/load_hebrew_view.py index e49679b5..eac8ba27 100644 --- a/app/internal/load_hebrew_view.py +++ b/app/internal/load_hebrew_view.py @@ -43,8 +43,8 @@ def add_hebrew_dates_to_db(session: Session) -> None: hebrew_dates = get_hebrew_view_from_json() hebrew_dates_objects = [ HebrewView( - date=datetime.strptime(hebrew_date['date_gregorian'], - '%Y-%m-%d').date(), + date=datetime.strptime( + hebrew_date['date_gregorian'],'%Y-%m-%d').date(), hebrew_date=hebrew_date['date_hebrew'] ) for hebrew_date in hebrew_dates @@ -62,5 +62,4 @@ def load_hebrew_view_if_table_empty(session: Session) -> None: def get_hebrew_dates(db_session: Session) -> HebrewView: """This function return a list of hebrew dates of the current year object""" - print(db_session.query(HebrewView)) - return print(db_session.query(HebrewView)) + return db_session.query(HebrewView).all() From 9e6742e718bdd8a571adc2f75343d48870bde282 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 17 Feb 2021 02:45:48 +0200 Subject: [PATCH 09/50] edit --- app/database/models.py | 19 ++++++++++ app/internal/hebrew_date_view.py | 23 +++++++++++ app/internal/json_data_loader.py | 14 +++++-- app/internal/load_hebrew_view.py | 65 -------------------------------- app/main.py | 7 +--- app/routers/calendar.py | 21 +++++------ app/routers/hebrew_date.py | 13 ------- app/templates/home.html | 18 +-------- tests/test_calendar_grid.py | 52 ++++++++++++------------- tests/test_hebrew_date.py | 16 ++++---- 10 files changed, 101 insertions(+), 147 deletions(-) create mode 100644 app/internal/hebrew_date_view.py delete mode 100644 app/internal/load_hebrew_view.py delete mode 100644 app/routers/hebrew_date.py diff --git a/app/database/models.py b/app/database/models.py index 37f39951..355f115c 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -334,6 +334,25 @@ def __repr__(self): class HebrewView(Base): + """Each year the Json file will need to be re-updated + according to this API in this way: + def relevent_details(hebrew_date): + hebrew_dates_dict = { + 'date_gregorian': hebrew_date['date'], + 'date_hebrew': hebrew_date['hebrew']} + return hebrew_dates_dict + + + def get_all_parashot(): + request = requests.get( + 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on& + min=on&mod=on&nx=on&year=now&month=x&ss=on&mf=on& + c=on&geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on') + items = request.json()['items'] + return[ + relevent_details(hebrew_date) for hebrew_date in items + if 'hebdate' in hebrew_date['category]] + """ __tablename__ = "hebrewView" id = Column(Integer, primary_key=True, index=True) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py new file mode 100644 index 00000000..e9d87137 --- /dev/null +++ b/app/internal/hebrew_date_view.py @@ -0,0 +1,23 @@ +from datetime import datetime +from typing import Dict, Optional, List + +from app.database.models import HebrewView +from sqlalchemy.orm import Session + + +def create_hebrew_dates_object( + hebrew_dates_fields: Dict[str, Optional[str]])\ + -> HebrewView: + """This function create a hebrew date object + from given fields dictionary. + It is used for adding the data from the json into the db""" + return HebrewView( + date=datetime.strptime(hebrew_dates_fields['date_gregorian'], '%Y-%m-%d').date(), + hebrew_date=hebrew_dates_fields['date_hebrew'] + ) + + +def get_all_hebrew_dates_list(db_session: Session) \ + -> List[Dict[str, Optional[str]]]: + """This function return all hebrew dates object in list""" + return db_session.query(HebrewView).all() diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 84ce778b..0c8c8ead 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -5,15 +5,15 @@ from loguru import logger from sqlalchemy.orm import Session -from app.database.models import Base, Quote, Zodiac -from app.internal import daily_quotes, zodiac +from app.database.models import Base, Quote, Zodiac, HebrewView +from app.internal import daily_quotes, zodiac, hebrew_date_view def get_data_from_json(path: str) -> List[Dict[str, Union[str, int, None]]]: """This function reads all of the data from a specific JSON file. The json file consists of list of dictionaries""" try: - with open(path, 'r') as f: + with open(path, 'r', encoding='utf-8-sig') as f: json_content_list = json.load(f) except (IOError, ValueError): file_name = os.path.basename(path) @@ -54,3 +54,11 @@ def load_to_db(session) -> None: """The quotes JSON file content is copied from the free API: 'https://type.fit/api/quotes'. I saved the content so the API won't be called every time the app is initialized.""" + load_data( + session, 'app/resources/hebrew_view.json', + HebrewView, hebrew_date_view.create_hebrew_dates_object) + """The parashot and hebrew_view JSON files content + is copied from the free API: + 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on& + mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on&geo=geoname + &geonameid=293397&m=50&s=on&d=on&D=on'.""" diff --git a/app/internal/load_hebrew_view.py b/app/internal/load_hebrew_view.py deleted file mode 100644 index eac8ba27..00000000 --- a/app/internal/load_hebrew_view.py +++ /dev/null @@ -1,65 +0,0 @@ -import json -from datetime import datetime - -from app.database.models import HebrewView -from sqlalchemy.orm import Session -from typing import Dict, List, Optional - - -def get_hebrew_view_from_json() -> List[Dict[str, Optional[str]]]: - """Reading all hebrew dates from the a JSON file that have been copied from: - 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on&mod=on& - nx=on&year=now&month=x&ss=on&mf=on&c=on& - geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on' - Each year the Json file will need to be re-updated - according to this API in this way: - - def relevent_details(p): - hebrew_dates_dict = {'date_gregorian': p['date'], - 'date_hebrew': p['hebrew']} - return hebrew_dates_dict - - - def get_all_hebrew_dates(): - r = requests.get('https://www.hebcal.com/hebcal?v=1&cfg=json& - maj=on&min=on&mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on& - geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on') - items = r.json()['items'] - - all_hebrew_dates = list(filter( - lambda i: 'hebdate' in i['category'], items)) - return [relevent_details(p) for p in all_hebrew_dates] - """ - try: - with open('app/resources/hebrew_view.json', encoding='utf-8-sig') as f: - hebrew_dates_list = json.load(f) - except (IOError, ValueError): - return [] - return hebrew_dates_list - - -def add_hebrew_dates_to_db(session: Session) -> None: - """This function reads the dates and inserts them into the db""" - hebrew_dates = get_hebrew_view_from_json() - hebrew_dates_objects = [ - HebrewView( - date=datetime.strptime( - hebrew_date['date_gregorian'],'%Y-%m-%d').date(), - hebrew_date=hebrew_date['date_hebrew'] - ) - for hebrew_date in hebrew_dates - ] - session.add_all(hebrew_dates_objects) - session.commit() - - -def load_hebrew_view_if_table_empty(session: Session) -> None: - """loading hebrew dates from file to db """ - if session.query(HebrewView).count() == 0: - add_hebrew_dates_to_db(session) - - -def get_hebrew_dates(db_session: Session) -> HebrewView: - """This function return a list of hebrew dates - of the current year object""" - return db_session.query(HebrewView).all() diff --git a/app/main.py b/app/main.py index df774021..3fa30cce 100644 --- a/app/main.py +++ b/app/main.py @@ -1,8 +1,7 @@ from app import config from app.database import engine, models from app.dependencies import get_db, logger, MEDIA_PATH, STATIC_PATH, templates -from app.internal import daily_quotes, json_data_loader, load_hebrew_view - +from app.internal import daily_quotes, json_data_loader from app.internal.languages import set_ui_language from app.internal.security.ouath2 import auth_exception_handler from app.utils.extending_openapi import custom_openapi @@ -38,14 +37,13 @@ def create_tables(engine, psql_environment): app.add_exception_handler(HTTP_401_UNAUTHORIZED, auth_exception_handler) json_data_loader.load_to_db(next(get_db())) -load_hebrew_view.load_hebrew_view_if_table_empty(next(get_db())) # This MUST come before the app.routers imports. set_ui_language() from app.routers import ( # noqa: E402 about_us, agenda, calendar, categories, celebrity, currency, dayview, email, event, export, four_o_four, - google_connect, hebrew_date, invitation, login, + google_connect, invitation, login, logout, profile, register, search, telegram, user, weekview, whatsapp, ) @@ -81,7 +79,6 @@ async def swagger_ui_redirect(): event.router, export.router, four_o_four.router, - hebrew_date.router, google_connect.router, invitation.router, login.router, diff --git a/app/routers/calendar.py b/app/routers/calendar.py index ed90cf1e..4ea3caeb 100644 --- a/app/routers/calendar.py +++ b/app/routers/calendar.py @@ -1,13 +1,12 @@ from http import HTTPStatus +from app.dependencies import get_db, templates +from app.internal import hebrew_date_view +from app.routers import calendar_grid from fastapi import APIRouter, Request, Depends from fastapi.responses import HTMLResponse from starlette.responses import Response -from app.dependencies import get_db, templates -from app.internal import load_hebrew_view -from app.routers import calendar_grid as cg - router = APIRouter( prefix="/calendar/month", tags=["calendar"], @@ -18,16 +17,16 @@ @router.get("/") async def calendar(request: Request, db_session=Depends(get_db)) -> Response: - user_local_time = cg.Day.get_user_local_time() - day = cg.create_day(user_local_time) - hebrew_obj = load_hebrew_view.get_hebrew_dates(db_session) + user_local_time = calendar_grid.Day.get_user_local_time() + day = calendar_grid.create_day(user_local_time) + hebrew_obj = hebrew_date_view.get_all_hebrew_dates_list(db_session) return templates.TemplateResponse( "calendar_monthly_view.html", { "request": request, "day": day, - "week_days": cg.Week.DAYS_OF_THE_WEEK, - "weeks_block": cg.get_month_block(day), + "week_days": calendar_grid.Week.DAYS_OF_THE_WEEK, + "weeks_block": calendar_grid.get_month_block(day), "hebrewView": hebrew_obj, } ) @@ -37,8 +36,8 @@ async def calendar(request: Request, db_session=Depends(get_db)) -> Response: async def update_calendar( request: Request, date: str, days: int ) -> HTMLResponse: - last_day = cg.Day.convert_str_to_date(date) - next_weeks = cg.create_weeks(cg.get_n_days(last_day, days)) + last_day = calendar_grid.Day.convert_str_to_date(date) + next_weeks = calendar_grid.create_weeks(calendar_grid.get_n_days(last_day, days)) template = templates.get_template( 'partials/calendar/monthly_view/add_week.html') content = template.render(weeks_block=next_weeks) diff --git a/app/routers/hebrew_date.py b/app/routers/hebrew_date.py deleted file mode 100644 index 734cee99..00000000 --- a/app/routers/hebrew_date.py +++ /dev/null @@ -1,13 +0,0 @@ -from fastapi import APIRouter, Depends, Request -from sqlalchemy.orm import Session - -from app.dependencies import get_db -from app.internal import load_hebrew_view - - -router = APIRouter() - - -@router.get("/hebrewdate") -async def hebrew_date(request: Request, db: Session = Depends(get_db)): - return load_hebrew_view.get_hebrew_dates(db) diff --git a/app/templates/home.html b/app/templates/home.html index 9405d7e7..83e64526 100644 --- a/app/templates/home.html +++ b/app/templates/home.html @@ -3,22 +3,8 @@ {% block content %} -
-
- - - -
- {% if quote %} - {% if not quote.author %} -

"{{ quote.text }}"

- {% else %} -

"{{ quote.text }}"   \ {{ quote.author }}

- {% endif %} - {% endif %} -
- - +
+
{% if quote %} {% if not quote.author%} diff --git a/tests/test_calendar_grid.py b/tests/test_calendar_grid.py index 66ef8287..70eb0e93 100644 --- a/tests/test_calendar_grid.py +++ b/tests/test_calendar_grid.py @@ -1,19 +1,19 @@ import datetime -import app.routers.calendar_grid as cg +from app.routers import calendar_grid DATE = datetime.date(1988, 5, 3) -DAY = cg.Day(datetime.date(1988, 5, 3)) -WEEKEND = cg.DayWeekend(datetime.date(2021, 1, 23)) +DAY = calendar_grid.Day(datetime.date(1988, 5, 3)) +WEEKEND = calendar_grid.DayWeekend(datetime.date(2021, 1, 23)) N_DAYS = 3 N_DAYS_BEFORE = datetime.date(1988, 4, 30) NEXT_N_DAYS = [ - cg.Day(datetime.date(1988, 5, 4)), - cg.Day(datetime.date(1988, 5, 5)), - cg.Day(datetime.date(1988, 5, 6)) + calendar_grid.Day(datetime.date(1988, 5, 4)), + calendar_grid.Day(datetime.date(1988, 5, 5)), + calendar_grid.Day(datetime.date(1988, 5, 6)) ] -DAY_TYPES = [cg.Day, cg.DayWeekend, cg.Today, cg.FirstDayMonth] -WEEK_DAYS = cg.Week.WEEK_DAYS +DAY_TYPES = [calendar_grid.Day, calendar_grid.DayWeekend, calendar_grid.Today, calendar_grid.FirstDayMonth] +WEEK_DAYS = calendar_grid.Week.WEEK_DAYS class TestCalendarGrid: @@ -42,56 +42,56 @@ def test_create_day(): } for i, value in enumerate(dates_to_check.values()): - assert isinstance(cg.create_day(value), DAY_TYPES[i]) + assert isinstance(calendar_grid.create_day(value), DAY_TYPES[i]) @staticmethod def test_get_next_date(): - next_day_generator = cg.get_next_date(DATE) + next_day_generator = calendar_grid.get_next_date(DATE) next_day = next(next_day_generator, None) - next_day_check = cg.Day(DATE + datetime.timedelta(days=1)) + next_day_check = calendar_grid.Day(DATE + datetime.timedelta(days=1)) assert next_day - assert isinstance(next_day, cg.Day) + assert isinstance(next_day, calendar_grid.Day) assert next_day.date == next_day_check.date @staticmethod def test_get_date_before_n_days(): - assert cg.get_date_before_n_days(DATE, N_DAYS) == N_DAYS_BEFORE + assert calendar_grid.get_date_before_n_days(DATE, N_DAYS) == N_DAYS_BEFORE @staticmethod def test_get_first_day_month_block(Calendar): assert ( - cg.get_first_day_month_block(DATE) - == next(Calendar.itermonthdates(DATE.year, DATE.month)) + calendar_grid.get_first_day_month_block(DATE) + == next(Calendar.itermonthdates(DATE.year, DATE.month)) ) @staticmethod def test_get_n_days(): - next_n_dates = cg.get_n_days(DATE, N_DAYS) + next_n_dates = calendar_grid.get_n_days(DATE, N_DAYS) for i in range(N_DAYS): assert next(next_n_dates).date == NEXT_N_DAYS[i].date @staticmethod def test_create_weeks(): - week = cg.create_weeks(NEXT_N_DAYS, cg.Week.WEEK_DAYS) + week = calendar_grid.create_weeks(NEXT_N_DAYS, calendar_grid.Week.WEEK_DAYS) assert week - assert isinstance(week[0], cg.Week) - assert isinstance(week[0].days[0], cg.Day) + assert isinstance(week[0], calendar_grid.Week) + assert isinstance(week[0].days[0], calendar_grid.Day) assert len(week) == 1 and len(week[0].days) == 3 @staticmethod def test_get_month_block(Calendar): - month_weeks = cg.create_weeks( + month_weeks = calendar_grid.create_weeks( Calendar.itermonthdates(1988, 5), WEEK_DAYS) - get_block = cg.get_month_block(cg.Day(DATE), n=len(month_weeks)) + get_block = calendar_grid.get_month_block(calendar_grid.Day(DATE), n=len(month_weeks)) for i in range(len(month_weeks)): - for j in range(cg.Week.WEEK_DAYS): + for j in range(calendar_grid.Week.WEEK_DAYS): assert get_block[i].days[j].date == month_weeks[i].days[j] @staticmethod def test_get_user_local_time(): time_string = "%b%w%Y" - server_time = cg.Day.get_user_local_time() + server_time = calendar_grid.Day.get_user_local_time() server_time_check = datetime.datetime.today() assert server_time assert server_time.strftime( @@ -99,8 +99,8 @@ def test_get_user_local_time(): @staticmethod def test_is_weekend(): - assert not cg.Day.is_weekend(DATE) - assert cg.Day.is_weekend(WEEKEND.date) + assert not calendar_grid.Day.is_weekend(DATE) + assert calendar_grid.Day.is_weekend(WEEKEND.date) @staticmethod def test_display_day(): @@ -116,4 +116,4 @@ def test_display_str(): @staticmethod def test_create_week_object(): - assert cg.Week(NEXT_N_DAYS) + assert calendar_grid.Week(NEXT_N_DAYS) diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index a43e4152..26c64356 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -1,10 +1,10 @@ -from app.internal import load_hebrew_view -from app.database.models import HebrewView +from app.internal import hebrew_date_view -def test_if_db_correct(): - example = HebrewView(0, "2021-01-01", "י״ז טבת תשפ״א") - result = load_hebrew_view.get_hebrew_dates(example) - assert result.date == "2021-01-01" - assert result.hebrew_date == "י״ז טבת תשפ״א" - assert result.count() == 1 +def test_create_hebrew_dates_object(): + hebrew_dates_fields = { + 'date_gregorian': "2021-01-01", + 'date_hebrew': "י״ז טבת תשפ״א" + } + result = hebrew_date_view.create_hebrew_dates_object(hebrew_dates_fields) + assert result.hebrew_date == "י״ז טבת תשפ״א" \ No newline at end of file From 97a1d8c7ed4990616f63d0033edf9c1be9c70c4e Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 17 Feb 2021 02:59:50 +0200 Subject: [PATCH 10/50] edit after flake8 --- app/internal/hebrew_date_view.py | 4 +++- app/internal/json_data_loader.py | 4 ++-- tests/test_calendar_grid.py | 12 ++++++++---- tests/test_hebrew_date.py | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index e9d87137..942d8080 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -12,7 +12,9 @@ def create_hebrew_dates_object( from given fields dictionary. It is used for adding the data from the json into the db""" return HebrewView( - date=datetime.strptime(hebrew_dates_fields['date_gregorian'], '%Y-%m-%d').date(), + date=datetime.strptime( + hebrew_dates_fields['date_gregorian'], + '%Y-%m-%d').date(), hebrew_date=hebrew_dates_fields['date_hebrew'] ) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 0c8c8ead..758202ce 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -52,8 +52,8 @@ def load_to_db(session) -> None: session, 'app/resources/quotes.json', Quote, daily_quotes.create_quote_object) """The quotes JSON file content is copied from the free API: - 'https://type.fit/api/quotes'. I saved the content so the API won't be - called every time the app is initialized.""" + 'https://type.fit/api/quotes'. I saved the content so the API + won't be called every time the app is initialized.""" load_data( session, 'app/resources/hebrew_view.json', HebrewView, hebrew_date_view.create_hebrew_dates_object) diff --git a/tests/test_calendar_grid.py b/tests/test_calendar_grid.py index 70eb0e93..49a7861f 100644 --- a/tests/test_calendar_grid.py +++ b/tests/test_calendar_grid.py @@ -12,7 +12,8 @@ calendar_grid.Day(datetime.date(1988, 5, 5)), calendar_grid.Day(datetime.date(1988, 5, 6)) ] -DAY_TYPES = [calendar_grid.Day, calendar_grid.DayWeekend, calendar_grid.Today, calendar_grid.FirstDayMonth] +DAY_TYPES = [calendar_grid.Day, calendar_grid.DayWeekend, + calendar_grid.Today, calendar_grid.FirstDayMonth] WEEK_DAYS = calendar_grid.Week.WEEK_DAYS @@ -55,7 +56,8 @@ def test_get_next_date(): @staticmethod def test_get_date_before_n_days(): - assert calendar_grid.get_date_before_n_days(DATE, N_DAYS) == N_DAYS_BEFORE + assert calendar_grid.get_date_before_n_days\ + (DATE, N_DAYS) == N_DAYS_BEFORE @staticmethod def test_get_first_day_month_block(Calendar): @@ -72,7 +74,8 @@ def test_get_n_days(): @staticmethod def test_create_weeks(): - week = calendar_grid.create_weeks(NEXT_N_DAYS, calendar_grid.Week.WEEK_DAYS) + week = calendar_grid.create_weeks( + NEXT_N_DAYS, calendar_grid.Week.WEEK_DAYS) assert week assert isinstance(week[0], calendar_grid.Week) assert isinstance(week[0].days[0], calendar_grid.Day) @@ -82,7 +85,8 @@ def test_create_weeks(): def test_get_month_block(Calendar): month_weeks = calendar_grid.create_weeks( Calendar.itermonthdates(1988, 5), WEEK_DAYS) - get_block = calendar_grid.get_month_block(calendar_grid.Day(DATE), n=len(month_weeks)) + get_block = calendar_grid.get_month_block( + calendar_grid.Day(DATE), n=len(month_weeks)) for i in range(len(month_weeks)): for j in range(calendar_grid.Week.WEEK_DAYS): diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 26c64356..fec3c03f 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -7,4 +7,4 @@ def test_create_hebrew_dates_object(): 'date_hebrew': "י״ז טבת תשפ״א" } result = hebrew_date_view.create_hebrew_dates_object(hebrew_dates_fields) - assert result.hebrew_date == "י״ז טבת תשפ״א" \ No newline at end of file + assert result.hebrew_date == "י״ז טבת תשפ״א" From 201b1d8b7f619de559b9148328e62773110fdb1d Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 17 Feb 2021 03:09:32 +0200 Subject: [PATCH 11/50] edit after flake8 --- app/database/models.py | 2 +- app/internal/json_data_loader.py | 1 + app/routers/calendar.py | 4 +++- app/templates/partials/calendar/monthly_view/add_week.html | 2 +- tests/test_calendar_grid.py | 4 ++-- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/database/models.py b/app/database/models.py index 355f115c..81fd3a8e 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -343,7 +343,7 @@ def relevent_details(hebrew_date): return hebrew_dates_dict - def get_all_parashot(): + def get_all_hebrew_dates(): request = requests.get( 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on& min=on&mod=on&nx=on&year=now&month=x&ss=on&mf=on& diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 758202ce..dcb1c2c3 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -62,3 +62,4 @@ def load_to_db(session) -> None: 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on& mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on&geo=geoname &geonameid=293397&m=50&s=on&d=on&D=on'.""" + \ No newline at end of file diff --git a/app/routers/calendar.py b/app/routers/calendar.py index 4ea3caeb..9cbaa501 100644 --- a/app/routers/calendar.py +++ b/app/routers/calendar.py @@ -37,7 +37,9 @@ async def update_calendar( request: Request, date: str, days: int ) -> HTMLResponse: last_day = calendar_grid.Day.convert_str_to_date(date) - next_weeks = calendar_grid.create_weeks(calendar_grid.get_n_days(last_day, days)) + next_weeks = calendar_grid.create_weeks( + calendar_grid.get_n_days(last_day, days) + ) template = templates.get_template( 'partials/calendar/monthly_view/add_week.html') content = template.render(weeks_block=next_weeks) diff --git a/app/templates/partials/calendar/monthly_view/add_week.html b/app/templates/partials/calendar/monthly_view/add_week.html index b07da70a..df53c3bd 100644 --- a/app/templates/partials/calendar/monthly_view/add_week.html +++ b/app/templates/partials/calendar/monthly_view/add_week.html @@ -17,7 +17,7 @@ {% endfor %} {% for hebrew in hebrewView %} {% if hebrew.date.date() == day.date %} -
+

{{hebrew.hebrew_date}}

{% endif %} diff --git a/tests/test_calendar_grid.py b/tests/test_calendar_grid.py index 49a7861f..05219c84 100644 --- a/tests/test_calendar_grid.py +++ b/tests/test_calendar_grid.py @@ -56,8 +56,8 @@ def test_get_next_date(): @staticmethod def test_get_date_before_n_days(): - assert calendar_grid.get_date_before_n_days\ - (DATE, N_DAYS) == N_DAYS_BEFORE + assert calendar_grid.get_date_before_n_days( + DATE, N_DAYS) == N_DAYS_BEFORE @staticmethod def test_get_first_day_month_block(Calendar): From d79b1c3d8d77616fd854466c7dbe97734bf5094b Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 17 Feb 2021 03:14:44 +0200 Subject: [PATCH 12/50] edit after flake8 --- app/internal/json_data_loader.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index dcb1c2c3..30951ab2 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -57,9 +57,8 @@ def load_to_db(session) -> None: load_data( session, 'app/resources/hebrew_view.json', HebrewView, hebrew_date_view.create_hebrew_dates_object) - """The parashot and hebrew_view JSON files content + """The parashot and hebrew_view JSON files content is copied from the free API: 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on& mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on&geo=geoname - &geonameid=293397&m=50&s=on&d=on&D=on'.""" - \ No newline at end of file + &geonameid=293397&m=50&s=on&d=on&D=on'.""" \ No newline at end of file From f488161485171ab9d9d445dc7663aadba109588c Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 17 Feb 2021 03:20:01 +0200 Subject: [PATCH 13/50] edit after flake8 --- app/internal/json_data_loader.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 30951ab2..e20c9e22 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -51,14 +51,18 @@ def load_to_db(session) -> None: load_data( session, 'app/resources/quotes.json', Quote, daily_quotes.create_quote_object) - """The quotes JSON file content is copied from the free API: + """ + The quotes JSON file content is copied from the free API: 'https://type.fit/api/quotes'. I saved the content so the API - won't be called every time the app is initialized.""" + won't be called every time the app is initialized. + """ load_data( session, 'app/resources/hebrew_view.json', HebrewView, hebrew_date_view.create_hebrew_dates_object) - """The parashot and hebrew_view JSON files content + """ + The parashot and hebrew_view JSON files content is copied from the free API: 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on& mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on&geo=geoname - &geonameid=293397&m=50&s=on&d=on&D=on'.""" \ No newline at end of file + &geonameid=293397&m=50&s=on&d=on&D=on'. + """ From 3d2c1501d59ab3fbbce16d827584e03144c50fe9 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 17 Feb 2021 03:22:59 +0200 Subject: [PATCH 14/50] edit after flake8 --- app/internal/json_data_loader.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index e20c9e22..828ddd9b 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -59,10 +59,4 @@ def load_to_db(session) -> None: load_data( session, 'app/resources/hebrew_view.json', HebrewView, hebrew_date_view.create_hebrew_dates_object) - """ - The parashot and hebrew_view JSON files content - is copied from the free API: - 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on& - mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on&geo=geoname - &geonameid=293397&m=50&s=on&d=on&D=on'. - """ + \ No newline at end of file From d873fd6cf4904a995fb76e588a4cb96704280938 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 17 Feb 2021 03:26:57 +0200 Subject: [PATCH 15/50] edit after flake8 --- app/internal/json_data_loader.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 828ddd9b..d3caa07c 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -59,4 +59,3 @@ def load_to_db(session) -> None: load_data( session, 'app/resources/hebrew_view.json', HebrewView, hebrew_date_view.create_hebrew_dates_object) - \ No newline at end of file From 3dd122b8f17023bf8ac61534df4acb6ebc6613ee Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Fri, 19 Feb 2021 14:42:05 +0200 Subject: [PATCH 16/50] edit after pull --- app/internal/json_data_loader.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index abd809dc..504cbfcb 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -11,6 +11,7 @@ def load_to_database(session: Session) -> None: """Loads data from JSON data files into the database. + On startup, data from the JSON files should be added to the database and not be accessed from a network call for each request as it is costly. The quotes JSON file content is copied from the free API: @@ -53,11 +54,13 @@ def _insert_into_database( model_creator: Callable ) -> bool: """Inserts the extracted JSON data into the database. + Args: session: The database connection. path: The file path. table: A model entity table. model_creator: A model creation function. + Returns: True if the save was successful, otherwise returns False. """ @@ -74,9 +77,11 @@ def _insert_into_database( def _is_table_empty(session: Session, table: Base) -> bool: """Returns True if the table is empty. + Args: session: The database connection. table: A model entity table. + Returns: True if the table is empty, otherwise returns False. """ @@ -85,10 +90,13 @@ def _is_table_empty(session: Session, table: Base) -> bool: def _get_data_from_json(path: str) -> List[Dict[str, Any]]: """Returns a list of dictionary objects. + Reads the data from a specific JSON file and converts the data into a list of dictionary items. + Args: path: The file path. + Returns: A list of dictionary objects. """ From b06b7be6e95c1c83601ca77c54e799bb4c50e443 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Fri, 19 Feb 2021 14:44:44 +0200 Subject: [PATCH 17/50] edit after pull --- app/internal/json_data_loader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 504cbfcb..4f5983da 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -96,7 +96,7 @@ def _get_data_from_json(path: str) -> List[Dict[str, Any]]: Args: path: The file path. - + Returns: A list of dictionary objects. """ From 4dd3ac55005a221aa7fffc2d874fe2b917b2a059 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sat, 20 Feb 2021 17:23:41 +0200 Subject: [PATCH 18/50] edit --- app/internal/json_data_loader.py | 2 +- app/templates/calendar/add_week.html | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 4f5983da..affe877b 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -101,7 +101,7 @@ def _get_data_from_json(path: str) -> List[Dict[str, Any]]: A list of dictionary objects. """ try: - with open(path, 'r') as json_file: + with open(path, 'r', encoding='utf-8-sig') as json_file: json_content = json.load(json_file) except (IOError, ValueError): file_name = os.path.basename(path) diff --git a/app/templates/calendar/add_week.html b/app/templates/calendar/add_week.html index 702ee572..3a05143f 100644 --- a/app/templates/calendar/add_week.html +++ b/app/templates/calendar/add_week.html @@ -15,6 +15,13 @@ {% for event in day.events %}
{{event[0]}} {{event[1]}}
{% endfor %} + {% for hebrew in hebrewView %} + {% if hebrew.date.date() == day.date %} +
+

{{hebrew.hebrew_date}}

+
+ {% endif %} + {% endfor %}
{% endfor %}
From f6b8607fc0bb9d36763689539ea8e656669bc072 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sat, 20 Feb 2021 19:37:03 +0200 Subject: [PATCH 19/50] edit --- app/database/models.py | 2 + app/internal/hebrew_date_view.py | 17 ++++-- app/routers/calendar.py | 3 -- app/routers/dayview.py | 6 ++- app/templates/calendar/add_week.html | 28 ---------- app/templates/calendar/calendar.html | 19 ------- app/templates/calendar/layout.html | 81 ---------------------------- app/templates/calendar_day_view.html | 5 ++ 8 files changed, 24 insertions(+), 137 deletions(-) delete mode 100644 app/templates/calendar/add_week.html delete mode 100644 app/templates/calendar/calendar.html delete mode 100644 app/templates/calendar/layout.html diff --git a/app/database/models.py b/app/database/models.py index 1d6986ed..7b617fec 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -74,6 +74,8 @@ class User(Base): uselist=False, ) + + def __repr__(self): return f"" diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index 942d8080..85f9cd3f 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -19,7 +19,16 @@ def create_hebrew_dates_object( ) -def get_all_hebrew_dates_list(db_session: Session) \ - -> List[Dict[str, Optional[str]]]: - """This function return all hebrew dates object in list""" - return db_session.query(HebrewView).all() +def get_hebrew_date_object(session: Session, date: datetime) -> HebrewView: + """Returns the HebrewView object for the specific day. + + Args: + session: The database connection. + date: The requested date. + + Returns: + A HebrewView object. + """ + for hebrew in session.query(HebrewView).all(): + if hebrew.date == date: + return hebrew diff --git a/app/routers/calendar.py b/app/routers/calendar.py index 9cbaa501..db0de4d4 100644 --- a/app/routers/calendar.py +++ b/app/routers/calendar.py @@ -1,7 +1,6 @@ from http import HTTPStatus from app.dependencies import get_db, templates -from app.internal import hebrew_date_view from app.routers import calendar_grid from fastapi import APIRouter, Request, Depends from fastapi.responses import HTMLResponse @@ -19,7 +18,6 @@ async def calendar(request: Request, db_session=Depends(get_db)) -> Response: user_local_time = calendar_grid.Day.get_user_local_time() day = calendar_grid.create_day(user_local_time) - hebrew_obj = hebrew_date_view.get_all_hebrew_dates_list(db_session) return templates.TemplateResponse( "calendar_monthly_view.html", { @@ -27,7 +25,6 @@ async def calendar(request: Request, db_session=Depends(get_db)) -> Response: "day": day, "week_days": calendar_grid.Week.DAYS_OF_THE_WEEK, "weeks_block": calendar_grid.get_month_block(day), - "hebrewView": hebrew_obj, } ) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 6b4f887e..e253d3a5 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -6,7 +6,7 @@ from app.database.models import Event, User from app.dependencies import get_db, templates -from app.internal import zodiac +from app.internal import zodiac, hebrew_date_view from app.routers.user import get_all_user_events router = APIRouter() @@ -165,7 +165,7 @@ async def dayview( view="day", ): # TODO: add a login session - user = session.query(User).filter_by(username="test_username").first() + user = session.query(User).filter_by(username="new_user").first() if not user: error_message = "User not found." raise HTTPException( @@ -177,6 +177,7 @@ async def dayview( except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) + hebrew_obj = hebrew_date_view.get_hebrew_date_object(session, day) events_n_attrs = get_events_and_attributes( day=day, session=session, @@ -198,5 +199,6 @@ async def dayview( "day": day.day, "zodiac": zodiac_obj, "view": view, + "hebrewView": hebrew_obj, }, ) diff --git a/app/templates/calendar/add_week.html b/app/templates/calendar/add_week.html deleted file mode 100644 index 3a05143f..00000000 --- a/app/templates/calendar/add_week.html +++ /dev/null @@ -1,28 +0,0 @@ -{% for week in weeks_block %} -
- {% for day in week.days %} -
-
-
{{day}}
- -
- {% for devent in day.dailyevents %} -
-
{{devent[0]}}
-
{{devent[1]}}
-
- {% endfor %} - {% for event in day.events %} -
{{event[0]}} {{event[1]}}
- {% endfor %} - {% for hebrew in hebrewView %} - {% if hebrew.date.date() == day.date %} -
-

{{hebrew.hebrew_date}}

-
- {% endif %} - {% endfor %} -
- {% endfor %} -
-{% endfor %} \ No newline at end of file diff --git a/app/templates/calendar/calendar.html b/app/templates/calendar/calendar.html deleted file mode 100644 index d5d95c15..00000000 --- a/app/templates/calendar/calendar.html +++ /dev/null @@ -1,19 +0,0 @@ -{% extends 'calendar/layout.html' %} - -{% block main %} -
-
- {% for d in week_days %} - {% if d == day.sday %} -
{{ d.upper() }}
- {% else %} -
{{ d.upper() }}
- {% endif %} - {% endfor %} -
-
- {% include 'calendar/add_week.html' %} -
-
-
-{% endblock %} \ No newline at end of file diff --git a/app/templates/calendar/layout.html b/app/templates/calendar/layout.html deleted file mode 100644 index 90a320ec..00000000 --- a/app/templates/calendar/layout.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - Calendar - - - -
- -
-
FEATURE NAME
-
-
-
-
-
{{day.display()}}
-
Location 0oc 00:00
-
- -
-
- {% block main %} {% endblock %} -
-
-
- - - \ No newline at end of file diff --git a/app/templates/calendar_day_view.html b/app/templates/calendar_day_view.html index ba681c9f..8212b8c0 100644 --- a/app/templates/calendar_day_view.html +++ b/app/templates/calendar_day_view.html @@ -20,6 +20,11 @@ {{day}} / {{month}} {% endif %} + {% if hebrewView %} +
+

{{hebrewView.hebrew_date}}

+
+ {% endif %}
{% for event in all_day_events %}

{{ event.title }}

From 3c70a58dbe94720d277d5ed645cce36989fd8d1b Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sat, 20 Feb 2021 19:41:25 +0200 Subject: [PATCH 20/50] edit --- app/database/models.py | 1 - app/internal/hebrew_date_view.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/database/models.py b/app/database/models.py index 7b617fec..008a4d8e 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -75,7 +75,6 @@ class User(Base): ) - def __repr__(self): return f"" diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index 85f9cd3f..a8a1e12d 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -1,5 +1,5 @@ from datetime import datetime -from typing import Dict, Optional, List +from typing import Dict, Optional from app.database.models import HebrewView from sqlalchemy.orm import Session From 6a34a331e404f3ced09720a9c8f153138ede1175 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sat, 20 Feb 2021 19:45:40 +0200 Subject: [PATCH 21/50] edit --- app/database/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/app/database/models.py b/app/database/models.py index 008a4d8e..1d6986ed 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -74,7 +74,6 @@ class User(Base): uselist=False, ) - def __repr__(self): return f"" From 822ac9d83743fc8068a597904f416fecab9dfdd0 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sat, 20 Feb 2021 20:08:04 +0200 Subject: [PATCH 22/50] edit --- app/templates/partials/calendar/monthly_view/add_week.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/templates/partials/calendar/monthly_view/add_week.html b/app/templates/partials/calendar/monthly_view/add_week.html index df53c3bd..60e0fe21 100644 --- a/app/templates/partials/calendar/monthly_view/add_week.html +++ b/app/templates/partials/calendar/monthly_view/add_week.html @@ -17,9 +17,7 @@ {% endfor %} {% for hebrew in hebrewView %} {% if hebrew.date.date() == day.date %} -

{{hebrew.hebrew_date}}

-
{% endif %} {% endfor %}
From 0ae172617cd323ab843de24ca1674723082d8720 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sat, 20 Feb 2021 20:59:58 +0200 Subject: [PATCH 23/50] edit --- app/routers/dayview.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index e253d3a5..6b8f58e9 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -165,7 +165,7 @@ async def dayview( view="day", ): # TODO: add a login session - user = session.query(User).filter_by(username="new_user").first() + user = session.query(User).filter_by(username="test_username").first() if not user: error_message = "User not found." raise HTTPException( From 9e9ee256ee7370e2110bc6b4e02d59dbbd329e4d Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sun, 21 Feb 2021 00:04:56 +0200 Subject: [PATCH 24/50] edit --- app/static/dayview.css | 21 +++++++++++++++++++++ app/templates/calendar_day_view.html | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/static/dayview.css b/app/static/dayview.css index 4b13cbb6..dd1d2f98 100644 --- a/app/static/dayview.css +++ b/app/static/dayview.css @@ -164,3 +164,24 @@ body { width: 1.2rem; height: 1.2rem; } + +.hebrew-dates { + position: absolute; + right: 1.2rem; + top: 5rem; + padding-right: var(--space_xs); + padding-left: var(--space_xs); + padding-bottom: var(--space_xxs); + border: solid 0.1px var(--primary); + background-color: var(--surface-variant); + box-shadow: 1px 1px 2px #999; + line-height: 1; + height: 3.5rem; + width: 3.5rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.8rem + font-weight: bold; +} + diff --git a/app/templates/calendar_day_view.html b/app/templates/calendar_day_view.html index 8212b8c0..d23c50f8 100644 --- a/app/templates/calendar_day_view.html +++ b/app/templates/calendar_day_view.html @@ -22,7 +22,7 @@ {% if hebrewView %}
-

{{hebrewView.hebrew_date}}

+ {{ gettext("%(hebrewDate)s", hebrewDate=hebrewView.hebrew_date) }}
{% endif %}
From ac7338623cb89110581e5ec76a32dc2762b0c9f0 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sun, 21 Feb 2021 16:53:25 +0200 Subject: [PATCH 25/50] edit --- app/static/dayview.css | 2 +- requirements.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/static/dayview.css b/app/static/dayview.css index dd1d2f98..fe926e71 100644 --- a/app/static/dayview.css +++ b/app/static/dayview.css @@ -181,7 +181,7 @@ body { display: flex; align-items: center; justify-content: center; - font-size: 0.8rem + font-size: 0.8rem; font-weight: bold; } diff --git a/requirements.txt b/requirements.txt index 5bbdca17..6ea27f9e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -99,6 +99,7 @@ pycparser==2.20 pydantic==1.7.3 pyflakes==2.2.0 PyJWT==2.0.0 +pyluach==1.2.1 pyparsing==2.4.7 pytest==6.2.1 pytest-asyncio==0.12.0 From 426da0a94b621d309f7068a4257e8596d5c4b6ac Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Sun, 21 Feb 2021 23:58:53 +0200 Subject: [PATCH 26/50] edit --- app/database/models.py | 27 - app/internal/hebrew_date_view.py | 86 +- app/internal/json_data_loader.py | 16 +- app/resources/hebrew_view.json | 1462 ----------------- app/routers/dayview.py | 2 +- app/templates/calendar_day_view.html | 8 +- .../calendar/monthly_view/add_week.html | 5 - requirements.txt | 1 + tests/test_hebrew_date.py | 26 +- 9 files changed, 87 insertions(+), 1546 deletions(-) delete mode 100644 app/resources/hebrew_view.json diff --git a/app/database/models.py b/app/database/models.py index 1d6986ed..c24c435a 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -385,33 +385,6 @@ def __repr__(self): ) -class HebrewView(Base): - """Each year the Json file will need to be re-updated - according to this API in this way: - def relevent_details(hebrew_date): - hebrew_dates_dict = { - 'date_gregorian': hebrew_date['date'], - 'date_hebrew': hebrew_date['hebrew']} - return hebrew_dates_dict - - - def get_all_hebrew_dates(): - request = requests.get( - 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on& - min=on&mod=on&nx=on&year=now&month=x&ss=on&mf=on& - c=on&geo=geoname&geonameid=293397&m=50&s=on&d=on&D=on') - items = request.json()['items'] - return[ - relevent_details(hebrew_date) for hebrew_date in items - if 'hebdate' in hebrew_date['category]] - """ - __tablename__ = "hebrewView" - - id = Column(Integer, primary_key=True, index=True) - date = Column(DateTime, nullable=False) - hebrew_date = Column(String, nullable=False) - - class Joke(Base): __tablename__ = "jokes" diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index a8a1e12d..e8c0dc16 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -1,34 +1,70 @@ -from datetime import datetime -from typing import Dict, Optional - -from app.database.models import HebrewView -from sqlalchemy.orm import Session - - -def create_hebrew_dates_object( - hebrew_dates_fields: Dict[str, Optional[str]])\ - -> HebrewView: - """This function create a hebrew date object - from given fields dictionary. - It is used for adding the data from the json into the db""" - return HebrewView( - date=datetime.strptime( - hebrew_dates_fields['date_gregorian'], - '%Y-%m-%d').date(), - hebrew_date=hebrew_dates_fields['date_hebrew'] +from hebrew_numbers import int_to_gematria +from pyluach import dates, hebrewcal + + +def get_month_name_by_num(date) -> str: + """Returns the Hebrew name date for the specific day. + + Args: + date: The requested date. + + Returns: + A Hebrew name date. + """ + hebrew_dates_translate_dict = { + 'Tishrei': 'תשרי', + 'Cheshvan': 'חשוון', + 'Kislev': 'כסלו', + 'Teves': 'טבת', + 'Shvat': 'שבט', + 'Adar': 'אדר', + 'Adar Rishon': 'אדר', + 'Nissan': 'ניסן', + 'Iyar': 'אייר', + 'Sivan': 'סיון', + 'Tamuz': 'תמוז', + 'Av': 'אב', + 'Elul': 'אלול', + } + for month in hebrewcal.Year(date.year).itermonths(): + if date.month == month.month: + return hebrew_dates_translate_dict[month.name] + + +def from_greogian_to_hebrew_date(date): + """Returns the Hebrew date for the specific greogian date. + + Args: + date: The requested date. + + Returns: + A Hebrew date string. + """ + + date_split = str(date).split('-') + new_date_format = [int(x) for x in date_split] + gregorian_date = dates.GregorianDate( + new_date_format[0], + new_date_format[1], + new_date_format[2] ) + return gregorian_date.to_heb() -def get_hebrew_date_object(session: Session, date: datetime) -> HebrewView: - """Returns the HebrewView object for the specific day. +def get_hebrew_date(date) -> str: + """Returns the Hebrew date for the specific day. Args: - session: The database connection. date: The requested date. Returns: - A HebrewView object. + A Hebrew date string. """ - for hebrew in session.query(HebrewView).all(): - if hebrew.date == date: - return hebrew + + hebrew_date_list = [] + print(date) + hebrew_date = from_greogian_to_hebrew_date(date) + hebrew_date_list.append(int_to_gematria(hebrew_date.day)) + hebrew_date_list.append(get_month_name_by_num(hebrew_date)) + hebrew_date_list.append(int_to_gematria(hebrew_date.year % 1000)) + return ' '.join(hebrew_date_list) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index f8c8f42a..9bd80851 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -6,8 +6,8 @@ from sqlalchemy.orm import Session -from app.database.models import Base, HebrewView, Joke, Quote, Zodiac -from app.internal import daily_quotes, hebrew_date_view, jokes, zodiac +from app.database.models import Base, Joke, Quote, Zodiac +from app.internal import daily_quotes, jokes, zodiac def load_to_database(session: Session) -> None: @@ -17,11 +17,6 @@ def load_to_database(session: Session) -> None: not be accessed from a network call for each request as it is costly. The quotes JSON file content is copied from the free API: 'https://type.fit/api/quotes'. - The parashot and hebrew_view JSON files content is copied - from the free API: - 'https://www.hebcal.com/hebcal?v=1&cfg=json&maj=on&min=on& - mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on&geo=geoname - &geonameid=293397&m=50&s=on&d=on&D=on'. Args: session: The database connection. @@ -40,13 +35,6 @@ def load_to_database(session: Session) -> None: daily_quotes.get_quote, ) - _insert_into_database( - session, - 'app/resources/hebrew_view.json', - HebrewView, - hebrew_date_view.create_hebrew_dates_object, - ) - _insert_into_database( session, 'app/resources/jokes.json', diff --git a/app/resources/hebrew_view.json b/app/resources/hebrew_view.json deleted file mode 100644 index cacb933d..00000000 --- a/app/resources/hebrew_view.json +++ /dev/null @@ -1,1462 +0,0 @@ -[ - { - "date_gregorian": "2021-01-01", - "date_hebrew": "י״ז טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-02", - "date_hebrew": "י״ח טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-03", - "date_hebrew": "י״ט טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-04", - "date_hebrew": "כ׳ טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-05", - "date_hebrew": "כ״א טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-06", - "date_hebrew": "כ״ב טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-07", - "date_hebrew": "כ״ג טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-08", - "date_hebrew": "כ״ד טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-09", - "date_hebrew": "כ״ה טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-10", - "date_hebrew": "כ״ו טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-11", - "date_hebrew": "כ״ז טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-12", - "date_hebrew": "כ״ח טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-13", - "date_hebrew": "כ״ט טבת תשפ״א" - }, - { - "date_gregorian": "2021-01-14", - "date_hebrew": "א׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-15", - "date_hebrew": "ב׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-16", - "date_hebrew": "ג׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-17", - "date_hebrew": "ד׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-18", - "date_hebrew": "ה׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-19", - "date_hebrew": "ו׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-20", - "date_hebrew": "ז׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-21", - "date_hebrew": "ח׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-22", - "date_hebrew": "ט׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-23", - "date_hebrew": "י׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-24", - "date_hebrew": "י״א שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-25", - "date_hebrew": "י״ב שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-26", - "date_hebrew": "י״ג שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-27", - "date_hebrew": "י״ד שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-28", - "date_hebrew": "ט״ו שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-29", - "date_hebrew": "ט״ז שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-30", - "date_hebrew": "י״ז שבט תשפ״א" - }, - { - "date_gregorian": "2021-01-31", - "date_hebrew": "י״ח שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-01", - "date_hebrew": "י״ט שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-02", - "date_hebrew": "כ׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-03", - "date_hebrew": "כ״א שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-04", - "date_hebrew": "כ״ב שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-05", - "date_hebrew": "כ״ג שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-06", - "date_hebrew": "כ״ד שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-07", - "date_hebrew": "כ״ה שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-08", - "date_hebrew": "כ״ו שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-09", - "date_hebrew": "כ״ז שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-10", - "date_hebrew": "כ״ח שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-11", - "date_hebrew": "כ״ט שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-12", - "date_hebrew": "ל׳ שבט תשפ״א" - }, - { - "date_gregorian": "2021-02-13", - "date_hebrew": "א׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-14", - "date_hebrew": "ב׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-15", - "date_hebrew": "ג׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-16", - "date_hebrew": "ד׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-17", - "date_hebrew": "ה׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-18", - "date_hebrew": "ו׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-19", - "date_hebrew": "ז׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-20", - "date_hebrew": "ח׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-21", - "date_hebrew": "ט׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-22", - "date_hebrew": "י׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-23", - "date_hebrew": "י״א אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-24", - "date_hebrew": "י״ב אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-25", - "date_hebrew": "י״ג אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-26", - "date_hebrew": "י״ד אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-27", - "date_hebrew": "ט״ו אדר תשפ״א" - }, - { - "date_gregorian": "2021-02-28", - "date_hebrew": "ט״ז אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-01", - "date_hebrew": "י״ז אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-02", - "date_hebrew": "י״ח אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-03", - "date_hebrew": "י״ט אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-04", - "date_hebrew": "כ׳ אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-05", - "date_hebrew": "כ״א אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-06", - "date_hebrew": "כ״ב אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-07", - "date_hebrew": "כ״ג אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-08", - "date_hebrew": "כ״ד אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-09", - "date_hebrew": "כ״ה אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-10", - "date_hebrew": "כ״ו אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-11", - "date_hebrew": "כ״ז אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-12", - "date_hebrew": "כ״ח אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-13", - "date_hebrew": "כ״ט אדר תשפ״א" - }, - { - "date_gregorian": "2021-03-14", - "date_hebrew": "א׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-15", - "date_hebrew": "ב׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-16", - "date_hebrew": "ג׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-17", - "date_hebrew": "ד׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-18", - "date_hebrew": "ה׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-19", - "date_hebrew": "ו׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-20", - "date_hebrew": "ז׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-21", - "date_hebrew": "ח׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-22", - "date_hebrew": "ט׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-23", - "date_hebrew": "י׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-24", - "date_hebrew": "י״א ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-25", - "date_hebrew": "י״ב ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-26", - "date_hebrew": "י״ג ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-27", - "date_hebrew": "י״ד ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-28", - "date_hebrew": "ט״ו ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-29", - "date_hebrew": "ט״ז ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-30", - "date_hebrew": "י״ז ניסן תשפ״א" - }, - { - "date_gregorian": "2021-03-31", - "date_hebrew": "י״ח ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-01", - "date_hebrew": "י״ט ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-02", - "date_hebrew": "כ׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-03", - "date_hebrew": "כ״א ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-04", - "date_hebrew": "כ״ב ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-05", - "date_hebrew": "כ״ג ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-06", - "date_hebrew": "כ״ד ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-07", - "date_hebrew": "כ״ה ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-08", - "date_hebrew": "כ״ו ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-09", - "date_hebrew": "כ״ז ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-10", - "date_hebrew": "כ״ח ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-11", - "date_hebrew": "כ״ט ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-12", - "date_hebrew": "ל׳ ניסן תשפ״א" - }, - { - "date_gregorian": "2021-04-13", - "date_hebrew": "א׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-14", - "date_hebrew": "ב׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-15", - "date_hebrew": "ג׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-16", - "date_hebrew": "ד׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-17", - "date_hebrew": "ה׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-18", - "date_hebrew": "ו׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-19", - "date_hebrew": "ז׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-20", - "date_hebrew": "ח׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-21", - "date_hebrew": "ט׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-22", - "date_hebrew": "י׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-23", - "date_hebrew": "י״א אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-24", - "date_hebrew": "י״ב אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-25", - "date_hebrew": "י״ג אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-26", - "date_hebrew": "י״ד אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-27", - "date_hebrew": "ט״ו אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-28", - "date_hebrew": "ט״ז אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-29", - "date_hebrew": "י״ז אייר תשפ״א" - }, - { - "date_gregorian": "2021-04-30", - "date_hebrew": "י״ח אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-01", - "date_hebrew": "י״ט אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-02", - "date_hebrew": "כ׳ אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-03", - "date_hebrew": "כ״א אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-04", - "date_hebrew": "כ״ב אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-05", - "date_hebrew": "כ״ג אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-06", - "date_hebrew": "כ״ד אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-07", - "date_hebrew": "כ״ה אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-08", - "date_hebrew": "כ״ו אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-09", - "date_hebrew": "כ״ז אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-10", - "date_hebrew": "כ״ח אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-11", - "date_hebrew": "כ״ט אייר תשפ״א" - }, - { - "date_gregorian": "2021-05-12", - "date_hebrew": "א׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-13", - "date_hebrew": "ב׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-14", - "date_hebrew": "ג׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-15", - "date_hebrew": "ד׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-16", - "date_hebrew": "ה׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-17", - "date_hebrew": "ו׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-18", - "date_hebrew": "ז׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-19", - "date_hebrew": "ח׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-20", - "date_hebrew": "ט׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-21", - "date_hebrew": "י׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-22", - "date_hebrew": "י״א סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-23", - "date_hebrew": "י״ב סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-24", - "date_hebrew": "י״ג סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-25", - "date_hebrew": "י״ד סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-26", - "date_hebrew": "ט״ו סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-27", - "date_hebrew": "ט״ז סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-28", - "date_hebrew": "י״ז סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-29", - "date_hebrew": "י״ח סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-30", - "date_hebrew": "י״ט סיון תשפ״א" - }, - { - "date_gregorian": "2021-05-31", - "date_hebrew": "כ׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-01", - "date_hebrew": "כ״א סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-02", - "date_hebrew": "כ״ב סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-03", - "date_hebrew": "כ״ג סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-04", - "date_hebrew": "כ״ד סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-05", - "date_hebrew": "כ״ה סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-06", - "date_hebrew": "כ״ו סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-07", - "date_hebrew": "כ״ז סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-08", - "date_hebrew": "כ״ח סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-09", - "date_hebrew": "כ״ט סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-10", - "date_hebrew": "ל׳ סיון תשפ״א" - }, - { - "date_gregorian": "2021-06-11", - "date_hebrew": "א׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-12", - "date_hebrew": "ב׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-13", - "date_hebrew": "ג׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-14", - "date_hebrew": "ד׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-15", - "date_hebrew": "ה׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-16", - "date_hebrew": "ו׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-17", - "date_hebrew": "ז׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-18", - "date_hebrew": "ח׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-19", - "date_hebrew": "ט׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-20", - "date_hebrew": "י׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-21", - "date_hebrew": "י״א תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-22", - "date_hebrew": "י״ב תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-23", - "date_hebrew": "י״ג תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-24", - "date_hebrew": "י״ד תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-25", - "date_hebrew": "ט״ו תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-26", - "date_hebrew": "ט״ז תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-27", - "date_hebrew": "י״ז תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-28", - "date_hebrew": "י״ח תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-29", - "date_hebrew": "י״ט תמוז תשפ״א" - }, - { - "date_gregorian": "2021-06-30", - "date_hebrew": "כ׳ תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-01", - "date_hebrew": "כ״א תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-02", - "date_hebrew": "כ״ב תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-03", - "date_hebrew": "כ״ג תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-04", - "date_hebrew": "כ״ד תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-05", - "date_hebrew": "כ״ה תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-06", - "date_hebrew": "כ״ו תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-07", - "date_hebrew": "כ״ז תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-08", - "date_hebrew": "כ״ח תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-09", - "date_hebrew": "כ״ט תמוז תשפ״א" - }, - { - "date_gregorian": "2021-07-10", - "date_hebrew": "א׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-11", - "date_hebrew": "ב׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-12", - "date_hebrew": "ג׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-13", - "date_hebrew": "ד׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-14", - "date_hebrew": "ה׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-15", - "date_hebrew": "ו׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-16", - "date_hebrew": "ז׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-17", - "date_hebrew": "ח׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-18", - "date_hebrew": "ט׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-19", - "date_hebrew": "י׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-20", - "date_hebrew": "י״א אב תשפ״א" - }, - { - "date_gregorian": "2021-07-21", - "date_hebrew": "י״ב אב תשפ״א" - }, - { - "date_gregorian": "2021-07-22", - "date_hebrew": "י״ג אב תשפ״א" - }, - { - "date_gregorian": "2021-07-23", - "date_hebrew": "י״ד אב תשפ״א" - }, - { - "date_gregorian": "2021-07-24", - "date_hebrew": "ט״ו אב תשפ״א" - }, - { - "date_gregorian": "2021-07-25", - "date_hebrew": "ט״ז אב תשפ״א" - }, - { - "date_gregorian": "2021-07-26", - "date_hebrew": "י״ז אב תשפ״א" - }, - { - "date_gregorian": "2021-07-27", - "date_hebrew": "י״ח אב תשפ״א" - }, - { - "date_gregorian": "2021-07-28", - "date_hebrew": "י״ט אב תשפ״א" - }, - { - "date_gregorian": "2021-07-29", - "date_hebrew": "כ׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-07-30", - "date_hebrew": "כ״א אב תשפ״א" - }, - { - "date_gregorian": "2021-07-31", - "date_hebrew": "כ״ב אב תשפ״א" - }, - { - "date_gregorian": "2021-08-01", - "date_hebrew": "כ״ג אב תשפ״א" - }, - { - "date_gregorian": "2021-08-02", - "date_hebrew": "כ״ד אב תשפ״א" - }, - { - "date_gregorian": "2021-08-03", - "date_hebrew": "כ״ה אב תשפ״א" - }, - { - "date_gregorian": "2021-08-04", - "date_hebrew": "כ״ו אב תשפ״א" - }, - { - "date_gregorian": "2021-08-05", - "date_hebrew": "כ״ז אב תשפ״א" - }, - { - "date_gregorian": "2021-08-06", - "date_hebrew": "כ״ח אב תשפ״א" - }, - { - "date_gregorian": "2021-08-07", - "date_hebrew": "כ״ט אב תשפ״א" - }, - { - "date_gregorian": "2021-08-08", - "date_hebrew": "ל׳ אב תשפ״א" - }, - { - "date_gregorian": "2021-08-09", - "date_hebrew": "א׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-10", - "date_hebrew": "ב׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-11", - "date_hebrew": "ג׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-12", - "date_hebrew": "ד׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-13", - "date_hebrew": "ה׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-14", - "date_hebrew": "ו׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-15", - "date_hebrew": "ז׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-16", - "date_hebrew": "ח׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-17", - "date_hebrew": "ט׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-18", - "date_hebrew": "י׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-19", - "date_hebrew": "י״א אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-20", - "date_hebrew": "י״ב אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-21", - "date_hebrew": "י״ג אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-22", - "date_hebrew": "י״ד אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-23", - "date_hebrew": "ט״ו אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-24", - "date_hebrew": "ט״ז אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-25", - "date_hebrew": "י״ז אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-26", - "date_hebrew": "י״ח אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-27", - "date_hebrew": "י״ט אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-28", - "date_hebrew": "כ׳ אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-29", - "date_hebrew": "כ״א אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-30", - "date_hebrew": "כ״ב אלול תשפ״א" - }, - { - "date_gregorian": "2021-08-31", - "date_hebrew": "כ״ג אלול תשפ״א" - }, - { - "date_gregorian": "2021-09-01", - "date_hebrew": "כ״ד אלול תשפ״א" - }, - { - "date_gregorian": "2021-09-02", - "date_hebrew": "כ״ה אלול תשפ״א" - }, - { - "date_gregorian": "2021-09-03", - "date_hebrew": "כ״ו אלול תשפ״א" - }, - { - "date_gregorian": "2021-09-04", - "date_hebrew": "כ״ז אלול תשפ״א" - }, - { - "date_gregorian": "2021-09-05", - "date_hebrew": "כ״ח אלול תשפ״א" - }, - { - "date_gregorian": "2021-09-06", - "date_hebrew": "כ״ט אלול תשפ״א" - }, - { - "date_gregorian": "2021-09-07", - "date_hebrew": "א׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-08", - "date_hebrew": "ב׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-09", - "date_hebrew": "ג׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-10", - "date_hebrew": "ד׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-11", - "date_hebrew": "ה׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-12", - "date_hebrew": "ו׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-13", - "date_hebrew": "ז׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-14", - "date_hebrew": "ח׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-15", - "date_hebrew": "ט׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-16", - "date_hebrew": "י׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-17", - "date_hebrew": "י״א תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-18", - "date_hebrew": "י״ב תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-19", - "date_hebrew": "י״ג תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-20", - "date_hebrew": "י״ד תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-21", - "date_hebrew": "ט״ו תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-22", - "date_hebrew": "ט״ז תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-23", - "date_hebrew": "י״ז תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-24", - "date_hebrew": "י״ח תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-25", - "date_hebrew": "י״ט תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-26", - "date_hebrew": "כ׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-27", - "date_hebrew": "כ״א תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-28", - "date_hebrew": "כ״ב תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-29", - "date_hebrew": "כ״ג תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-09-30", - "date_hebrew": "כ״ד תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-10-01", - "date_hebrew": "כ״ה תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-10-02", - "date_hebrew": "כ״ו תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-10-03", - "date_hebrew": "כ״ז תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-10-04", - "date_hebrew": "כ״ח תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-10-05", - "date_hebrew": "כ״ט תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-10-06", - "date_hebrew": "ל׳ תשרי תשפ״ב" - }, - { - "date_gregorian": "2021-10-07", - "date_hebrew": "א׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-08", - "date_hebrew": "ב׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-09", - "date_hebrew": "ג׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-10", - "date_hebrew": "ד׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-11", - "date_hebrew": "ה׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-12", - "date_hebrew": "ו׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-13", - "date_hebrew": "ז׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-14", - "date_hebrew": "ח׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-15", - "date_hebrew": "ט׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-16", - "date_hebrew": "י׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-17", - "date_hebrew": "י״א חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-18", - "date_hebrew": "י״ב חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-19", - "date_hebrew": "י״ג חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-20", - "date_hebrew": "י״ד חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-21", - "date_hebrew": "ט״ו חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-22", - "date_hebrew": "ט״ז חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-23", - "date_hebrew": "י״ז חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-24", - "date_hebrew": "י״ח חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-25", - "date_hebrew": "י״ט חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-26", - "date_hebrew": "כ׳ חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-27", - "date_hebrew": "כ״א חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-28", - "date_hebrew": "כ״ב חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-29", - "date_hebrew": "כ״ג חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-30", - "date_hebrew": "כ״ד חשון תשפ״ב" - }, - { - "date_gregorian": "2021-10-31", - "date_hebrew": "כ״ה חשון תשפ״ב" - }, - { - "date_gregorian": "2021-11-01", - "date_hebrew": "כ״ו חשון תשפ״ב" - }, - { - "date_gregorian": "2021-11-02", - "date_hebrew": "כ״ז חשון תשפ״ב" - }, - { - "date_gregorian": "2021-11-03", - "date_hebrew": "כ״ח חשון תשפ״ב" - }, - { - "date_gregorian": "2021-11-04", - "date_hebrew": "כ״ט חשון תשפ״ב" - }, - { - "date_gregorian": "2021-11-05", - "date_hebrew": "א׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-06", - "date_hebrew": "ב׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-07", - "date_hebrew": "ג׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-08", - "date_hebrew": "ד׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-09", - "date_hebrew": "ה׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-10", - "date_hebrew": "ו׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-11", - "date_hebrew": "ז׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-12", - "date_hebrew": "ח׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-13", - "date_hebrew": "ט׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-14", - "date_hebrew": "י׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-15", - "date_hebrew": "י״א כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-16", - "date_hebrew": "י״ב כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-17", - "date_hebrew": "י״ג כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-18", - "date_hebrew": "י״ד כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-19", - "date_hebrew": "ט״ו כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-20", - "date_hebrew": "ט״ז כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-21", - "date_hebrew": "י״ז כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-22", - "date_hebrew": "י״ח כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-23", - "date_hebrew": "י״ט כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-24", - "date_hebrew": "כ׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-25", - "date_hebrew": "כ״א כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-26", - "date_hebrew": "כ״ב כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-27", - "date_hebrew": "כ״ג כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-28", - "date_hebrew": "כ״ד כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-29", - "date_hebrew": "כ״ה כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-11-30", - "date_hebrew": "כ״ו כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-12-01", - "date_hebrew": "כ״ז כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-12-02", - "date_hebrew": "כ״ח כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-12-03", - "date_hebrew": "כ״ט כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-12-04", - "date_hebrew": "ל׳ כסלו תשפ״ב" - }, - { - "date_gregorian": "2021-12-05", - "date_hebrew": "א׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-06", - "date_hebrew": "ב׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-07", - "date_hebrew": "ג׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-08", - "date_hebrew": "ד׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-09", - "date_hebrew": "ה׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-10", - "date_hebrew": "ו׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-11", - "date_hebrew": "ז׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-12", - "date_hebrew": "ח׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-13", - "date_hebrew": "ט׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-14", - "date_hebrew": "י׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-15", - "date_hebrew": "י״א טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-16", - "date_hebrew": "י״ב טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-17", - "date_hebrew": "י״ג טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-18", - "date_hebrew": "י״ד טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-19", - "date_hebrew": "ט״ו טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-20", - "date_hebrew": "ט״ז טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-21", - "date_hebrew": "י״ז טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-22", - "date_hebrew": "י״ח טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-23", - "date_hebrew": "י״ט טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-24", - "date_hebrew": "כ׳ טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-25", - "date_hebrew": "כ״א טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-26", - "date_hebrew": "כ״ב טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-27", - "date_hebrew": "כ״ג טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-28", - "date_hebrew": "כ״ד טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-29", - "date_hebrew": "כ״ה טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-30", - "date_hebrew": "כ״ו טבת תשפ״ב" - }, - { - "date_gregorian": "2021-12-31", - "date_hebrew": "כ״ז טבת תשפ״ב" - } -] diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 6b8f58e9..8c03cc77 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -177,7 +177,7 @@ async def dayview( except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) - hebrew_obj = hebrew_date_view.get_hebrew_date_object(session, day) + hebrew_obj = hebrew_date_view.get_hebrew_date(day.date()) events_n_attrs = get_events_and_attributes( day=day, session=session, diff --git a/app/templates/calendar_day_view.html b/app/templates/calendar_day_view.html index d23c50f8..4432237d 100644 --- a/app/templates/calendar_day_view.html +++ b/app/templates/calendar_day_view.html @@ -19,11 +19,11 @@ {% else %} {{day}} / {{month}} {% endif %} -
+ {% if hebrewView %} -
- {{ gettext("%(hebrewDate)s", hebrewDate=hebrewView.hebrew_date) }} -
+
+ {{hebrewView}} +
{% endif %}
{% for event in all_day_events %} diff --git a/app/templates/partials/calendar/monthly_view/add_week.html b/app/templates/partials/calendar/monthly_view/add_week.html index 60e0fe21..a53a7f4a 100644 --- a/app/templates/partials/calendar/monthly_view/add_week.html +++ b/app/templates/partials/calendar/monthly_view/add_week.html @@ -15,11 +15,6 @@ {% for event in day.events %}
{{ event[0] }} {{ event[1] }}
{% endfor %} - {% for hebrew in hebrewView %} - {% if hebrew.date.date() == day.date %} -

{{hebrew.hebrew_date}}

- {% endif %} - {% endfor %}
{% endfor %} diff --git a/requirements.txt b/requirements.txt index 6ea27f9e..4362ab2f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -52,6 +52,7 @@ google-auth-oauthlib==0.4.2 googleapis-common-protos==1.52.0 h11==0.12.0 h2==4.0.0 +python-hebrew-numbers==0.2.3 hiredis==1.1.0 hpack==4.0.0 httpcore==0.12.2 diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index fec3c03f..10f5cdd2 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -1,10 +1,20 @@ -from app.internal import hebrew_date_view +from datetime import datetime +from pyluach import dates, hebrewcal +from app.internal.hebrew_date_view import * + + +DAY = datetime.strptime("2021-01-01", "%Y-%m-%d").date() +DAY2 = datetime.strptime("2021-02-21", "%Y-%m-%d").date() + + +def test_get_hebrew_date(): + result = get_hebrew_date(DAY) + assert result == "י״ז טבת תשפ״א" + + +def test_from_greogian_to_hebrew_date_and_find_month_name(): + result = from_greogian_to_hebrew_date(DAY2) + assert result == dates.HebrewDate(5781, 12, 9) + assert get_month_name_by_num(result) == 'אדר' -def test_create_hebrew_dates_object(): - hebrew_dates_fields = { - 'date_gregorian': "2021-01-01", - 'date_hebrew': "י״ז טבת תשפ״א" - } - result = hebrew_date_view.create_hebrew_dates_object(hebrew_dates_fields) - assert result.hebrew_date == "י״ז טבת תשפ״א" From 4ae05953b2d2e9b271f948de5baf87ce348d1fb7 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Mon, 22 Feb 2021 00:04:51 +0200 Subject: [PATCH 27/50] edit --- tests/test_hebrew_date.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 10f5cdd2..6168b401 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -1,7 +1,10 @@ from datetime import datetime -from pyluach import dates, hebrewcal +from pyluach import dates -from app.internal.hebrew_date_view import * +from app.internal.hebrew_date_view import \ + get_hebrew_date, \ + from_greogian_to_hebrew_date, \ + get_month_name_by_num DAY = datetime.strptime("2021-01-01", "%Y-%m-%d").date() @@ -17,4 +20,3 @@ def test_from_greogian_to_hebrew_date_and_find_month_name(): result = from_greogian_to_hebrew_date(DAY2) assert result == dates.HebrewDate(5781, 12, 9) assert get_month_name_by_num(result) == 'אדר' - From 1c52fbdc40ea7d943ae141c4a490eca8361da87f Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 23 Feb 2021 13:53:39 +0200 Subject: [PATCH 28/50] edit --- app/database/models.py | 2 -- app/internal/hebrew_date_view.py | 49 ++++++++++++++++---------------- app/internal/json_data_loader.py | 2 +- app/routers/dayview.py | 2 +- tests/test_hebrew_date.py | 10 ++++--- 5 files changed, 32 insertions(+), 33 deletions(-) diff --git a/app/database/models.py b/app/database/models.py index 4c11279f..048fa53f 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -426,8 +426,6 @@ class Joke(Base): # Credit to adrihanu https://stackoverflow.com/users/9127249/adrihanu # https://stackoverflow.com/questions/17461251 - - def insert_data(target, session: Session, **kw): session.execute( target.insert(), diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index e8c0dc16..c585d772 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -1,8 +1,26 @@ +from datetime import datetime + from hebrew_numbers import int_to_gematria from pyluach import dates, hebrewcal -def get_month_name_by_num(date) -> str: +EN_TO_HEB_MONTH_NAMES = { + 'Tishrei': 'תשרי', + 'Cheshvan': 'חשוון', + 'Kislev': 'כסלו', + 'Teves': 'טבת', + 'Shvat': 'שבט', + 'Adar': 'אדר', + 'Adar Rishon': 'אדר', + 'Nissan': 'ניסן', + 'Iyar': 'אייר', + 'Sivan': 'סיוון', + 'Tamuz': 'תמוז', + 'Av': 'אב', + 'Elul': 'אלול', +} + +def get_month_name_by_num(date: datetime) -> str: """Returns the Hebrew name date for the specific day. Args: @@ -11,27 +29,13 @@ def get_month_name_by_num(date) -> str: Returns: A Hebrew name date. """ - hebrew_dates_translate_dict = { - 'Tishrei': 'תשרי', - 'Cheshvan': 'חשוון', - 'Kislev': 'כסלו', - 'Teves': 'טבת', - 'Shvat': 'שבט', - 'Adar': 'אדר', - 'Adar Rishon': 'אדר', - 'Nissan': 'ניסן', - 'Iyar': 'אייר', - 'Sivan': 'סיון', - 'Tamuz': 'תמוז', - 'Av': 'אב', - 'Elul': 'אלול', - } + for month in hebrewcal.Year(date.year).itermonths(): if date.month == month.month: - return hebrew_dates_translate_dict[month.name] + return EN_TO_HEB_MONTH_NAMES[month.name] -def from_greogian_to_hebrew_date(date): +def from_greogian_to_hebrew_date(date: datetime): """Returns the Hebrew date for the specific greogian date. Args: @@ -43,15 +47,11 @@ def from_greogian_to_hebrew_date(date): date_split = str(date).split('-') new_date_format = [int(x) for x in date_split] - gregorian_date = dates.GregorianDate( - new_date_format[0], - new_date_format[1], - new_date_format[2] - ) + gregorian_date = dates.GregorianDate(*new_date_format) return gregorian_date.to_heb() -def get_hebrew_date(date) -> str: +def get_hebrew_date(date: datetime) -> str: """Returns the Hebrew date for the specific day. Args: @@ -62,7 +62,6 @@ def get_hebrew_date(date) -> str: """ hebrew_date_list = [] - print(date) hebrew_date = from_greogian_to_hebrew_date(date) hebrew_date_list.append(int_to_gematria(hebrew_date.day)) hebrew_date_list.append(get_month_name_by_num(hebrew_date)) diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index 9bd80851..8e328345 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -97,7 +97,7 @@ def _get_data_from_json(path: str) -> List[Dict[str, Any]]: A list of dictionary objects. """ try: - with open(path, 'r', encoding='utf-8-sig') as json_file: + with open(path, 'r') as json_file: json_content = json.load(json_file) except (IOError, ValueError): file_name = os.path.basename(path) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 8c03cc77..694a4de5 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -165,7 +165,7 @@ async def dayview( view="day", ): # TODO: add a login session - user = session.query(User).filter_by(username="test_username").first() + user = session.query(User).filter_by(username="new_user").first() if not user: error_message = "User not found." raise HTTPException( diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 6168b401..ebc12b95 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -1,10 +1,12 @@ from datetime import datetime from pyluach import dates -from app.internal.hebrew_date_view import \ - get_hebrew_date, \ - from_greogian_to_hebrew_date, \ - get_month_name_by_num +from app.internal.hebrew_date_view import ( + get_hebrew_date, + from_greogian_to_hebrew_date, + get_month_name_by_num, +) + DAY = datetime.strptime("2021-01-01", "%Y-%m-%d").date() From 0abd915c2706050ac7e793d6085139cabc446589 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 23 Feb 2021 14:26:24 +0200 Subject: [PATCH 29/50] edit --- app/internal/hebrew_date_view.py | 4 +++- tests/test_hebrew_date.py | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index c585d772..b8e7f047 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -11,7 +11,8 @@ 'Teves': 'טבת', 'Shvat': 'שבט', 'Adar': 'אדר', - 'Adar Rishon': 'אדר', + 'Adar Rishon': "אדר(א')", + 'Adar Sheni': "אדר(ב')", 'Nissan': 'ניסן', 'Iyar': 'אייר', 'Sivan': 'סיוון', @@ -32,6 +33,7 @@ def get_month_name_by_num(date: datetime) -> str: for month in hebrewcal.Year(date.year).itermonths(): if date.month == month.month: + print(month.name) return EN_TO_HEB_MONTH_NAMES[month.name] diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index ebc12b95..ec5e3b0a 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -8,9 +8,10 @@ ) - DAY = datetime.strptime("2021-01-01", "%Y-%m-%d").date() -DAY2 = datetime.strptime("2021-02-21", "%Y-%m-%d").date() +ADAR = datetime.strptime("2021-02-15", "%Y-%m-%d").date() +ADAR_A = datetime.strptime("2019-02-15", "%Y-%m-%d").date() +ADAR_B = datetime.strptime("2021-03-08", "%Y-%m-%d").date() def test_get_hebrew_date(): @@ -19,6 +20,14 @@ def test_get_hebrew_date(): def test_from_greogian_to_hebrew_date_and_find_month_name(): - result = from_greogian_to_hebrew_date(DAY2) + result = from_greogian_to_hebrew_date(ADAR) assert result == dates.HebrewDate(5781, 12, 9) assert get_month_name_by_num(result) == 'אדר' + + +def test_if_leap_year(): + result_a = from_greogian_to_hebrew_date(ADAR_A) + result_b = from_greogian_to_hebrew_date(ADAR_B) + assert get_month_name_by_num(result_a) == "אדר(א')" + assert get_month_name_by_num(result_b) == "אדר(ב')" + From 78278bc30bb538cfe1525f865d65988f83ada643 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 23 Feb 2021 15:08:19 +0200 Subject: [PATCH 30/50] edit --- app/internal/hebrew_date_view.py | 1 + app/routers/dayview.py | 2 +- tests/test_hebrew_date.py | 5 ++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index b8e7f047..d2c3c1c6 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -21,6 +21,7 @@ 'Elul': 'אלול', } + def get_month_name_by_num(date: datetime) -> str: """Returns the Hebrew name date for the specific day. diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 694a4de5..8c03cc77 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -165,7 +165,7 @@ async def dayview( view="day", ): # TODO: add a login session - user = session.query(User).filter_by(username="new_user").first() + user = session.query(User).filter_by(username="test_username").first() if not user: error_message = "User not found." raise HTTPException( diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index ec5e3b0a..368b370e 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -11,7 +11,7 @@ DAY = datetime.strptime("2021-01-01", "%Y-%m-%d").date() ADAR = datetime.strptime("2021-02-15", "%Y-%m-%d").date() ADAR_A = datetime.strptime("2019-02-15", "%Y-%m-%d").date() -ADAR_B = datetime.strptime("2021-03-08", "%Y-%m-%d").date() +ADAR_B = datetime.strptime("2019-03-08", "%Y-%m-%d").date() def test_get_hebrew_date(): @@ -21,7 +21,7 @@ def test_get_hebrew_date(): def test_from_greogian_to_hebrew_date_and_find_month_name(): result = from_greogian_to_hebrew_date(ADAR) - assert result == dates.HebrewDate(5781, 12, 9) + assert result == dates.HebrewDate(5781, 12, 3) assert get_month_name_by_num(result) == 'אדר' @@ -30,4 +30,3 @@ def test_if_leap_year(): result_b = from_greogian_to_hebrew_date(ADAR_B) assert get_month_name_by_num(result_a) == "אדר(א')" assert get_month_name_by_num(result_b) == "אדר(ב')" - From d2573b1151808fc9d802672ef48d2d4a7e3d7fb6 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 23 Feb 2021 15:17:25 +0200 Subject: [PATCH 31/50] edit --- app/routers/audio.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routers/audio.py b/app/routers/audio.py index 827f67ca..05372169 100644 --- a/app/routers/audio.py +++ b/app/routers/audio.py @@ -16,7 +16,7 @@ DEFAULT_SFX_VOL, ) from app.dependencies import SOUNDS_PATH, get_db, templates -from app.internal.security.dependancies import current_user +from app.internal.security.dependencies import current_user from fastapi import APIRouter, Depends, Form, Request from sqlalchemy.orm.session import Session from starlette.responses import RedirectResponse From 7af958217a65d6fb7171b48110ec5efb38c73f9e Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 23 Feb 2021 16:58:05 +0200 Subject: [PATCH 32/50] edit --- app/internal/hebrew_date_view.py | 19 ++++++++----------- app/routers/calendar.py | 6 ++++-- app/routers/dayview.py | 2 +- tests/test_hebrew_date.py | 4 ++-- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index d2c3c1c6..9cb4ee31 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -30,11 +30,9 @@ def get_month_name_by_num(date: datetime) -> str: Returns: A Hebrew name date. - """ - + """ for month in hebrewcal.Year(date.year).itermonths(): if date.month == month.month: - print(month.name) return EN_TO_HEB_MONTH_NAMES[month.name] @@ -47,14 +45,13 @@ def from_greogian_to_hebrew_date(date: datetime): Returns: A Hebrew date string. """ - date_split = str(date).split('-') new_date_format = [int(x) for x in date_split] gregorian_date = dates.GregorianDate(*new_date_format) return gregorian_date.to_heb() -def get_hebrew_date(date: datetime) -> str: +def get_hebrew_date_in_words(date: datetime) -> str: """Returns the Hebrew date for the specific day. Args: @@ -64,9 +61,9 @@ def get_hebrew_date(date: datetime) -> str: A Hebrew date string. """ - hebrew_date_list = [] - hebrew_date = from_greogian_to_hebrew_date(date) - hebrew_date_list.append(int_to_gematria(hebrew_date.day)) - hebrew_date_list.append(get_month_name_by_num(hebrew_date)) - hebrew_date_list.append(int_to_gematria(hebrew_date.year % 1000)) - return ' '.join(hebrew_date_list) + hebrew_date_object = from_greogian_to_hebrew_date(date) + return ' '.join( + int_to_gematria(hebrew_date_object.day), + get_month_name_by_num(hebrew_date_object), + int_to_gematria(hebrew_date_object.year % 1000), + ) diff --git a/app/routers/calendar.py b/app/routers/calendar.py index db0de4d4..9876a97f 100644 --- a/app/routers/calendar.py +++ b/app/routers/calendar.py @@ -1,11 +1,13 @@ from http import HTTPStatus -from app.dependencies import get_db, templates -from app.routers import calendar_grid from fastapi import APIRouter, Request, Depends from fastapi.responses import HTMLResponse from starlette.responses import Response +from app.dependencies import get_db, templates +from app.routers import calendar_grid + + router = APIRouter( prefix="/calendar/month", tags=["calendar"], diff --git a/app/routers/dayview.py b/app/routers/dayview.py index f48bf16f..34c33f07 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -177,7 +177,7 @@ async def dayview( except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) - hebrew_obj = hebrew_date_view.get_hebrew_date(day.date()) + hebrew_obj = hebrew_date_view.get_hebrew_date_in_words(day.date()) events_n_attrs = get_events_and_attributes( day=day, session=session, diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 368b370e..7cb6a304 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -2,7 +2,7 @@ from pyluach import dates from app.internal.hebrew_date_view import ( - get_hebrew_date, + get_hebrew_date_in_words, from_greogian_to_hebrew_date, get_month_name_by_num, ) @@ -15,7 +15,7 @@ def test_get_hebrew_date(): - result = get_hebrew_date(DAY) + result = get_hebrew_date_in_words(DAY) assert result == "י״ז טבת תשפ״א" From a3b0b95be5236415692a4d8aae13db680f552df2 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 23 Feb 2021 17:16:00 +0200 Subject: [PATCH 33/50] edit --- app/internal/hebrew_date_view.py | 6 +- app/templates/calendar_day_view.html | 128 +++++++++------------------ 2 files changed, 45 insertions(+), 89 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index 9cb4ee31..01474430 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -62,8 +62,8 @@ def get_hebrew_date_in_words(date: datetime) -> str: """ hebrew_date_object = from_greogian_to_hebrew_date(date) - return ' '.join( + return ' '.join(( int_to_gematria(hebrew_date_object.day), get_month_name_by_num(hebrew_date_object), - int_to_gematria(hebrew_date_object.year % 1000), - ) + int_to_gematria(hebrew_date_object.year % 1000) + )) diff --git a/app/templates/calendar_day_view.html b/app/templates/calendar_day_view.html index d86669c4..47b727a6 100644 --- a/app/templates/calendar_day_view.html +++ b/app/templates/calendar_day_view.html @@ -14,111 +14,67 @@ class="month-title fw-bold text-white">{{month}} {{day}} {% if zodiac %} -
- zodiac sign -
- {% endif %} - {% else %} - {{day}} / {{month}} - {% endif %} +
+ zodiac sign
+ {% endif %} {% if hebrewView %}
{{hebrewView}}
{% endif %} - {% if international_day %} -
- The International days are: "{{ international_day.international_day }}" -
- {% endif %} {% else %} {{day}} / {{month}} {% endif %} - -
- {% for event in all_day_events %} -

{{ event.title }}

- {% endfor %}
- {% for hour in range(25)%} -
-
- {% if view == 'day'%} - {% set hour = hour|string() %} - {{hour.zfill(2)}}:00 - {% endif %} -
-
-
- {% endfor %} -======= -
- {% for event in all_day_events %} -

{{ event.title }}

+ {% for hour in range(25)%} +
+
+ {% if view == 'day'%} + {% set hour = hour|string() %} + {{hour.zfill(2)}}:00 + {% endif %} +
+
+
{% endfor %} ->>>>>>> f85eb84341ac1a3d06ad3a1d1adef28eea926a45
-
-
- {% for hour in range(25)%} -
-
- {% if view == 'day'%} - {% set hour = hour|string() %} - {{hour.zfill(2)}}:00 - {% endif %} -
-
-
- {% endfor %} +
+ {% for event, attr in events %} +
+
+

{{ event.title }}

+ {% if attr.total_time_visible %} +

{{attr.total_time}}

+ {% endif %}
-
- {% for event, attr in events %} -
-
-

{{ - event.title }}

- {% if attr.total_time_visible %} -

- {{attr.total_time}}

- {% endif %} -
-
- - - -
-
- {% endfor %} +
+ + +
+
+ {% endfor %}
- {% if view == 'day'%} - - {% endif %} +
+ {% if view == 'day'%} + + {% endif %}
-{% if view == 'day'%} -
{% endif %} +{% if view == 'day'%}
{% endif %} - + {% endblock body %} \ No newline at end of file From 408de5d655980695c2e56df37087eff367e1dec6 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 24 Feb 2021 13:11:33 +0200 Subject: [PATCH 34/50] edit --- app/internal/hebrew_date_view.py | 6 ++---- app/internal/json_data_loader.py | 1 + app/routers/dayview.py | 4 ++-- app/templates/calendar_day_view.html | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index 01474430..e59a295a 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -36,7 +36,7 @@ def get_month_name_by_num(date: datetime) -> str: return EN_TO_HEB_MONTH_NAMES[month.name] -def from_greogian_to_hebrew_date(date: datetime): +def from_greogian_to_hebrew_date(date: datetime) -> str: """Returns the Hebrew date for the specific greogian date. Args: @@ -45,9 +45,7 @@ def from_greogian_to_hebrew_date(date: datetime): Returns: A Hebrew date string. """ - date_split = str(date).split('-') - new_date_format = [int(x) for x in date_split] - gregorian_date = dates.GregorianDate(*new_date_format) + gregorian_date = dates.GregorianDate(date.year,date.month,date.day) return gregorian_date.to_heb() diff --git a/app/internal/json_data_loader.py b/app/internal/json_data_loader.py index c676fa3f..779bfa17 100644 --- a/app/internal/json_data_loader.py +++ b/app/internal/json_data_loader.py @@ -14,6 +14,7 @@ def load_to_database(session: Session) -> None: On startup, data from the JSON files should be added to the database and not be accessed from a network call for each request as it is costly. + The quotes JSON file content is copied from the free API: 'https://type.fit/api/quotes'. diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 34c33f07..73a89304 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -165,7 +165,7 @@ async def dayview( view="day", ): # TODO: add a login session - user = session.query(User).filter_by(username="test_username").first() + user = session.query(User).filter_by(username="new_user").first() if not user: error_message = "User not found." raise HTTPException( @@ -201,6 +201,6 @@ async def dayview( "international_day": inter_day, "zodiac": zodiac_obj, "view": view, - "hebrewView": hebrew_obj, + "hebrew_view": hebrew_obj, }, ) diff --git a/app/templates/calendar_day_view.html b/app/templates/calendar_day_view.html index 47b727a6..885f6982 100644 --- a/app/templates/calendar_day_view.html +++ b/app/templates/calendar_day_view.html @@ -20,9 +20,9 @@ alt="zodiac sign" width="14em" height="13em">
{% endif %} - {% if hebrewView %} + {% if hebrew_view %}
- {{hebrewView}} + {{ hebrew_view }}
{% endif %} {% else %} From 848368f991810498a5fda4c280f1b7bb697b2158 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 24 Feb 2021 15:25:17 +0200 Subject: [PATCH 35/50] edit --- app/routers/dayview.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 73a89304..96af2e0e 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -165,7 +165,7 @@ async def dayview( view="day", ): # TODO: add a login session - user = session.query(User).filter_by(username="new_user").first() + user = session.query(User).filter_by(username="test_username").first() if not user: error_message = "User not found." raise HTTPException( From 3e96b8bae578736757f5a051a755c68a63e2747d Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 24 Feb 2021 15:26:07 +0200 Subject: [PATCH 36/50] edit --- app/internal/hebrew_date_view.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index e59a295a..0bc89edf 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -45,7 +45,7 @@ def from_greogian_to_hebrew_date(date: datetime) -> str: Returns: A Hebrew date string. """ - gregorian_date = dates.GregorianDate(date.year,date.month,date.day) + gregorian_date = dates.GregorianDate(date.year, date.month, date.day) return gregorian_date.to_heb() From 34ebe6edc51cf24398157874f2c8081f25ef2064 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Wed, 24 Feb 2021 17:37:04 +0200 Subject: [PATCH 37/50] edit --- app/internal/hebrew_date_view.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index 0bc89edf..f2aa5796 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -63,5 +63,5 @@ def get_hebrew_date_in_words(date: datetime) -> str: return ' '.join(( int_to_gematria(hebrew_date_object.day), get_month_name_by_num(hebrew_date_object), - int_to_gematria(hebrew_date_object.year % 1000) + int_to_gematria(hebrew_date_object.year % 1000), )) From 3b1a6be29413c437766e48d1ac06ac9e88b5bf62 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Thu, 25 Feb 2021 20:51:35 +0200 Subject: [PATCH 38/50] Details Message --- app/internal/hebrew_date_view.py | 99 +++++++++-------- app/locales/en/LC_MESSAGES/base.po | 169 +++++++++++++++++++++++------ app/locales/he/LC_MESSAGES/base.po | 165 ++++++++++++++++++++++------ app/routers/dayview.py | 2 +- tests/test_hebrew_date.py | 24 ++-- 5 files changed, 341 insertions(+), 118 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index f2aa5796..135a90e8 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -1,67 +1,76 @@ -from datetime import datetime +from datetime import date from hebrew_numbers import int_to_gematria from pyluach import dates, hebrewcal +from pyluach.dates import HebrewDate + + +HEBREW_LANGUAGE_ID = 2 +HEB_MONTH_NAMES = { + 'Tishrei': _("Tishrei"), + 'Cheshvan': _("Cheshvan"), + 'Kislev': _("Kislev"), + 'Teves': _("Teves"), + 'Shvat': _("Shvat"), + 'Adar': _("Adar"), + 'Adar Rishon': _("Adar Rishon"), + 'Adar Sheni': _("Adar Sheni"), + 'Nissan': _("Nissan"), + 'Iyar': _("Iyar"), + 'Sivan': _("Sivan"), + 'Tamuz': _("Tamuz"), + 'Av': _("Av"), + 'Elul': _("Elul"), +} -EN_TO_HEB_MONTH_NAMES = { - 'Tishrei': 'תשרי', - 'Cheshvan': 'חשוון', - 'Kislev': 'כסלו', - 'Teves': 'טבת', - 'Shvat': 'שבט', - 'Adar': 'אדר', - 'Adar Rishon': "אדר(א')", - 'Adar Sheni': "אדר(ב')", - 'Nissan': 'ניסן', - 'Iyar': 'אייר', - 'Sivan': 'סיוון', - 'Tamuz': 'תמוז', - 'Av': 'אב', - 'Elul': 'אלול', -} +def get_hebrew_date_in_words(calendar_date: date, language_id: int) -> str: + """Returns the Hebrew date for the specific day. + Args: + calendar_date: The requested date. + language_id: The user's language. -def get_month_name_by_num(date: datetime) -> str: + Returns: + A Hebrew date string. + """ + + hebrew_date_object = from_gregorian_to_hebrew_date(calendar_date) + day = hebrew_date_object.day + month = get_month_name_by_num(hebrew_date_object) + year = hebrew_date_object.year + if language_id == HEBREW_LANGUAGE_ID: + day = int_to_gematria(day) + year = int_to_gematria(year % 1000) + return ' '.join((str(day), str(month), str(year))) + + +def get_month_name_by_num(calendar_date: HebrewDate) -> str: """Returns the Hebrew name date for the specific day. Args: - date: The requested date. + calendar_date: The requested date. Returns: A Hebrew name date. """ - for month in hebrewcal.Year(date.year).itermonths(): - if date.month == month.month: - return EN_TO_HEB_MONTH_NAMES[month.name] + for month in hebrewcal.Year(calendar_date.year).itermonths(): + if calendar_date.month == month.month: + return HEB_MONTH_NAMES[month.name] -def from_greogian_to_hebrew_date(date: datetime) -> str: - """Returns the Hebrew date for the specific greogian date. +def from_gregorian_to_hebrew_date(calendar_date: date) -> HebrewDate: + """Returns the Hebrew date for the specific gregorian date. Args: - date: The requested date. + calendar_date: The requested date. Returns: - A Hebrew date string. + A HebrewDate object. """ - gregorian_date = dates.GregorianDate(date.year, date.month, date.day) + gregorian_date = dates.GregorianDate( + calendar_date.year, + calendar_date.month, + calendar_date.day, + ) return gregorian_date.to_heb() - - -def get_hebrew_date_in_words(date: datetime) -> str: - """Returns the Hebrew date for the specific day. - - Args: - date: The requested date. - - Returns: - A Hebrew date string. - """ - - hebrew_date_object = from_greogian_to_hebrew_date(date) - return ' '.join(( - int_to_gematria(hebrew_date_object.day), - get_month_name_by_num(hebrew_date_object), - int_to_gematria(hebrew_date_object.year % 1000), - )) diff --git a/app/locales/en/LC_MESSAGES/base.po b/app/locales/en/LC_MESSAGES/base.po index 948c8761..5b9ea848 100644 --- a/app/locales/en/LC_MESSAGES/base.po +++ b/app/locales/en/LC_MESSAGES/base.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-02-07 21:31+0000\n" +"POT-Creation-Date: 2021-02-25 17:46+0200\n" "PO-Revision-Date: 2021-01-26 21:31+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -18,81 +18,161 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.0\n" -#: app/routers/profile.py:20 +#: app/internal/astronomy.py:11 +msgid "No response from server." +msgstr "" + +#: app/internal/hebrew_date_view.py:10 +msgid "Tishrei" +msgstr "" + +#: app/internal/hebrew_date_view.py:11 +msgid "Cheshvan" +msgstr "" + +#: app/internal/hebrew_date_view.py:12 +msgid "Kislev" +msgstr "" + +#: app/internal/hebrew_date_view.py:13 +msgid "Teves" +msgstr "" + +#: app/internal/hebrew_date_view.py:14 +msgid "Shvat" +msgstr "" + +#: app/internal/hebrew_date_view.py:15 +msgid "Adar" +msgstr "" + +#: app/internal/hebrew_date_view.py:16 +msgid "Adar Rishon" +msgstr "" + +#: app/internal/hebrew_date_view.py:17 +msgid "Adar Sheni" +msgstr "" + +#: app/internal/hebrew_date_view.py:18 +msgid "Nissan" +msgstr "" + +#: app/internal/hebrew_date_view.py:19 +msgid "Iyar" +msgstr "" + +#: app/internal/hebrew_date_view.py:20 +msgid "Sivan" +msgstr "" + +#: app/internal/hebrew_date_view.py:21 +msgid "Tamuz" +msgstr "" + +#: app/internal/hebrew_date_view.py:22 +msgid "Av" +msgstr "" + +#: app/internal/hebrew_date_view.py:23 +msgid "Elul" +msgstr "" + +#: app/routers/export.py:18 msgid "Not found" msgstr "" -#: app/templates/agenda.html:11 +#: app/routers/search.py:53 +msgid "Invalid request." +msgstr "" + +#: app/routers/search.py:58 +msgid "No matching results for '{keywords}'." +msgstr "" + +#: app/templates/agenda.html:14 +#: app/templates/partials/user_profile/sidebar_left/features_card/export_calendar.html:9 msgid "From" msgstr "" -#: app/templates/agenda.html:13 -msgid "to" +#: app/templates/agenda.html:18 +#: app/templates/partials/user_profile/sidebar_left/features_card/export_calendar.html:11 +msgid "To" msgstr "" -#: app/templates/agenda.html:15 +#: app/templates/agenda.html:22 msgid "Get Agenda" msgstr "" -#: app/templates/agenda.html:20 +#: app/templates/agenda.html:39 msgid "Today" msgstr "" -#: app/templates/agenda.html:23 -msgid "Next week" +#: app/templates/agenda.html:42 +msgid "Next 7 days" +msgstr "" + +#: app/templates/agenda.html:45 +msgid "Next 30 days" msgstr "" -#: app/templates/agenda.html:26 -msgid "Next month" +#: app/templates/agenda.html:49 +msgid "Week graph" msgstr "" -#: app/templates/agenda.html:33 +#: app/templates/agenda.html:61 msgid "Start date is greater than end date" msgstr "" -#: app/templates/agenda.html:35 +#: app/templates/agenda.html:63 msgid "No events found..." msgstr "" -#: app/templates/profile.html:50 -msgid "Update name" +#: app/templates/base.html:41 +msgid "Sign Out" msgstr "" -#: app/templates/profile.html:57 app/templates/profile.html:77 -#: app/templates/profile.html:97 app/templates/profile.html:120 -#: app/templates/profile.html:140 -msgid "Save changes" +#: app/templates/base.html:68 app/templates/partials/index/navigation.html:36 +msgid "About Us" msgstr "" -#: app/templates/profile.html:70 -msgid "Update email" +#: app/templates/partials/calendar/event/view_event_details_tab.html:61 +msgid "Choose user" +msgstr "" + +#: app/templates/partials/user_profile/sidebar_left/features_card/export_calendar.html:13 +msgid "Export" msgstr "" -#: app/templates/profile.html:90 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/description_modal.html:6 msgid "Update description" msgstr "" -#: app/templates/profile.html:111 -msgid "Update photo" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/description_modal.html:14 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/email_modal.html:14 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/name_modal.html:14 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/telegram_modal.html:15 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/upload_photo_modal.html:15 +msgid "Save changes" msgstr "" -#: app/templates/profile.html:220 -msgid "Upcoming event on (date)" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/email_modal.html:6 +msgid "Update email" msgstr "" -#: app/templates/profile.html:246 -msgid "The Event (event)" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/name_modal.html:6 +msgid "Update name" msgstr "" -#: app/templates/profile.html:249 -msgid "Last updated (time) ago" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/upload_photo_modal.html:6 +msgid "Update photo" msgstr "" -#: app/templates/profile.html:285 +#: app/templates/partials/user_profile/sidebar_right/meetups.html:4 msgid "Explore MeetUps near you" msgstr "" -#: app/templates/profile.html:293 +#: app/templates/partials/user_profile/sidebar_right/new_card.html:4 msgid "Your Card" msgstr "" @@ -130,3 +210,28 @@ msgstr "" #~ msgid "Agenda" #~ msgstr "" + +#~ msgid "to" +#~ msgstr "" + +#~ msgid "Next week" +#~ msgstr "" + +#~ msgid "Next month" +#~ msgstr "" + +#~ msgid "Upcoming event on (date)" +#~ msgstr "" + +#~ msgid "The Event (event)" +#~ msgstr "" + +#~ msgid "Last updated (time) ago" +#~ msgstr "" + +#~ msgid "Teves" +#~ msgstr "" + +#~ msgid "Tevet" +#~ msgstr "" + diff --git a/app/locales/he/LC_MESSAGES/base.po b/app/locales/he/LC_MESSAGES/base.po index 959b1f6d..f0e80156 100644 --- a/app/locales/he/LC_MESSAGES/base.po +++ b/app/locales/he/LC_MESSAGES/base.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-02-07 21:31+0000\n" +"POT-Creation-Date: 2021-02-25 17:46+0200\n" "PO-Revision-Date: 2021-01-26 21:31+0200\n" "Last-Translator: FULL NAME \n" "Language: he\n" @@ -18,81 +18,161 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.0\n" -#: app/routers/profile.py:20 +#: app/internal/astronomy.py:11 +msgid "No response from server." +msgstr "" + +#: app/internal/hebrew_date_view.py:10 +msgid "Tishrei" +msgstr "" + +#: app/internal/hebrew_date_view.py:11 +msgid "Cheshvan" +msgstr "" + +#: app/internal/hebrew_date_view.py:12 +msgid "Kislev" +msgstr "" + +#: app/internal/hebrew_date_view.py:13 +msgid "Teves" +msgstr "טבת" + +#: app/internal/hebrew_date_view.py:14 +msgid "Shvat" +msgstr "" + +#: app/internal/hebrew_date_view.py:15 +msgid "Adar" +msgstr "" + +#: app/internal/hebrew_date_view.py:16 +msgid "Adar Rishon" +msgstr "" + +#: app/internal/hebrew_date_view.py:17 +msgid "Adar Sheni" +msgstr "" + +#: app/internal/hebrew_date_view.py:18 +msgid "Nissan" +msgstr "" + +#: app/internal/hebrew_date_view.py:19 +msgid "Iyar" +msgstr "" + +#: app/internal/hebrew_date_view.py:20 +msgid "Sivan" +msgstr "" + +#: app/internal/hebrew_date_view.py:21 +msgid "Tamuz" +msgstr "" + +#: app/internal/hebrew_date_view.py:22 +msgid "Av" +msgstr "" + +#: app/internal/hebrew_date_view.py:23 +msgid "Elul" +msgstr "" + +#: app/routers/export.py:18 msgid "Not found" msgstr "" -#: app/templates/agenda.html:11 +#: app/routers/search.py:53 +msgid "Invalid request." +msgstr "" + +#: app/routers/search.py:58 +msgid "No matching results for '{keywords}'." +msgstr "" + +#: app/templates/agenda.html:14 +#: app/templates/partials/user_profile/sidebar_left/features_card/export_calendar.html:9 msgid "From" msgstr "" -#: app/templates/agenda.html:13 -msgid "to" +#: app/templates/agenda.html:18 +#: app/templates/partials/user_profile/sidebar_left/features_card/export_calendar.html:11 +msgid "To" msgstr "" -#: app/templates/agenda.html:15 +#: app/templates/agenda.html:22 msgid "Get Agenda" msgstr "" -#: app/templates/agenda.html:20 +#: app/templates/agenda.html:39 msgid "Today" msgstr "" -#: app/templates/agenda.html:23 -msgid "Next week" +#: app/templates/agenda.html:42 +msgid "Next 7 days" +msgstr "" + +#: app/templates/agenda.html:45 +msgid "Next 30 days" msgstr "" -#: app/templates/agenda.html:26 -msgid "Next month" +#: app/templates/agenda.html:49 +msgid "Week graph" msgstr "" -#: app/templates/agenda.html:33 +#: app/templates/agenda.html:61 msgid "Start date is greater than end date" msgstr "" -#: app/templates/agenda.html:35 +#: app/templates/agenda.html:63 msgid "No events found..." msgstr "" -#: app/templates/profile.html:50 -msgid "Update name" +#: app/templates/base.html:41 +msgid "Sign Out" msgstr "" -#: app/templates/profile.html:57 app/templates/profile.html:77 -#: app/templates/profile.html:97 app/templates/profile.html:120 -#: app/templates/profile.html:140 -msgid "Save changes" +#: app/templates/base.html:68 app/templates/partials/index/navigation.html:36 +msgid "About Us" msgstr "" -#: app/templates/profile.html:70 -msgid "Update email" +#: app/templates/partials/calendar/event/view_event_details_tab.html:61 +msgid "Choose user" msgstr "" -#: app/templates/profile.html:90 +#: app/templates/partials/user_profile/sidebar_left/features_card/export_calendar.html:13 +msgid "Export" +msgstr "" + +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/description_modal.html:6 msgid "Update description" msgstr "" -#: app/templates/profile.html:111 -msgid "Update photo" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/description_modal.html:14 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/email_modal.html:14 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/name_modal.html:14 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/telegram_modal.html:15 +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/upload_photo_modal.html:15 +msgid "Save changes" msgstr "" -#: app/templates/profile.html:220 -msgid "Upcoming event on (date)" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/email_modal.html:6 +msgid "Update email" msgstr "" -#: app/templates/profile.html:246 -msgid "The Event (event)" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/name_modal.html:6 +msgid "Update name" msgstr "" -#: app/templates/profile.html:249 -msgid "Last updated (time) ago" +#: app/templates/partials/user_profile/sidebar_left/profile_card/modals/upload_photo_modal.html:6 +msgid "Update photo" msgstr "" -#: app/templates/profile.html:285 +#: app/templates/partials/user_profile/sidebar_right/meetups.html:4 msgid "Explore MeetUps near you" msgstr "" -#: app/templates/profile.html:293 +#: app/templates/partials/user_profile/sidebar_right/new_card.html:4 msgid "Your Card" msgstr "" @@ -130,3 +210,24 @@ msgstr "בדיקת תרגום בפייתון" #~ msgid "Agenda" #~ msgstr "" + +#~ msgid "to" +#~ msgstr "" + +#~ msgid "Next week" +#~ msgstr "" + +#~ msgid "Next month" +#~ msgstr "" + +#~ msgid "Upcoming event on (date)" +#~ msgstr "" + +#~ msgid "The Event (event)" +#~ msgstr "" + +#~ msgid "Last updated (time) ago" +#~ msgstr "" + +#~ msgid "Teves" +#~ msgstr "" diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 96af2e0e..75e1e8b5 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -177,7 +177,7 @@ async def dayview( except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) - hebrew_obj = hebrew_date_view.get_hebrew_date_in_words(day.date()) + hebrew_obj = hebrew_date_view.get_hebrew_date_in_words(day.date(), user.language_id) events_n_attrs = get_events_and_attributes( day=day, session=session, diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 7cb6a304..af6d151b 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -1,9 +1,11 @@ from datetime import datetime + +import pytest from pyluach import dates from app.internal.hebrew_date_view import ( get_hebrew_date_in_words, - from_greogian_to_hebrew_date, + from_gregorian_to_hebrew_date, get_month_name_by_num, ) @@ -13,20 +15,26 @@ ADAR_A = datetime.strptime("2019-02-15", "%Y-%m-%d").date() ADAR_B = datetime.strptime("2019-03-08", "%Y-%m-%d").date() +TRANSLATION_DATES = [ + (1, "17 Teves 5781"), + (2, "י״ז טבת תשפ״א"), +] + -def test_get_hebrew_date(): - result = get_hebrew_date_in_words(DAY) - assert result == "י״ז טבת תשפ״א" +@pytest.mark.parametrize("language_id, hebrew_date", TRANSLATION_DATES) +def test_get_hebrew_date(language_id, hebrew_date): + result = get_hebrew_date_in_words(DAY, language_id) + assert result == hebrew_date -def test_from_greogian_to_hebrew_date_and_find_month_name(): - result = from_greogian_to_hebrew_date(ADAR) +def test_from_gregorian_to_hebrew_date_and_find_month_name(): + result = from_gregorian_to_hebrew_date(ADAR) assert result == dates.HebrewDate(5781, 12, 3) assert get_month_name_by_num(result) == 'אדר' def test_if_leap_year(): - result_a = from_greogian_to_hebrew_date(ADAR_A) - result_b = from_greogian_to_hebrew_date(ADAR_B) + result_a = from_gregorian_to_hebrew_date(ADAR_A) + result_b = from_gregorian_to_hebrew_date(ADAR_B) assert get_month_name_by_num(result_a) == "אדר(א')" assert get_month_name_by_num(result_b) == "אדר(ב')" From 22f0bcc37b07d4fba1236ffdaf50692bcf546e44 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Thu, 25 Feb 2021 21:43:20 +0200 Subject: [PATCH 39/50] fix: flake8 --- app/internal/hebrew_date_view.py | 3 --- tests/test_hebrew_date.py | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/internal/hebrew_date_view.py b/app/internal/hebrew_date_view.py index eb1106f3..b748ae6d 100644 --- a/app/internal/hebrew_date_view.py +++ b/app/internal/hebrew_date_view.py @@ -4,7 +4,6 @@ from pyluach import dates, hebrewcal from pyluach.dates import HebrewDate - HEBREW_LANGUAGE_ID = 2 HEB_MONTH_NAMES = { 'Tishrei': _("Tishrei"), @@ -34,11 +33,9 @@ def get_hebrew_date_in_words(calendar_date: date, language_id: int) -> str: Returns: A Hebrew date string. """ - hebrew_date_object = from_gregorian_to_hebrew_date(calendar_date) day = hebrew_date_object.day month = get_month_name_by_num(hebrew_date_object) - month = _("Teves") year = hebrew_date_object.year if language_id == HEBREW_LANGUAGE_ID: day = int_to_gematria(day) diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 052ef91a..9e8c0c05 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -21,7 +21,9 @@ ] -@pytest.mark.parametrize("language_id, hebrew_date, language_code", TRANSLATION_DATES) +@pytest.mark.parametrize( + "language_id, hebrew_date, language_code", TRANSLATION_DATES +) def test_get_hebrew_date(language_id, hebrew_date, language_code): set_ui_language(language_code) result = get_hebrew_date_in_words(DAY, language_id) From 1a1eb3d15cc4f20246e872a9a0866f9129a3dfae Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Thu, 25 Feb 2021 21:48:01 +0200 Subject: [PATCH 40/50] fix: flake8 --- app/routers/dayview.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 6af6aa14..e8d0d596 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -200,7 +200,10 @@ async def dayview( except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) - hebrew_obj = hebrew_date_view.get_hebrew_date_in_words(day.date(), user.language_id) + hebrew_obj = hebrew_date_view.get_hebrew_date_in_words( + day.date(), + user.language_id, + ) events_with_attrs = get_events_and_attributes( day=day, session=session, From 7d6ec9bc561935af40aeee6b295a1214f67d4581 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Thu, 25 Feb 2021 21:59:06 +0200 Subject: [PATCH 41/50] fix: bug fix --- app/routers/dayview.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index e8d0d596..55a78996 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -193,16 +193,17 @@ async def dayview( date: str, view="day", session=Depends(get_db), - user: User = Depends(current_user), + user: CurrentUser = Depends(current_user), ): try: day = datetime.strptime(date, "%Y-%m-%d") except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) + user_from_db = get_user(session, user.user_id) hebrew_obj = hebrew_date_view.get_hebrew_date_in_words( day.date(), - user.language_id, + user_from_db.language_id, ) events_with_attrs = get_events_and_attributes( day=day, From 18a0195641ff0fafacd383d613a7a7e490169d1c Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Thu, 25 Feb 2021 22:02:16 +0200 Subject: [PATCH 42/50] fix: bug fix --- app/routers/dayview.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 55a78996..14957788 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -4,12 +4,12 @@ from fastapi import APIRouter, Depends, HTTPException, Request -from app.database.models import Event, User +from app.database.models import Event from app.dependencies import get_db, templates from app.internal import hebrew_date_view, international_days, zodiac from app.internal.security.dependencies import current_user - -# from app.internal.security.schema import CurrentUser +from app.internal.security.schema import CurrentUser +from app.internal.utils import get_user from app.routers.user import get_all_user_events router = APIRouter() From c022096ffd4db095480700406f85afb1b5db0a1d Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Thu, 25 Feb 2021 22:11:19 +0200 Subject: [PATCH 43/50] fix: bug fix --- tests/test_hebrew_date.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 9e8c0c05..4742e550 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -33,11 +33,11 @@ def test_get_hebrew_date(language_id, hebrew_date, language_code): def test_from_gregorian_to_hebrew_date_and_find_month_name(): result = from_gregorian_to_hebrew_date(ADAR) assert result == dates.HebrewDate(5781, 12, 3) - assert get_month_name_by_num(result) == 'אדר' + assert get_month_name_by_num(result) == "Adar" def test_if_leap_year(): result_a = from_gregorian_to_hebrew_date(ADAR_A) result_b = from_gregorian_to_hebrew_date(ADAR_B) - assert get_month_name_by_num(result_a) == "אדר(א')" - assert get_month_name_by_num(result_b) == "אדר(ב')" + assert get_month_name_by_num(result_a) == "Adar Rishon" + assert get_month_name_by_num(result_b) == "Adar Sheni" From 44f9d61a5ba1cccde87dc43077a18f581f0f6a6a Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Thu, 25 Feb 2021 22:32:39 +0200 Subject: [PATCH 44/50] fix: fix translation files --- app/locales/en/LC_MESSAGES/base.mo | Bin 443 -> 443 bytes app/locales/en/LC_MESSAGES/base.po | 30 ++++++++++++++--------------- app/locales/he/LC_MESSAGES/base.mo | Bin 549 -> 549 bytes app/locales/he/LC_MESSAGES/base.po | 30 ++++++++++++++--------------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/app/locales/en/LC_MESSAGES/base.mo b/app/locales/en/LC_MESSAGES/base.mo index ebc012a66cffeea414c45205cb477b6131a43515..10724f9e4afc7c8ec04d382966cc9b07c580b7d6 100644 GIT binary patch delta 15 WcmdnZyqkH#6c!^ZV}p$|lo\n" "Language: en\n" @@ -22,59 +22,59 @@ msgstr "" msgid "No response from server." msgstr "" -#: app/internal/hebrew_date_view.py:10 +#: app/internal/hebrew_date_view.py:9 msgid "Tishrei" msgstr "" -#: app/internal/hebrew_date_view.py:11 +#: app/internal/hebrew_date_view.py:10 msgid "Cheshvan" msgstr "" -#: app/internal/hebrew_date_view.py:12 +#: app/internal/hebrew_date_view.py:11 msgid "Kislev" msgstr "" -#: app/internal/hebrew_date_view.py:13 app/internal/hebrew_date_view.py:41 +#: app/internal/hebrew_date_view.py:12 msgid "Teves" msgstr "" -#: app/internal/hebrew_date_view.py:14 +#: app/internal/hebrew_date_view.py:13 msgid "Shvat" msgstr "" -#: app/internal/hebrew_date_view.py:15 +#: app/internal/hebrew_date_view.py:14 msgid "Adar" msgstr "" -#: app/internal/hebrew_date_view.py:16 +#: app/internal/hebrew_date_view.py:15 msgid "Adar Rishon" msgstr "" -#: app/internal/hebrew_date_view.py:17 +#: app/internal/hebrew_date_view.py:16 msgid "Adar Sheni" msgstr "" -#: app/internal/hebrew_date_view.py:18 +#: app/internal/hebrew_date_view.py:17 msgid "Nissan" msgstr "" -#: app/internal/hebrew_date_view.py:19 +#: app/internal/hebrew_date_view.py:18 msgid "Iyar" msgstr "" -#: app/internal/hebrew_date_view.py:20 +#: app/internal/hebrew_date_view.py:19 msgid "Sivan" msgstr "" -#: app/internal/hebrew_date_view.py:21 +#: app/internal/hebrew_date_view.py:20 msgid "Tamuz" msgstr "" -#: app/internal/hebrew_date_view.py:22 +#: app/internal/hebrew_date_view.py:21 msgid "Av" msgstr "" -#: app/internal/hebrew_date_view.py:23 +#: app/internal/hebrew_date_view.py:22 msgid "Elul" msgstr "" diff --git a/app/locales/he/LC_MESSAGES/base.mo b/app/locales/he/LC_MESSAGES/base.mo index 6cbf5dc05c0ad83375a5677e14423b2388a510b7..a640ac3e95da19abad210100e2ff6e8c14cd2dcf 100644 GIT binary patch delta 15 WcmZ3=vXo`QB^DzqV}p&?{22i(I0at- delta 15 WcmZ3=vXo`QB^E;~L*tFt{22i(GX-A& diff --git a/app/locales/he/LC_MESSAGES/base.po b/app/locales/he/LC_MESSAGES/base.po index 6c840b30..ebf9b63e 100644 --- a/app/locales/he/LC_MESSAGES/base.po +++ b/app/locales/he/LC_MESSAGES/base.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-02-25 21:13+0200\n" +"POT-Creation-Date: 2021-02-25 22:30+0200\n" "PO-Revision-Date: 2021-01-26 21:31+0200\n" "Last-Translator: FULL NAME \n" "Language: he\n" @@ -22,59 +22,59 @@ msgstr "" msgid "No response from server." msgstr "" -#: app/internal/hebrew_date_view.py:10 +#: app/internal/hebrew_date_view.py:9 msgid "Tishrei" msgstr "" -#: app/internal/hebrew_date_view.py:11 +#: app/internal/hebrew_date_view.py:10 msgid "Cheshvan" msgstr "" -#: app/internal/hebrew_date_view.py:12 +#: app/internal/hebrew_date_view.py:11 msgid "Kislev" msgstr "" -#: app/internal/hebrew_date_view.py:13 app/internal/hebrew_date_view.py:41 +#: app/internal/hebrew_date_view.py:12 msgid "Teves" msgstr "טבת" -#: app/internal/hebrew_date_view.py:14 +#: app/internal/hebrew_date_view.py:13 msgid "Shvat" msgstr "" -#: app/internal/hebrew_date_view.py:15 +#: app/internal/hebrew_date_view.py:14 msgid "Adar" msgstr "" -#: app/internal/hebrew_date_view.py:16 +#: app/internal/hebrew_date_view.py:15 msgid "Adar Rishon" msgstr "" -#: app/internal/hebrew_date_view.py:17 +#: app/internal/hebrew_date_view.py:16 msgid "Adar Sheni" msgstr "" -#: app/internal/hebrew_date_view.py:18 +#: app/internal/hebrew_date_view.py:17 msgid "Nissan" msgstr "" -#: app/internal/hebrew_date_view.py:19 +#: app/internal/hebrew_date_view.py:18 msgid "Iyar" msgstr "" -#: app/internal/hebrew_date_view.py:20 +#: app/internal/hebrew_date_view.py:19 msgid "Sivan" msgstr "" -#: app/internal/hebrew_date_view.py:21 +#: app/internal/hebrew_date_view.py:20 msgid "Tamuz" msgstr "" -#: app/internal/hebrew_date_view.py:22 +#: app/internal/hebrew_date_view.py:21 msgid "Av" msgstr "" -#: app/internal/hebrew_date_view.py:23 +#: app/internal/hebrew_date_view.py:22 msgid "Elul" msgstr "" From a2449d2f6240d58d7d71fa9b197088642f9ed10a Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Mon, 1 Mar 2021 04:30:14 +0200 Subject: [PATCH 45/50] fix: bugfix --- app/locales/en/LC_MESSAGES/base.mo | Bin 443 -> 443 bytes app/locales/en/LC_MESSAGES/base.po | 30 ++++++++++++++--------------- app/locales/he/LC_MESSAGES/base.mo | Bin 549 -> 549 bytes app/locales/he/LC_MESSAGES/base.po | 30 ++++++++++++++--------------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/app/locales/en/LC_MESSAGES/base.mo b/app/locales/en/LC_MESSAGES/base.mo index 10724f9e4afc7c8ec04d382966cc9b07c580b7d6..7b05f93dac1f902c5f2b612d371f7082949a009c 100644 GIT binary patch delta 21 ccmdnZyqkGKAD6MNfuVwdk(HtG#u>_t07pRu^8f$< delta 21 ccmdnZyqkGKAD5A?k*R`_k(IH*#u>_t07r%e`2YX_ diff --git a/app/locales/en/LC_MESSAGES/base.po b/app/locales/en/LC_MESSAGES/base.po index 526104f6..969eddcb 100644 --- a/app/locales/en/LC_MESSAGES/base.po +++ b/app/locales/en/LC_MESSAGES/base.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-02-25 22:30+0200\n" +"POT-Creation-Date: 2021-03-01 02:13+0200\n" "PO-Revision-Date: 2021-01-26 21:31+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -22,59 +22,59 @@ msgstr "" msgid "No response from server." msgstr "" -#: app/internal/hebrew_date_view.py:9 +#: app/internal/hebrew_date_view.py:10 msgid "Tishrei" msgstr "" -#: app/internal/hebrew_date_view.py:10 +#: app/internal/hebrew_date_view.py:11 msgid "Cheshvan" msgstr "" -#: app/internal/hebrew_date_view.py:11 +#: app/internal/hebrew_date_view.py:12 msgid "Kislev" msgstr "" -#: app/internal/hebrew_date_view.py:12 +#: app/internal/hebrew_date_view.py:13 msgid "Teves" msgstr "" -#: app/internal/hebrew_date_view.py:13 +#: app/internal/hebrew_date_view.py:14 msgid "Shvat" msgstr "" -#: app/internal/hebrew_date_view.py:14 +#: app/internal/hebrew_date_view.py:15 msgid "Adar" msgstr "" -#: app/internal/hebrew_date_view.py:15 +#: app/internal/hebrew_date_view.py:16 msgid "Adar Rishon" msgstr "" -#: app/internal/hebrew_date_view.py:16 +#: app/internal/hebrew_date_view.py:17 msgid "Adar Sheni" msgstr "" -#: app/internal/hebrew_date_view.py:17 +#: app/internal/hebrew_date_view.py:18 msgid "Nissan" msgstr "" -#: app/internal/hebrew_date_view.py:18 +#: app/internal/hebrew_date_view.py:19 msgid "Iyar" msgstr "" -#: app/internal/hebrew_date_view.py:19 +#: app/internal/hebrew_date_view.py:20 msgid "Sivan" msgstr "" -#: app/internal/hebrew_date_view.py:20 +#: app/internal/hebrew_date_view.py:21 msgid "Tamuz" msgstr "" -#: app/internal/hebrew_date_view.py:21 +#: app/internal/hebrew_date_view.py:22 msgid "Av" msgstr "" -#: app/internal/hebrew_date_view.py:22 +#: app/internal/hebrew_date_view.py:23 msgid "Elul" msgstr "" diff --git a/app/locales/he/LC_MESSAGES/base.mo b/app/locales/he/LC_MESSAGES/base.mo index a640ac3e95da19abad210100e2ff6e8c14cd2dcf..528f1583ef073680a3b37a74e0142029b98acf2f 100644 GIT binary patch delta 21 ccmZ3=vXo`Q87^a8149J^BP&DWjo17c0Z8cvaR2}S delta 21 ccmZ3=vXo`Q87?DTBU1$\n" "Language: he\n" @@ -22,59 +22,59 @@ msgstr "" msgid "No response from server." msgstr "" -#: app/internal/hebrew_date_view.py:9 +#: app/internal/hebrew_date_view.py:10 msgid "Tishrei" msgstr "" -#: app/internal/hebrew_date_view.py:10 +#: app/internal/hebrew_date_view.py:11 msgid "Cheshvan" msgstr "" -#: app/internal/hebrew_date_view.py:11 +#: app/internal/hebrew_date_view.py:12 msgid "Kislev" msgstr "" -#: app/internal/hebrew_date_view.py:12 +#: app/internal/hebrew_date_view.py:13 msgid "Teves" msgstr "טבת" -#: app/internal/hebrew_date_view.py:13 +#: app/internal/hebrew_date_view.py:14 msgid "Shvat" msgstr "" -#: app/internal/hebrew_date_view.py:14 +#: app/internal/hebrew_date_view.py:15 msgid "Adar" msgstr "" -#: app/internal/hebrew_date_view.py:15 +#: app/internal/hebrew_date_view.py:16 msgid "Adar Rishon" msgstr "" -#: app/internal/hebrew_date_view.py:16 +#: app/internal/hebrew_date_view.py:17 msgid "Adar Sheni" msgstr "" -#: app/internal/hebrew_date_view.py:17 +#: app/internal/hebrew_date_view.py:18 msgid "Nissan" msgstr "" -#: app/internal/hebrew_date_view.py:18 +#: app/internal/hebrew_date_view.py:19 msgid "Iyar" msgstr "" -#: app/internal/hebrew_date_view.py:19 +#: app/internal/hebrew_date_view.py:20 msgid "Sivan" msgstr "" -#: app/internal/hebrew_date_view.py:20 +#: app/internal/hebrew_date_view.py:21 msgid "Tamuz" msgstr "" -#: app/internal/hebrew_date_view.py:21 +#: app/internal/hebrew_date_view.py:22 msgid "Av" msgstr "" -#: app/internal/hebrew_date_view.py:22 +#: app/internal/hebrew_date_view.py:23 msgid "Elul" msgstr "" From 11fc0d6e8072524d615bbd90545587ada3af7d57 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Mon, 1 Mar 2021 13:45:19 +0200 Subject: [PATCH 46/50] fix: bugfix --- app/routers/dayview.py | 8 ++++---- app/static/dayview.css | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 266251b1..4aaa1e76 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -8,7 +8,7 @@ from app.dependencies import get_db, templates from app.internal import hebrew_date_view, international_days, zodiac from app.internal.security.dependencies import current_user -from app.routers.user import get_all_user_events +from app.routers.user import get_all_user_events, get_user router = APIRouter() @@ -217,9 +217,9 @@ async def dayview( inter_day = international_days.get_international_day_per_day(session, day) tasks = ( session.query(Task) - .filter(Task.owner_id == user.user_id) - .filter(Task.date == day.date()) - .order_by(Task.time) + .filter(Task.owner_id == user.user_id) + .filter(Task.date == day.date()) + .order_by(Task.time) ) month = day.strftime("%B").upper() return templates.TemplateResponse( diff --git a/app/static/dayview.css b/app/static/dayview.css index f2515bf2..c78acf46 100644 --- a/app/static/dayview.css +++ b/app/static/dayview.css @@ -4,12 +4,11 @@ body { flex-direction: column; overflow: hidden; } -#day-view { +.day-view-class { display: flex; flex: 1; flex-direction: column; position: relative; - overflow-y: hidden; } #top-tab { @@ -24,6 +23,8 @@ body { margin-bottom: var(--space_xs); line-height: 1; overflow-y: scroll; + -ms-overflow-style: none; + scrollbar-width: none; } .schedule::-webkit-scrollbar { From 377e82d41ce5d5030ca8a57d4aa77c7730c06d23 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Mon, 1 Mar 2021 13:45:23 +0200 Subject: [PATCH 47/50] fix: bugfix --- tests/test_hebrew_date.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/test_hebrew_date.py b/tests/test_hebrew_date.py index 4742e550..6ed6e776 100644 --- a/tests/test_hebrew_date.py +++ b/tests/test_hebrew_date.py @@ -4,9 +4,9 @@ from pyluach import dates from app.internal.hebrew_date_view import ( - get_hebrew_date_in_words, from_gregorian_to_hebrew_date, - get_month_name_by_num, + get_hebrew_date_in_words, + get_month_name_by_num ) from app.internal.languages import set_ui_language @@ -16,18 +16,18 @@ ADAR_B = datetime.strptime("2019-03-08", "%Y-%m-%d").date() TRANSLATION_DATES = [ - (1, "17 Teves 5781", "en"), - (2, "י״ז טבת תשפ״א", "he"), + (1, "en", "17 Teves 5781"), + (2, "he", "י״ז טבת תשפ״א"), ] @pytest.mark.parametrize( - "language_id, hebrew_date, language_code", TRANSLATION_DATES + "language_id, language_code, expected_translation", TRANSLATION_DATES ) -def test_get_hebrew_date(language_id, hebrew_date, language_code): +def test_get_hebrew_date(language_id, language_code, expected_translation): set_ui_language(language_code) result = get_hebrew_date_in_words(DAY, language_id) - assert result == hebrew_date + assert result == expected_translation def test_from_gregorian_to_hebrew_date_and_find_month_name(): From 9b0c629e713be9fc9082c0c7a71989fe01f176d8 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Mon, 1 Mar 2021 13:49:24 +0200 Subject: [PATCH 48/50] fix: styling --- app/routers/dayview.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 4aaa1e76..2603ee28 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -216,10 +216,8 @@ async def dayview( current_time_with_attrs = CurrentTimeAttributes(date=day) inter_day = international_days.get_international_day_per_day(session, day) tasks = ( - session.query(Task) - .filter(Task.owner_id == user.user_id) - .filter(Task.date == day.date()) - .order_by(Task.time) + session.query(Task).filter(Task.owner_id == user.user_id).filter( + Task.date == day.date()).order_by(Task.time) ) month = day.strftime("%B").upper() return templates.TemplateResponse( From 0a9a4fb518ab5041d38ab9650a8b17a417e05012 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 2 Mar 2021 17:00:22 +0200 Subject: [PATCH 49/50] fix: bugfix --- app/routers/dayview.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 2603ee28..0ae032d6 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -198,7 +198,7 @@ async def dayview( except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) - user_from_db = get_user(session, user.user_id) + user_from_db = get_user(user.user_id, session) hebrew_obj = hebrew_date_view.get_hebrew_date_in_words( day.date(), user_from_db.language_id, From c48a27033ce8aa5d18119ac56373d8a8ad747188 Mon Sep 17 00:00:00 2001 From: Elor Shoshan Date: Tue, 2 Mar 2021 17:38:46 +0200 Subject: [PATCH 50/50] fix: bugfix --- app/routers/dayview.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/routers/dayview.py b/app/routers/dayview.py index 0ae032d6..626600ec 100644 --- a/app/routers/dayview.py +++ b/app/routers/dayview.py @@ -8,7 +8,8 @@ from app.dependencies import get_db, templates from app.internal import hebrew_date_view, international_days, zodiac from app.internal.security.dependencies import current_user -from app.routers.user import get_all_user_events, get_user +from app.internal.utils import get_user +from app.routers.user import get_all_user_events router = APIRouter() @@ -198,7 +199,7 @@ async def dayview( except ValueError as err: raise HTTPException(status_code=404, detail=f"{err}") zodiac_obj = zodiac.get_zodiac_of_day(session, day) - user_from_db = get_user(user.user_id, session) + user_from_db = get_user(session, user.user_id) hebrew_obj = hebrew_date_view.get_hebrew_date_in_words( day.date(), user_from_db.language_id,