From 0f4fedb82ebb66217996b3a9ff50a4e52ec1484e Mon Sep 17 00:00:00 2001 From: Vivek Anand Date: Jun 28 2016 14:46:45 +0000 Subject: [PATCH 1/5] Add closed_at column to issues table --- diff --git a/alembic/versions/ee8d5b76e817_add_closed_at_in_issues.py b/alembic/versions/ee8d5b76e817_add_closed_at_in_issues.py new file mode 100644 index 0000000..28eafdb --- /dev/null +++ b/alembic/versions/ee8d5b76e817_add_closed_at_in_issues.py @@ -0,0 +1,26 @@ +"""add_closed_at_in_issues + +Revision ID: ee8d5b76e817 +Revises: 317a285e04a8 +Create Date: 2016-06-28 18:04:05.539319 + +""" + +# revision identifiers, used by Alembic. +revision = 'ee8d5b76e817' +down_revision = '317a285e04a8' + +from alembic import op +import sqlalchemy as sa + +def upgrade(): + ''' Add closed_at column in issues table ''' + op.add_column( + 'issues', + sa.Column('closed_at', sa.DateTime, nullable=True) + ) + + +def downgrade(): + ''' Remove the closed_at column in issues table ''' + op.drop_column('issues', 'closed_at') diff --git a/pagure/lib/model.py b/pagure/lib/model.py index a87f035..93f9379 100644 --- a/pagure/lib/model.py +++ b/pagure/lib/model.py @@ -565,6 +565,8 @@ class Issue(BASE): date_created = sa.Column(sa.DateTime, nullable=False, default=datetime.datetime.utcnow) + closed_at = sa.Column(sa.DateTime, nullable=True) + project = relation( 'Project', foreign_keys=[project_id], remote_side=[Project.id], backref=backref( @@ -632,6 +634,8 @@ class Issue(BASE): 'content': self.content, 'status': self.status, 'date_created': self.date_created.strftime('%s'), + 'closed_at': self.closed_at.strftime( + '%s') if self.closed_at else None, 'user': self.user.to_json(public=public), 'private': self.private, 'tags': self.tags_text, From c25f97fc3b476244d237a481006fad44630f762c Mon Sep 17 00:00:00 2001 From: Vivek Anand Date: Jun 28 2016 14:46:46 +0000 Subject: [PATCH 2/5] Show when the issue was closed, if not open --- diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 728e00a..08d9781 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -1231,6 +1231,8 @@ def edit_issue(session, issue, ticketfolder, user, edit.append('content') if status and status != issue.status: issue.status = status + if status.lower() != 'open': + issue.closed_at = datetime.datetime.utcnow() edit.append('status') if priority: try: diff --git a/pagure/templates/issues.html b/pagure/templates/issues.html index b1c4330..c963f50 100644 --- a/pagure/templates/issues.html +++ b/pagure/templates/issues.html @@ -86,6 +86,9 @@ Issue Opened + {% if status and status|lower != 'open' %} + Closed + {% endif %} Priority ({{ issue.date_created | humanize}} + {% if status|lower != 'open' %} + + {% if issue.closed_at != None %} + {{ + issue.closed_at | humanize}} + {% endif %} + + {% endif %} Date: Jun 28 2016 17:46:19 +0000 Subject: [PATCH 4/5] remove assignee when showing the issues closed --- diff --git a/pagure/templates/issues.html b/pagure/templates/issues.html index c963f50..77095e9 100644 --- a/pagure/templates/issues.html +++ b/pagure/templates/issues.html @@ -99,11 +99,13 @@ repo=repo.name, tags=tags, assignee=assignee, priority=priority, status=status) }}">reset) + {% if not status or status|lower == 'open' %} Assignee (reset) + {% endif %} @@ -143,7 +145,7 @@ {{ issue.date_created | humanize}} - {% if status|lower != 'open' %} + {% if status and status|lower != 'open' %} {% if issue.closed_at != None %} {{ @@ -166,6 +168,7 @@ {% endif %} + {% if not status or status|lower == 'open' %} {% if issue.assignee %}