diff options
author | emkael <emkael@tlen.pl> | 2016-02-24 23:38:27 +0100 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2016-02-24 23:41:25 +0100 |
commit | 2173f7d7613b5158f4bb2f71a02df353c058c1ee (patch) | |
tree | eac23e40bc497706b862b5d2ca01920c4b37ed92 /rcal | |
parent | 6e72eace43adc48f0b311c26d66d13315e25fe93 (diff) |
* moving PHP app files to app/php and Python app files to app/python
Diffstat (limited to 'rcal')
-rw-r--r-- | rcal/__init__.py | 0 | ||||
-rw-r--r-- | rcal/db.py | 34 | ||||
-rw-r--r-- | rcal/model.py | 122 |
3 files changed, 0 insertions, 156 deletions
diff --git a/rcal/__init__.py b/rcal/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/rcal/__init__.py +++ /dev/null diff --git a/rcal/db.py b/rcal/db.py deleted file mode 100644 index 12fcd88..0000000 --- a/rcal/db.py +++ /dev/null @@ -1,34 +0,0 @@ -import json -from os import path - -import sqlalchemy.engine.url as url -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker - - -class Session(object): - - engine = None - - def __init__(self): - config = json.load( - open(path.join(path.dirname( - path.realpath(__file__)), '..', 'conf', 'db.json'))) - db_str = url.URL( - drivername=config['type'], - host=config['host'], - username=config['user'], - password=config['pass'], - database=config['name'], - query={'charset': config['cset']} - ) - self.engine = create_engine(db_str, encoding=config['cset']) - - def get_maker(self): - return sessionmaker(bind=self.engine) - - @staticmethod - def create(): - session = Session() - maker = session.get_maker() - return maker() diff --git a/rcal/model.py b/rcal/model.py deleted file mode 100644 index faed188..0000000 --- a/rcal/model.py +++ /dev/null @@ -1,122 +0,0 @@ -# pylint: disable=too-few-public-methods, invalid-name -from sqlalchemy import Column, ForeignKey -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import relationship -from sqlalchemy.types import (TIMESTAMP, Boolean, DateTime, Integer, String, - TypeDecorator) - -from dateutil.tz import tzutc - - -class UTCDateTime(TypeDecorator): - impl = DateTime - - def process_bind_param(self, value, engine): - if value is not None: - return value.astimezone(tzutc()) - - def process_result_value(self, value, engine): - if value is not None: - return value.replace(tzinfo=tzutc()) - - -BASE = declarative_base() - - -class Calendar(BASE): - __tablename__ = 'calendars' - - uid = Column(String(255), primary_key=True) - url = Column(String(255)) - name = Column(String(255), index=True) - website = Column(String(255)) - visible = Column(Boolean, index=True) - last_updated = Column(TIMESTAMP) - - _category = Column( - Integer, - ForeignKey( - 'categories.id', - onupdate='CASCADE', - ondelete='SET NULL')) - category = relationship( - 'Category', - back_populates='calendars', - order_by='Calendar.name') - - entries = relationship( - 'Entry', - back_populates='calendar', - cascade="all", - passive_deletes=True, - order_by='Entry.begin_date') - - @staticmethod - def fetch(uid, session, name=None, url=None): - calendar = session.query(Calendar).filter(Calendar.uid == uid).first() - if not calendar: - calendar = Calendar() - calendar.uid = uid - session.add(calendar) - if name: - calendar.name = name - if url: - calendar.url = url - return calendar - - -class Entry(BASE): - __tablename__ = 'entries' - - id = Column(Integer, primary_key=True) - uid = Column(String(255), index=True, unique=True) - begin_date = Column(UTCDateTime, index=True) - end_date = Column(UTCDateTime) - all_day = Column(Boolean) - name = Column(String(255)) - location = Column(String(255)) - - _calendar = Column( - String(255), - ForeignKey( - 'calendars.uid', - onupdate='CASCADE', - ondelete='CASCADE')) - calendar = relationship( - 'Calendar', - back_populates='entries', - order_by='Entry.begin_date') - - @staticmethod - def fetch(uid, session): - entry = session.query(Entry).filter(Entry.uid == uid).first() - if not entry: - entry = Entry() - session.add(entry) - return entry - - -class Category(BASE): - __tablename__ = 'categories' - - id = Column(Integer, primary_key=True) - name = Column(String(255), index=True) - - calendars = relationship( - 'Calendar', - back_populates='category', - cascade="all", - passive_deletes=True, - order_by='Calendar.name') - - @staticmethod - def fetch(name, session): - category = session.query(Category).filter( - Category.name == name).first() - if not category: - category = Category() - category.name = name - session.add(category) - return category - -__all__ = ('Calendar', 'Entry', 'Category') |