Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Table: project_status_history #67

Open
10 of 15 tasks
Tracked by #181
ericvennemeyer opened this issue Sep 9, 2022 · 1 comment
Open
10 of 15 tasks
Tracked by #181

Create Table: project_status_history #67

ericvennemeyer opened this issue Sep 9, 2022 · 1 comment
Labels
complexity: missing dependency Issue has dependencies feature: table creation p-feature: projects project and projects role: back end s: hackforla.org stakeholder: hackforla.org website s: VRMS stakeholder: VRMS size: 2pt Can be done in 7-12 hours

Comments

@ericvennemeyer
Copy link
Member

ericvennemeyer commented Sep 9, 2022

Dependency

Overview

We need to create the project_status_history table so that we can update a shared data store across hackforla.org, vrms, civictechjobs, and tables (onboarding) project.

Details

A table and a model are the same thing

Action Items

  • identify and document table description (see spreadsheet under Resources)
    • if not, reach out to PD leads
  • compare and check off the data fields (below) against the ERD. Note any fields in the ERD that's missing from the list. (see Resources)
  • compare the check off associated tables (below) against the ERD. Note any associated tables in the ERD that's missing from the list (see Resources)
  • create a single model in Django (defining schema)
  • write a test for the relationships this model will have with other models (e.g., creating a user and assigning them a set of permissions on a project).
  • write an API end point
  • write API unit tests
  • document the endpoint

Resources/Instructions

Description

History of project status changes

Data Fields

  1. Copied from spreadsheet and checked off according to ERD. (unchecked items indicate a mismatch between ERD and spreadsheet, which requires a review)

    • (PK) id - int - Record Id
    • (PK,FK) project_id - int - Record Id
    • (PK,FK) status_id - int - Record Id
    • updated - timestamp
  2. In ERD only (having items here indicates a mismatch, which requires a review)

    • None

Associated Tables

  1. Copied from spreadsheet and checked off according to ERD. (unchecked items indicate a mismatch between ERD and spreadsheet, which requires a review)

    • project (many-to-one)
    • project_status (many-to-one)
  2. In ERD only (having items here indicates a mismatch, which requires a review)

    • None
@fyliu
Copy link
Member

fyliu commented Aug 11, 2023

I'm thinking this is actually a join table that gets updated when the project status changes. When a project's status changes, it should trigger a function that will update this table to put an end_datetime on the old status and create a new row for the new status with start_datetime.

This way, we have a timeline of project statuses.

I'm not sure whether django ORM has a way to set a trigger like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
complexity: missing dependency Issue has dependencies feature: table creation p-feature: projects project and projects role: back end s: hackforla.org stakeholder: hackforla.org website s: VRMS stakeholder: VRMS size: 2pt Can be done in 7-12 hours
Projects
Status: 🧊Ice Box
Development

When branches are created from issues, their pull requests are automatically linked.

3 participants