Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@
'spoken',
'ckeditor',
'events',

'registration_api',
'rest_framework',

]

MIDDLEWARE = [
Expand Down Expand Up @@ -138,6 +140,14 @@
},
]

REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': (
'django_filters.rest_framework.DjangoFilterBackend',
'rest_framework.filters.SearchFilter',
'rest_framework.filters.OrderingFilter',
),
}


# Internationalization
# https://docs.djangoproject.com/en/3.1/topics/i18n/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
path('',include('emp.urls')),
path('',include('moodle.urls')),
path('',include('accounts.urls')),

path('api/', include('registration_api.urls')),

# ]
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if settings.DEBUG:
Expand Down
Empty file.
3 changes: 3 additions & 0 deletions employer_recommendation_system/registration_api/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
6 changes: 6 additions & 0 deletions employer_recommendation_system/registration_api/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class RegistrationApiConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'registration_api'
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 3.2.19 on 2023-08-30 11:58

from django.db import migrations, models


class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='Company',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('address', models.TextField()),
('registration_number', models.CharField(max_length=20)),
],
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Generated by Django 3.2.19 on 2023-08-31 09:35

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('registration_api', '0001_initial'),
]

operations = [
migrations.AddField(
model_name='company',
name='city_c',
field=models.IntegerField(blank=True, null=True, verbose_name='City (Company Headquarters)'),
),
migrations.AddField(
model_name='company',
name='description',
field=models.TextField(blank=True, null=True, verbose_name='Description about the company'),
),
migrations.AddField(
model_name='company',
name='email',
field=models.EmailField(blank=True, max_length=254, null=True),
),
migrations.AddField(
model_name='company',
name='emp_contact',
field=models.CharField(default=123, max_length=17, verbose_name='Phone Number'),
preserve_default=False,
),
migrations.AddField(
model_name='company',
name='emp_name',
field=models.CharField(default='abc', max_length=200, verbose_name='Company HR Representative Name'),
preserve_default=False,
),
migrations.AddField(
model_name='company',
name='logo',
field=models.ImageField(blank=True, null=True, upload_to='logo/'),
),
migrations.AddField(
model_name='company',
name='state_c',
field=models.IntegerField(blank=True, null=True, verbose_name='State (Company Headquarters)'),
),
migrations.AlterField(
model_name='company',
name='address',
field=models.CharField(max_length=250),
),
migrations.AlterField(
model_name='company',
name='name',
field=models.CharField(max_length=200),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 3.2.19 on 2023-08-31 10:46

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('emp', '0065_auto_20230705_1713'),
('registration_api', '0002_auto_20230831_0935'),
]

operations = [
migrations.CreateModel(
name='Registration',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('company', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='emp.company')),
],
),
migrations.DeleteModel(
name='Company',
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Generated by Django 3.2.19 on 2023-09-04 06:32

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('emp', '0065_auto_20230705_1713'),
('registration_api', '0003_auto_20230831_1046'),
]

operations = [
migrations.CreateModel(
name='jobregistration',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('Job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='emp.job')),
],
),
]
Empty file.
19 changes: 19 additions & 0 deletions employer_recommendation_system/registration_api/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from django.db import models
from emp.models import Company
from emp.models import Job
# class registration(models.Model):
# company = models.ForeignKey(Company, on_delete=models.CASCADE)


# class jobregistration(models.Model):
# Job = models.ForeignKey(Job, on_delete=models.CASCADE)










23 changes: 23 additions & 0 deletions employer_recommendation_system/registration_api/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# from rest_framework import serializers
# from emp.models import Company

# class CompanySerializer(serializers.ModelSerializer):
# class Meta:
# model = Company
# fields = '__all__'

from rest_framework import serializers
# from emp.serializers import CompanySerializer
# from emp.serializers import JobSerializer
# from .models import Registration
from emp.models import Company
from emp.models import Job
class CompanySerializer(serializers.ModelSerializer):
class Meta:
model = Company
fields = '__all__'

