From 1c22ddbc3b7ef44f4a99682d12d2da96d683aea2 Mon Sep 17 00:00:00 2001 From: 369Rohini Date: Mon, 18 Sep 2023 12:29:25 +0530 Subject: [PATCH] accessed data from the google sheet, created company & job records --- .../settings.py | 11 +++- .../employer_recommendation_system/urls.py | 1 + .../utilities/__init__.py | 0 .../utilities/admin.py | 3 + .../utilities/apps.py | 6 ++ .../job-fair-398302-53e26af2ca93.json | 13 ++++ .../utilities/migrations/__init__.py | 0 .../utilities/models.py | 3 + .../utilities/script.py | 23 +++++++ .../utilities/script1.py | 17 +++++ .../utilities/tests.py | 3 + .../utilities/urls.py | 6 ++ .../utilities/views.py | 62 +++++++++++++++++++ 13 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 employer_recommendation_system/utilities/__init__.py create mode 100644 employer_recommendation_system/utilities/admin.py create mode 100644 employer_recommendation_system/utilities/apps.py create mode 100644 employer_recommendation_system/utilities/job-fair-398302-53e26af2ca93.json create mode 100644 employer_recommendation_system/utilities/migrations/__init__.py create mode 100644 employer_recommendation_system/utilities/models.py create mode 100644 employer_recommendation_system/utilities/script.py create mode 100644 employer_recommendation_system/utilities/script1.py create mode 100644 employer_recommendation_system/utilities/tests.py create mode 100644 employer_recommendation_system/utilities/urls.py create mode 100644 employer_recommendation_system/utilities/views.py diff --git a/employer_recommendation_system/employer_recommendation_system/settings.py b/employer_recommendation_system/employer_recommendation_system/settings.py index 1c7515b3..ae15f291 100644 --- a/employer_recommendation_system/employer_recommendation_system/settings.py +++ b/employer_recommendation_system/employer_recommendation_system/settings.py @@ -41,6 +41,7 @@ 'django.contrib.staticfiles', 'django_filters', 'django_crontab', + 'rest_framework', 'emp', 'accounts', 'crispy_forms', @@ -48,6 +49,9 @@ 'spoken', 'ckeditor', 'events', + 'utilities', + + ] @@ -171,7 +175,7 @@ } ROLE_ID = { 'MANAGER': 1,'STUDENT':2,'EMPLOYER':3} ROLES = {'MANAGER':(1,'MANAGER'),'STUDENT':(2,'STUDENT'),'EMPLOYER':(3,'EMPLOYER')} -CRISPY_TEMPLATE_PACK = 'bootstrap4' + MESSAGE_TAGS = { messages.DEBUG: 'alert-info', messages.INFO: 'alert-info', @@ -226,4 +230,7 @@ GALLERY_TESTIMONIAL = GALLERY_TESTIMONIAL CONTACT_MAIL = CONTACT_MAIL -PASS_GRADE=PASS_GRADE \ No newline at end of file +PASS_GRADE=PASS_GRADE + +# CRISPY_TEMPLATE_PACK = '' +# CRISPY_TEMPLATE_PACK = 'bootstrap4' \ No newline at end of file diff --git a/employer_recommendation_system/employer_recommendation_system/urls.py b/employer_recommendation_system/employer_recommendation_system/urls.py index a4c8210e..be7901e4 100644 --- a/employer_recommendation_system/employer_recommendation_system/urls.py +++ b/employer_recommendation_system/employer_recommendation_system/urls.py @@ -27,6 +27,7 @@ path('',include('emp.urls')), path('',include('moodle.urls')), path('',include('accounts.urls')), + path('api/', include('utilities.urls')), # ] ]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/employer_recommendation_system/utilities/__init__.py b/employer_recommendation_system/utilities/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/employer_recommendation_system/utilities/admin.py b/employer_recommendation_system/utilities/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/employer_recommendation_system/utilities/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/employer_recommendation_system/utilities/apps.py b/employer_recommendation_system/utilities/apps.py new file mode 100644 index 00000000..8da8cdef --- /dev/null +++ b/employer_recommendation_system/utilities/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UtilitiesConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'utilities' diff --git a/employer_recommendation_system/utilities/job-fair-398302-53e26af2ca93.json b/employer_recommendation_system/utilities/job-fair-398302-53e26af2ca93.json new file mode 100644 index 00000000..0faa10a2 --- /dev/null +++ b/employer_recommendation_system/utilities/job-fair-398302-53e26af2ca93.json @@ -0,0 +1,13 @@ +{ + "type": "service_account", + "project_id": "job-fair-398302", + "private_key_id": "53e26af2ca9379db0926ec6759af177e4e5c5854", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDLBlIgQIOGmiOA\nWMOuVzPg+vOn2S538DFSoe7H3q4qh4RnzbFZ1J3/bCjEQmcga/Qs9HihmidJtRi+\nVPftr/08jODnm1MshgCKcfTyVEw8gKy8KBTUjVv7QNZQcntmVEgMFsDIYbxGvpjZ\nuXIuSq0PKxjp6/VxS3/EpSxM0nmogBdVExxvFzdE42VOJd1XnsiS5NsBWDl6KG24\n5dEx+dM+TS1pUHP7NVj1Iv3kMhDOxsDHwFiWZ4yKLks0J6smccBYhYqto07uZXeU\n7NHc9va/wr6UQAQilsQz9+m1m2QWVwrTMJWeDZGxfv7KfjuxF1f74nchZ8N6ft12\nUV/ct+aFAgMBAAECggEATJvOeogNeUmJcuFLuWoDU/Yt4dy0SaKzYdxjxzySGM85\nGZhGv0BY/Cw6d9AcrOG/agU3zbbm80uoEg3q3eAmHOaF6S81o9vOsW8NwDEp8TyW\nsYsoTQooNrdBB2sjgDn2U8V0Kkii7Ej4UVPGL4yTH+GhzYbxfzY/eJrhC/3x1TAP\n6momydpKw7y8ejL0FJHLkv97rWDDzJYj5PoeGRKAwckLgjVVub+CuzaC2SYSHFSy\n58LJi6YZ3j1yFO6w8l8dK98j0I27JyWmVqIyVDHmP4oiFg/lBWp/ljdRCu+scjLT\n+IMTPrNyvTLNYXYkRo2Xb+e58v6sFoGJ1GD79IzvUwKBgQD0CeykJO2VH0xORQzE\nWzM36lFQqefV/qJNeATEr/Vzeax+BRbEE8zMbHIuRAWMOx9Sv1tcdVlc5ESvSfhi\n89n2IQNh8NHNcDbCAtBsupUqrRUwGRQpmBjScaP8n9RF615Lvyfp66JNJM7BuOsA\nqDvQHwHQgjF3YjiupcfgqpNLLwKBgQDU+cW+aLNBx5lgJGBVAbjA2rsxI8XSZ+RY\nUZZNKM1sFtMd+BMIjXEa6HG5qtumhaOuEMhkXTmWNQP07YPlOgJvlHivY6qZ0PLl\nP8lE0QNLVLGmRJ3Nc+ykv49G1EXyWrOyXh4XbW0R1BCqrEkg43pR/bEUaGmYhEUq\nNsfX8s4siwKBgAWT/H68AVo5PutDFMmgNAmBJ56qY4w2p8sRhTphs0CSdWjkAOM2\neKXrjKiWEXJlH5Aqo5H3dLV02kUPccgBPugrVQJ2GLWTbQz+N3lkwmgZULSqvhU9\nTsPwqQjrNlTqzlr44ZatNiaBQuCWs3huX/+f1dDISQ0rh5QmYe02uOstAoGAMaLM\nzWXFcW09d8TCls1B6+COhBNcRX9lHphVOUJrLefb6D4q4XFljOnjp2wEqTi4Pxc2\nPP3lL/bHJ0w70y7D5pFp1yaZWiPymC9XjyxPYj0o8iFHzdxYqMTkdZN/gc5V1xpM\nVRVxuBf+kmh42qtplLZVkPYMtjkNjZsa1F+IYaUCgYA79fEsXsH065UAtxvOYqd8\n2S6kBlBDYE16ap39k7GtsCK0x9JzuEhi0sH/sUGbkJIo569ms31Xk5o1Ax9iZYrJ\njLvTctAFPygD3G9Mjvwj+Aq94LmTZ0yugjJcOCneqJdQOX/MMNS2d+JnIaiEQD/p\nXw2iClQUkRgHyHTazBnHZA==\n-----END PRIVATE KEY-----\n", + "client_email": "job-fair@job-fair-398302.iam.gserviceaccount.com", + "client_id": "114252800178464690673", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/job-fair%40job-fair-398302.iam.gserviceaccount.com", + "universe_domain": "googleapis.com" +} diff --git a/employer_recommendation_system/utilities/migrations/__init__.py b/employer_recommendation_system/utilities/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/employer_recommendation_system/utilities/models.py b/employer_recommendation_system/utilities/models.py new file mode 100644 index 00000000..71a83623 --- /dev/null +++ b/employer_recommendation_system/utilities/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/employer_recommendation_system/utilities/script.py b/employer_recommendation_system/utilities/script.py new file mode 100644 index 00000000..bf619bf1 --- /dev/null +++ b/employer_recommendation_system/utilities/script.py @@ -0,0 +1,23 @@ +from emp.models import Company + + + + +def project_one(): + print("Hello World") + company = Company( + name="Example Company", + emp_name="John Doe", + emp_contact="123-456-7890", + state_c=1, # Replace with the actual state ID + city_c=1, # Replace with the actual city ID + address="123 Main St", + email="example@example.com", + logo="logo.png", # Replace with the actual logo file path + description="This is an example company", + + ) + + + company.save() + print("Jagaur") \ No newline at end of file diff --git a/employer_recommendation_system/utilities/script1.py b/employer_recommendation_system/utilities/script1.py new file mode 100644 index 00000000..a2bf3780 --- /dev/null +++ b/employer_recommendation_system/utilities/script1.py @@ -0,0 +1,17 @@ +from emp.models import Job +from datetime import date + +def project_two(): + print("Hello World") + job = Job( + title="Software Engineer", + # location="New York", + requirements="Python, Django, SQL", + job_type_id= 1, + last_app_date= date(2023, 8, 30), + foss ="", + institute_type="" + ) + + job.save() + print(" World") \ No newline at end of file diff --git a/employer_recommendation_system/utilities/tests.py b/employer_recommendation_system/utilities/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/employer_recommendation_system/utilities/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/employer_recommendation_system/utilities/urls.py b/employer_recommendation_system/utilities/urls.py new file mode 100644 index 00000000..4a63aa11 --- /dev/null +++ b/employer_recommendation_system/utilities/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('fetch-google-sheet//', views.fetch_google_sheet, name='fetch_google_sheet'), +] \ No newline at end of file diff --git a/employer_recommendation_system/utilities/views.py b/employer_recommendation_system/utilities/views.py new file mode 100644 index 00000000..584be1b4 --- /dev/null +++ b/employer_recommendation_system/utilities/views.py @@ -0,0 +1,62 @@ +from django.http import JsonResponse +from google.oauth2.service_account import Credentials +import gspread +from emp.models import Company,Job +from emp.views import CompanyDetailView + +# from spreadsheet.models import SheetData + +def fetch_google_sheet(request, spreadsheet_id): + # Load the credentials from the JSON key file + print(1) + scopes = [ + 'https://www.googleapis.com/auth/spreadsheets', + 'https://www.googleapis.com/auth/drive' +] + + print(f"spreadsheet_id : {spreadsheet_id}") + credentials = Credentials.from_service_account_file('/home/rohini/Desktop/ers/Employer-Recommendation-System/employer_recommendation_system/utilities/job-fair-398302-53e26af2ca93.json', + scopes=scopes) + print(2) + # Authenticate with Google Sheets + gc = gspread.authorize(credentials) + print(3) + try: + # Open the Google Sheets spreadsheet by ID + sheet = gc.open_by_key(spreadsheet_id) + + # Access a specific worksheet within the spreadsheet + worksheet = sheet.get_worksheet(0) # Change the index as needed + + # Fetch the data from the worksheet + data = worksheet.get_all_records() + print(type(data)) + print(data) + # Save data to the database + for row in data: + company_name = row.get("Company Name") + job_description = row.get('job_description') + print(f"company_name : {company_name}") + company = Company(name=company_name) + # CompanyDetailView.append(company) + company.save() + + + + + + # spreadsheet_id = ('1EUN10lGd7_ikNgt7pWRyt5RA5yCVorwMOQOqbDnuzrE') + # response = fetch_google_sheet(request, spreadsheet_id) + # Query the database to check if data is stored + # Retrieve all records as a queryset + # You can print or return 'stored_data' as a JSON response to verify + + return JsonResponse({'message': 'Data fetched and stored successfully.'}) + + + + + # Return the data as JSON response + # return JsonResponse(data, safe=False) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) \ No newline at end of file