from django.db import models from django.contrib.auth.models import User import os class UserDetails(models.Model): def user_directory_path(instance, filename): return os.path.join(f'user_{instance.django_user_id.id}', 'profile_photo', filename) django_user_id = models.ForeignKey(User, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) # email = models.CharField(max_length=200) full_name = models.CharField(max_length=200) dob = models.DateField() mobile_number = models.CharField(max_length=200) office_contact = models.CharField(max_length=200) case_pending = models.BooleanField() case_details = models.CharField(max_length=200, null=True) residence = models.CharField(max_length=200) telephone_number = models.CharField(max_length=200) address = models.CharField(max_length=200) is_submitted = models.BooleanField(default=False) submitted_time = models.DateTimeField(null=True) profile_photo = models.FileField(upload_to=user_directory_path, blank=True, null=True) @property def application_number(self): return f"202300{self.id}" def delete(self, *args, **kwargs): if self.profile_photo: self.profile_photo.storage.delete(self.profile_photo.name) super(UserDetails, self).delete(*args, **kwargs) class Languages(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) language = models.CharField(max_length=200) class GeneralInfo(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) present_post = models.CharField(max_length=200) designation_grade = models.CharField(max_length=200) date_from_held = models.DateField() name_of_organisation = models.CharField(max_length=200) address_of_organisation = models.CharField(max_length=200) class EducationalQualification(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) exam_or_degree = models.CharField(max_length=200) board_or_university = models.CharField(max_length=200) institute = models.CharField(max_length=200) subjects_or_specialization = models.CharField(max_length=200) year_of_passing = models.IntegerField() division_or_cgpa = models.CharField(max_length=200) marks_in_percentage = models.CharField(max_length=200) class Experience(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) university = models.CharField(max_length=200) post = models.CharField(max_length=200) from_date = models.DateField() to_date = models.DateField() class Publications(models.Model): TYPE_IN_PUBLICATION_CHOICES = [ ('sci', 'Sci'), ('ugc_care', 'UGC Care'), ('other', 'Other'), ] user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) title_of_publication = models.CharField(max_length=200) name_of_international_journal = models.CharField(max_length=200) type_of_publication = models.CharField(max_length=200, choices=TYPE_IN_PUBLICATION_CHOICES, default='ugc_care') impact_factor = models.FloatField(max_length=200) date = models.IntegerField() class PublishedBooks(models.Model): TYPE_IN_BOOK_CHOICES = [ ('book', 'Book'), ('chapter', 'Chapter'), ] user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) title_of_book = models.CharField(max_length=200) book_type = models.CharField(max_length=200, choices=TYPE_IN_BOOK_CHOICES, default='book') name_of_publisher = models.CharField(max_length=200) class RefferedInstitutions(models.Model): book_id = models.ForeignKey(PublishedBooks, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) institutions = models.CharField(max_length=200) class AdministrativeExperience(models.Model): TYPE_IN_EXPERIENCE_CHOICES = [ ('professor', 'Professor'), ('hod', 'HOD'), ('principal', 'Principal'), ('dean', 'Dean'), ('director', 'Director'), ('head', 'Head of National / International institution of advance learning'), ] user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) post = models.CharField(max_length=200,choices=TYPE_IN_EXPERIENCE_CHOICES) from_date = models.DateField() to_date = models.DateField() name_of_university = models.CharField(max_length=200) location = models.CharField(max_length=200) class ResearchExperience(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) i_index = models.CharField(max_length=200) h_index = models.CharField(max_length=200) class ResearchProjects(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) title_of_project = models.CharField(max_length=200) project_value = models.CharField(max_length=200) granting_agency = models.CharField(max_length=200) date_of_start = models.DateField() date_of_completion = models.DateField() class InternationalBodies(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) name_of_international_body = models.CharField(max_length=200) nature_of_experience = models.CharField(max_length=200) class Workshops(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) title_of_workshop = models.CharField(max_length=200) month_and_year = models.IntegerField() place = models.CharField(max_length=200) class OrganisingEvents(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) title_of_workshop = models.CharField(max_length=200) month_and_year = models.IntegerField() place = models.CharField(max_length=200) role_assigned = models.CharField(max_length=200) class Leadership(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) leadership_activity = models.CharField(max_length=200) documented_evidence = models.CharField(max_length=200) # doubt class StatutoryWorkingExp(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) institution = models.CharField(max_length=200) authority_or_position = models.CharField(max_length=200) from_date = models.DateField() to_date = models.DateField() class QualityIssues(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) area = models.CharField(max_length=200) institution = models.CharField(max_length=200) from_date = models.DateField() to_date = models.DateField() achievements = models.CharField(max_length=200) #below 2 are the new models added class ResearchParams(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) phd_students_guided = models.CharField(max_length=200) research_publications = models.CharField(max_length=200) books_published = models.CharField(max_length=200) book_chapters_published = models.CharField(max_length=200) patents_granted = models.CharField(max_length=200) class Awards(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) award_name = models.CharField(max_length=200) granting_agency = models.CharField(max_length=200) year = models.IntegerField() class YouthHandlingExp(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) nature_of_activity = models.CharField(max_length=200) institution = models.CharField(max_length=200) from_date = models.DateField() to_date = models.DateField() achievements = models.CharField(max_length=200) class Skills(models.Model): CHOICES_IN_LEVEL = [ ('basic', 'Basic'), ('intermediate', 'Intermediate'), ('advanced', 'Advanced'), ] CHOICES_IN_SKILL_TYPE = [ ("technical", "Technical Skills"), ("managerial", "Managerial Skills"), ("corporate_objective", "Corporate Objective"), ("leadership", "Leadership Skills"), ("communication", "Communication Skills"), ] user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) skill_type = models.CharField(max_length=200,choices=CHOICES_IN_SKILL_TYPE) skill = models.CharField(max_length=200) level = models.CharField(max_length=200, choices=CHOICES_IN_LEVEL) class References(models.Model): user_id = models.ForeignKey(UserDetails, on_delete=models.CASCADE) id = models.AutoField(primary_key=True) name = models.CharField(max_length=200) phone = models.CharField(max_length=200) email = models.CharField(max_length=200)