Skip to content

Implement PhD thesis submission workflow and enhance role-based access#1928

Merged
vikrantwiz02 merged 15 commits into
FusionIIIT:prod-testfrom
kotangale237:phd
Jul 9, 2026
Merged

Implement PhD thesis submission workflow and enhance role-based access#1928
vikrantwiz02 merged 15 commits into
FusionIIIT:prod-testfrom
kotangale237:phd

Conversation

@kotangale237

Copy link
Copy Markdown
Contributor

This pull request introduces major enhancements to the PhD thesis management and review process, including new admin interfaces, API endpoints, scheduled tasks, and improved data handling. The changes add comprehensive support for PhD thesis submission, review invitations, and related workflows, as well as improvements to migrations and development settings.

PhD Thesis Management and Review Features:

  • Added Django admin interfaces for ThesisSubmission and ReviewInvitation with custom list displays, filters, actions (e.g., resend invitation, mark expired, send review form), and utility links for file access and invitation actions.
  • Introduced a wide range of PhD-specific API endpoints for thesis registration, seminar reports, thesis enrollment, block-based grading, thesis submission, and the full review workflow (student, supervisor, HOD, Dean, director, and external reviewer actions).

Scheduled and Background Tasks:

  • Registered a new Celery beat scheduled task (phd-thesis-review-invitations-task) for processing PhD thesis review invitations, replacing a previously unused django_cron job. [1] [2]

Database and Data Handling:

  • Added and merged migrations for academic information, including updates to the Student model's specialization choices. [1] [2]
  • Improved the SQL query logic in generate_xlsheet_api to distinguish between PG and PhD students more accurately.

Development and Settings:

  • Set the frontend base URL via the new FRONTEND_URL setting, to be used for building links in emails and elsewhere.
  • Configured local development to use Django's console email backend, ensuring emails are printed to the console instead of being sent.

Code Cleanup:

  • Removed unnecessary @login_required decorators from internal helper functions in views.py. [1] [2]## Issue that this pull request solves

Closes: # (issue number)

Proposed changes

Brief description of what is fixed or changed

Types of changes

Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Other (please describe):

Checklist

Put an x in the boxes that apply

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have created new branch for this pull request
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • My changes does not break the current system and it passes all the current test cases.

Screenshots

Please attach the screenshots of the changes made in case of change in user interface

Other information

Any other information that is important to this pull request

kotangale237 and others added 15 commits March 14, 2026 15:29
…ctionality

- Refactored role checking in academic procedures to use actual user designations instead of client-supplied roles.
- Added new API endpoints for managing result announcements, including per-student selection for published results.
- Introduced a new model PublishedResultStudent to track which students have their results published.
- Updated existing views and permissions to enforce role-based access control using the new role-checking methods.
- Enhanced curriculum management views with role-based access restrictions for academic admins and deans.
- Added migration for new fields in the ResultAnnouncement model to support the new functionality.
Implement server-side role checks and enhance result announcement API
Implement role-based access control and enhance security features
- Deleted the following templates related to examination functionalities:
  - timetable.html
  - updateEntergrades.html
  - updateEntergradesDean.html
  - validation.html
  - validationSubmit.html
  - verify.html
  - verifygrades.html

- Updated publish.html to remove links to non-existent pages and adjusted the active state for the Publish menu item.
Clean up grade input processing and remove outdated templates
…an -> Director -> external examiner review)

Adds the full examiner-nomination and invitation pipeline: student
uploads synopsis+thesis, supervisor nominates Indian/Foreign examiners,
Dean approves the panel, Director sets priority ranking, Dean sends
invitations to rank-1 examiners, and external examiners accept/reject
via emailed token links with automatic cascade to the next-ranked
examiner on decline or 15-day timeout (Celery beat task replacing a
dead django_cron job that never actually ran).

Also fixes several bugs found while wiring this up: a broken
reverse('procedures:...') call with no such URL namespace, external
review endpoints requiring login they can't have, and adds role/
ownership checks (supervisor_assign, dean panel endpoints,
director_approve) after a security review found they were only
gated by IsAuthenticated.
…email links)

- New models ThesisReview, ExaminerBankDetails, ReviewInvitation and migrations
- thesis_research module access flag in globals
- Scheduled process_review_invitations Celery task
- FRONTEND_URL setting for building examiner links; console email backend in dev
- programme_curriculum batch-management and course-audit JSON encoder changes
@vikrantwiz02
vikrantwiz02 merged commit 4f72377 into FusionIIIT:prod-test Jul 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants