Skip to content

Commit

Permalink
Merge pull request #37 from PerfectFit-project/290-general-activity
Browse files Browse the repository at this point in the history
290 general activity
  • Loading branch information
wbaccinelli authored Nov 29, 2022
2 parents 3896c9a + 8fe5637 commit e2dbadb
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 8 deletions.
37 changes: 37 additions & 0 deletions dbschema/migrations/versions/258f980de9f2_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""empty message
Revision ID: 258f980de9f2
Revises: e563082c2ef6
Create Date: 2022-11-16 13:35:36.510658
"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '258f980de9f2'
down_revision = 'e563082c2ef6'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('intervention_activities_performed',
sa.Column('intervention_activities_performed_id', sa.Integer(), nullable=False),
sa.Column('users_nicedayuid', sa.Integer(), nullable=True),
sa.Column('intervention_activity_id', sa.Integer(), nullable=True),
sa.Column('completed_datetime', sa.DateTime(timezone=True), nullable=True),
sa.Column('user_input', sa.String(), nullable=True),
sa.ForeignKeyConstraint(['intervention_activity_id'], ['intervention_activity.intervention_activity_id'], ),
sa.ForeignKeyConstraint(['users_nicedayuid'], ['users.nicedayuid'], ),
sa.PrimaryKeyConstraint('intervention_activities_performed_id')
)
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('intervention_activities_performed')
# ### end Alembic commands ###
23 changes: 17 additions & 6 deletions dbschema/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
from datetime import datetime
from dateutil import tz
from sqlalchemy import (Column, Date, ForeignKey, Integer,
String, Boolean, TIMESTAMP, Time, DateTime)
String, Boolean, TIMESTAMP, DateTime, func)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship

Expand All @@ -23,6 +21,7 @@ class Users(Base):
user_intervention_state = relationship("UserInterventionState", back_populates="user")
user_preferences = relationship("UserPreferences", back_populates="user")
first_aid_kit = relationship("FirstAidKit", back_populates="user")
intervention_activities_performed = relationship("InterventionActivitiesPerformed", back_populates="user")


class DialogAnswers(Base):
Expand All @@ -31,7 +30,7 @@ class DialogAnswers(Base):
users_nicedayuid = Column(Integer, ForeignKey('users.nicedayuid'))
answer = Column(String)
question_id = Column(Integer, ForeignKey('dialog_questions.question_id'))
datetime = Column(TIMESTAMP(timezone=True), default = datetime.now().astimezone(tz.gettz("Europe/Amsterdam")))
datetime = Column(TIMESTAMP(timezone=True), default=func.now())

# Refer relationship
dialog_questions = relationship('DialogQuestions')
Expand All @@ -54,7 +53,7 @@ class FirstAidKit(Base):
user_activity_description = Column(String)
activity_rating = Column(Integer)

datetime = Column(TIMESTAMP(timezone=True), default = datetime.now().astimezone(tz.gettz("Europe/Amsterdam")))
datetime = Column(TIMESTAMP(timezone=True), default=func.now())

# Refer to relationships
user = relationship("Users", back_populates="first_aid_kit")
Expand All @@ -70,6 +69,18 @@ class InterventionActivity(Base):
user_input_required = Column(Boolean)


class InterventionActivitiesPerformed(Base):
__tablename__ = 'intervention_activities_performed'
intervention_activities_performed_id = Column(Integer, primary_key=True)
users_nicedayuid = Column(Integer, ForeignKey('users.nicedayuid'))
intervention_activity_id = Column(Integer, ForeignKey('intervention_activity.intervention_activity_id'))
completed_datetime = Column(DateTime(timezone=True),
default=func.now())
user_input = Column(String)

user = relationship("Users", back_populates="intervention_activities_performed")
intervention_activity = relationship("InterventionActivity")

class InterventionPhases(Base):
__tablename__ = 'intervention_phases'
phase_id = Column(Integer, primary_key=True, autoincrement=True)
Expand All @@ -90,7 +101,7 @@ class UserInterventionState(Base):
intervention_phase_id = Column(Integer, ForeignKey('intervention_phases.phase_id'))
intervention_component_id = Column(Integer, ForeignKey('intervention_components.intervention_component_id'))
completed = Column(Boolean)
last_time = Column(TIMESTAMP(timezone=True), default = datetime.now().astimezone(tz.gettz("Europe/Amsterdam")))
last_time = Column(TIMESTAMP(timezone=True), default=func.now())
last_part = Column(Integer)
next_planned_date = Column(DateTime(timezone=True), nullable=True)
task_uuid = Column(String(36), nullable=True)
Expand Down
6 changes: 4 additions & 2 deletions helper/populate_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

from dbschema.models import (Users, UserInterventionState, DialogQuestions, DialogAnswers,
FirstAidKit, InterventionActivity, InterventionComponents, InterventionPhases,
UserPreferences)
UserPreferences, InterventionActivitiesPerformed)
from helper.helper_functions import get_db_session
from helper.definitions import (Phases, PreparationInterventionComponents, PreparationInterventionComponentsTriggers,
ExecutionInterventionComponents, ExecutionInterventionComponentsTriggers)
Expand Down Expand Up @@ -168,7 +168,9 @@ def create_test_data(user_id: int):
preferred_time=(datetime.now().astimezone(tz_nl)+timedelta(minutes=6))),
UserPreferences(users_nicedayuid=user_id, intervention_component_id=10,
recursive=True, week_days='1,2,3,4,5,6,7',
preferred_time=(datetime.now().astimezone(tz_nl)+timedelta(minutes=7)))
preferred_time=(datetime.now().astimezone(tz_nl)+timedelta(minutes=7))),

InterventionActivitiesPerformed(users_nicedayuid=user_id, intervention_activity_id=1)
]

return data
Expand Down

0 comments on commit e2dbadb

Please sign in to comment.