-
-
Notifications
You must be signed in to change notification settings - Fork 230
UI/UX issue and issue details page #2398
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
Open
Rajgupta36
wants to merge
34
commits into
OWASP:feature/mentorship-portal
Choose a base branch
from
Rajgupta36:feature/UI-UX-issuepage
base: feature/mentorship-portal
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 20 commits
Commits
Show all changes
34 commits
Select commit
Hold shift + click to select a range
73aed2d
feat: merged filter-sync-issue branch as squash
Rajgupta36 2b03b65
feat: merged contributor-interested branch and resolved conflicts
Rajgupta36 a4e9fce
fix the migration
Rajgupta36 e69ba46
added view all issues page
Rajgupta36 52ab40a
added queries and pages
Rajgupta36 3c6a06b
fix error handling
Rajgupta36 553fecb
added pr and issue linking command
Rajgupta36 2e8aaed
update ui added pull requests card
Rajgupta36 5cd30e2
update code
Rajgupta36 ce1c571
bug fixes
Rajgupta36 857041c
implemented suggestions
Rajgupta36 77452c2
fix bug
Rajgupta36 2838aa0
fix backend test case
Rajgupta36 ca49e13
added label on the module frontend
Rajgupta36 b358fc2
update suggestion added pagination
Rajgupta36 ede2bc7
fix backend test case
Rajgupta36 fb70d24
update mock data
Rajgupta36 6e070a9
update code and added queries
Rajgupta36 f43cad7
update formatting
Rajgupta36 0851ebf
revert changes and update test cases
Rajgupta36 9400c37
update component better error handling
Rajgupta36 d7de361
remove n+1 query
Rajgupta36 7875028
remove unused try/catch block
Rajgupta36 86be65d
add set deadline mutation and component
Rajgupta36 42e41dd
update suggestion
Rajgupta36 77fa3bb
update fields
Rajgupta36 94af2ca
fix type
Rajgupta36 fd72300
fix type
Rajgupta36 b322dc2
added mobile view and resolves comments
Rajgupta36 fde2800
fix test cases
Rajgupta36 10da824
fix date bug
Rajgupta36 3584878
update code
Rajgupta36 d327b38
logic seperation
Rajgupta36 7165506
trigger on close button
Rajgupta36 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
"""GitHub app Comment model admin.""" | ||
|
||
from django.contrib import admin | ||
|
||
from apps.github.models import Comment | ||
|
||
|
||
class CommentAdmin(admin.ModelAdmin): | ||
"""Admin for Comment model.""" | ||
|
||
list_display = ( | ||
"body", | ||
"author", | ||
"nest_created_at", | ||
"nest_updated_at", | ||
) | ||
list_filter = ("nest_created_at", "nest_updated_at") | ||
search_fields = ("body", "author__login") | ||
|
||
|
||
admin.site.register(Comment, CommentAdmin) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 60 additions & 0 deletions
60
backend/apps/github/management/commands/github_update_pull_requests.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
"""Link pull requests to issues via closing keywords in PR body (e.g., 'closes #123').""" | ||
|
||
import logging | ||
import re | ||
|
||
from django.core.management.base import BaseCommand | ||
|
||
from apps.github.models.issue import Issue | ||
from apps.github.models.pull_request import PullRequest | ||
|
||
logger: logging.Logger = logging.getLogger(__name__) | ||
|
||
|
||
class Command(BaseCommand): | ||
help = "Link pull requests to issues via closing keywords in PR body (e.g., 'closes #123')." | ||
|
||
# regex pattern to find the linked issue | ||
pattern = re.compile( | ||
r"\b(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\b\s+" | ||
r"#(\d+)", | ||
re.IGNORECASE, | ||
) | ||
|
||
def handle(self, *args, **options): | ||
linked = 0 | ||
updated_prs = [] | ||
|
||
logger.info("Linking PRs to issues using closing keywords") | ||
|
||
queryset = PullRequest.objects.select_related("repository").all() | ||
|
||
for pr in queryset: | ||
if not pr.repository: | ||
logger.info("Skipping PR #%s: no repository", pr.number) | ||
continue | ||
|
||
body = pr.body or "" | ||
matches = self.pattern.findall(body) | ||
if not matches: | ||
logger.info("No closing keyword pattern found for PR #%s", pr.number) | ||
continue | ||
issue_numbers = {int(n) for n in matches} | ||
|
||
issues = list(Issue.objects.filter(repository=pr.repository, number__in=issue_numbers)) | ||
|
||
existing_ids = set(pr.related_issues.values_list("id", flat=True)) | ||
new_ids = {i.id for i in issues} - existing_ids | ||
if new_ids: | ||
pr.related_issues.add(*new_ids) | ||
linked += len(new_ids) | ||
updated_prs.append(pr) | ||
self.stdout.write( | ||
f"Linked PR #{pr.number} ({pr.repository.name}) -> Issues " | ||
+ ", ".join(f"#{i.number}" for i in issues if i.id in new_ids) | ||
) | ||
|
||
if updated_prs: | ||
PullRequest.bulk_save(updated_prs) | ||
|
||
self.stdout.write(f"Linked: {linked}") |
74 changes: 74 additions & 0 deletions
74
backend/apps/github/migrations/0037_issue_level_comment.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
# Generated by Django 5.2.5 on 2025-09-30 10:23 | ||
|
||
import django.db.models.deletion | ||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("contenttypes", "0002_remove_content_type_name"), | ||
("github", "0036_user_has_public_member_page_alter_organization_name_and_more"), | ||
("mentorship", "0004_module_key_program_key_and_more"), | ||
] | ||
|
||
operations = [ | ||
migrations.AddField( | ||
model_name="issue", | ||
name="level", | ||
field=models.ForeignKey( | ||
blank=True, | ||
help_text="The difficulty level of this issue.", | ||
null=True, | ||
on_delete=django.db.models.deletion.SET_NULL, | ||
related_name="issues", | ||
to="mentorship.tasklevel", | ||
), | ||
), | ||
migrations.CreateModel( | ||
name="Comment", | ||
fields=[ | ||
( | ||
"id", | ||
models.BigAutoField( | ||
auto_created=True, primary_key=True, serialize=False, verbose_name="ID" | ||
), | ||
), | ||
("nest_created_at", models.DateTimeField(auto_now_add=True)), | ||
("nest_updated_at", models.DateTimeField(auto_now=True)), | ||
("github_id", models.BigIntegerField(unique=True, verbose_name="Github ID")), | ||
( | ||
"created_at", | ||
models.DateTimeField(blank=True, null=True, verbose_name="Created at"), | ||
), | ||
( | ||
"updated_at", | ||
models.DateTimeField( | ||
blank=True, db_index=True, null=True, verbose_name="Updated at" | ||
), | ||
), | ||
("body", models.TextField(verbose_name="Body")), | ||
("object_id", models.PositiveIntegerField()), | ||
( | ||
"author", | ||
models.ForeignKey( | ||
null=True, | ||
on_delete=django.db.models.deletion.SET_NULL, | ||
related_name="comments", | ||
to="github.user", | ||
), | ||
), | ||
( | ||
"content_type", | ||
models.ForeignKey( | ||
on_delete=django.db.models.deletion.CASCADE, to="contenttypes.contenttype" | ||
), | ||
), | ||
], | ||
options={ | ||
"verbose_name": "Comment", | ||
"verbose_name_plural": "Comments", | ||
"db_table": "github_comments", | ||
"ordering": ("-nest_created_at",), | ||
}, | ||
), | ||
] |
19 changes: 19 additions & 0 deletions
19
backend/apps/github/migrations/0038_pullrequest_related_issues.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Generated by Django 5.2.5 on 2025-10-06 12:00 | ||
|
||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("github", "0037_issue_level_comment"), | ||
] | ||
|
||
operations = [ | ||
migrations.AddField( | ||
model_name="pullrequest", | ||
name="related_issues", | ||
field=models.ManyToManyField( | ||
blank=True, related_name="pull_requests", to="github.issue", verbose_name="Issues" | ||
), | ||
), | ||
] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
"""Github app.""" | ||
|
||
from .comment import Comment | ||
from .label import Label | ||
from .milestone import Milestone | ||
from .pull_request import PullRequest | ||
from .user import User |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.