Skip to content

Commit

Permalink
Merge branch 'release-0.2.0' into feat/daniel-cell-links-1533
Browse files Browse the repository at this point in the history
  • Loading branch information
prv-proton authored Jan 3, 2025
2 parents 9ed3d9c + 6e12d3b commit a96a64f
Show file tree
Hide file tree
Showing 31 changed files with 699 additions and 2,591 deletions.
586 changes: 586 additions & 0 deletions backend/lcfs/db/migrations/versions/2024-12-24-07-40_d9cdd9fca0ce.py

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
"""add update_count_transfers_in_progress db function and update existing counts
Revision ID: 9329e38396e1
Revises: d9cdd9fca0ce
Create Date: 2024-12-30 13:54:09.361644
"""

import sqlalchemy as sa
from alembic import op

# revision identifiers, used by Alembic.
revision = "9329e38396e1"
down_revision = "d9cdd9fca0ce"
branch_labels = None
depends_on = None


def upgrade() -> None:
# Create or replace the trigger function without considering Draft transfers
op.execute(
"""
CREATE OR REPLACE FUNCTION update_count_transfers_in_progress()
RETURNS TRIGGER AS $$
BEGIN
-- Update count_transfers_in_progress for from_organization_id and to_organization_id
UPDATE organization o
SET count_transfers_in_progress = (
SELECT COUNT(DISTINCT t.transfer_id)
FROM transfer t
WHERE
t.current_status_id IN (3, 4)
AND (t.from_organization_id = o.organization_id OR t.to_organization_id = o.organization_id)
)
WHERE o.organization_id = COALESCE(NEW.from_organization_id, OLD.from_organization_id)
OR o.organization_id = COALESCE(NEW.to_organization_id, OLD.to_organization_id);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
"""
)

# Create the trigger
op.execute(
"""
CREATE TRIGGER update_count_transfers_in_progress_trigger
AFTER INSERT OR UPDATE OR DELETE ON transfer
FOR EACH ROW
EXECUTE FUNCTION update_count_transfers_in_progress();
"""
)

# Update existing counts for all organizations by aggregating both sent and received transfers without double-counting
op.execute(
"""
UPDATE organization o
SET count_transfers_in_progress = COALESCE(sub.total_transfer_count, 0)
FROM (
SELECT
org.organization_id,
COUNT(DISTINCT t.transfer_id) AS total_transfer_count
FROM
organization org
LEFT JOIN transfer t ON org.organization_id = t.from_organization_id
OR org.organization_id = t.to_organization_id
WHERE
t.current_status_id IN (3, 4)
GROUP BY
org.organization_id
) sub
WHERE
o.organization_id = sub.organization_id;
"""
)


def downgrade() -> None:
# Drop the trigger
op.execute(
"DROP TRIGGER IF EXISTS update_count_transfers_in_progress_trigger ON transfer;"
)
# Drop the trigger function
op.execute("DROP FUNCTION IF EXISTS update_count_transfers_in_progress();")
Empty file.
58 changes: 0 additions & 58 deletions backend/lcfs/db/seeders/common/admin_adjustment_status_seeder.py

This file was deleted.

56 changes: 0 additions & 56 deletions backend/lcfs/db/seeders/common/allocation_agreement_seeder.py

This file was deleted.

190 changes: 0 additions & 190 deletions backend/lcfs/db/seeders/common/compliance_period_seeder.py

This file was deleted.

Loading

0 comments on commit a96a64f

Please sign in to comment.