class JobSerializer(serializers.ModelSerializer):
class Meta:
model = Job
fields = '__all__'
3 changes: 3 additions & 0 deletions employer_recommendation_system/registration_api/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
40 changes: 40 additions & 0 deletions employer_recommendation_system/registration_api/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# from django.urls import path
# from .views import CompanyListCreateView
# from .views import RegistrationCreateView
# from .views import (
# RegistrationCreateView, RegistrationListView, RegistrationDetailView,
# CompanyCreateView, CompanyListView, CompanyDetailView
# )
# urlpatterns = [
# path('api/companies/', CompanyListCreateView.as_view(), name='company-list-create'),
# # path('api/registrations/create/', RegistrationCreateView.as_view(), name='registration-create'),

# path('api/registrations/', RegistrationListView.as_view(), name='registration-list'),
# path('api/registrations/create/', RegistrationCreateView.as_view(), name='registration-create'),
# path('api/registrations/<int:pk>/', RegistrationDetailView.as_view(), name='registration-detail'),

# path('api/companies/', CompanyListView.as_view(), name='company-list'),
# path('api/companies/create/', CompanyCreateView.as_view(), name='company-create'),
# path('api/companies/<int:pk>/', CompanyDetailView.as_view(), name='company-detail'),
# ]
from rest_framework.routers import DefaultRouter
from django.urls import path, include
from .views import CompanyViewSet
from .views import JobViewSet
router = DefaultRouter()
# router.register(r'registrations', RegistrationViewSet)
router.register(r'companies', CompanyViewSet)
router.register(r'Jobs', JobViewSet)
urlpatterns = [
path('api/', include(router.urls)),
path('api/Jobs/', include(router.urls)),
]









82 changes: 82 additions & 0 deletions employer_recommendation_system/registration_api/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# from rest_framework import generics
# from emp.models import Company
# from .models import Registration
# from .serializers import RegistrationSerializer
# from .serializers import CompanySerializer

# class CompanyListCreateView(generics.ListCreateAPIView):
# queryset = Company.objects.all()
# serializer_class = CompanySerializer

# class RegistrationCreateView(generics.CreateAPIView):
# queryset = Registration.objects.all()
# serializer_class = RegistrationSerializer

# class RegistrationListView(generics.ListAPIView):
# queryset = Registration.objects.all()
# serializer_class = RegistrationSerializer

# class RegistrationDetailView(generics.RetrieveUpdateDestroyAPIView):
# queryset = Registration.objects.all()
# serializer_class = RegistrationSerializer

# class CompanyCreateView(generics.CreateAPIView):
# queryset = Company.objects.all()
# serializer_class = CompanySerializer

# class CompanyListView(generics.ListAPIView):
# queryset = Company.objects.all()
# serializer_class = CompanySerializer

# class CompanyDetailView(generics.RetrieveUpdateDestroyAPIView):
# queryset = Company.objects.all()
# serializer_class = CompanySerializer
from rest_framework import viewsets
# from .models import Registration
from rest_framework import status
from rest_framework.response import Response
from emp.models import Company
from emp.models import Job
from .serializers import CompanySerializer,JobSerializer
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters


class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.all()
serializer_class = CompanySerializer
def destroy(self, request, *args, **kwargs):
instance = self.get_object()
print(instance)
instance.status = 0
instance.save()

return Response(status=status.HTTP_204_NO_CONTENT)
filterset_fields = {
'name': ['exact', 'icontains'], # Filter by exact or case-insensitive partial match
'state_c': ['exact'], # Filter by exact match for state_c field
'city_c': ['exact'], # Filter by exact match for city_c field
'company_size': ['exact'], # Filter by exact match for company_size field
}

search_fields = ['name', 'description', 'address', 'email']

# Enable ordering
ordering_fields = ['name', 'state_c', 'city_c', 'company_size', 'date_registered']
# def get_queryset(self):
# return Post.objects.all()
class JobViewSet(viewsets.ModelViewSet):
queryset = Job.objects.all()
serializer_class = JobSerializer

filterset_fields = {
'title': ['exact', 'icontains'], # Filter by exact or case-insensitive partial match
# 'location': ['exact', 'icontains'], # Filter by exact or case-insensitive partial match
'requirements': ['exact', 'icontains'], # Filter by exact or case-insensitive partial match
}


search_fields = ['title', 'location', 'requirements']

ordering_fields = ['title', 'location', 'requirements', 'date_posted']

Loading