Skip to content

Commit dc9ee10

Browse files
author
ninjadev999
committed
Merge pull request #120 from goldenstar999/backend
added metric
2 parents 0bffc53 + 74cac5a commit dc9ee10

26 files changed

+430
-1108
lines changed

backend/.dockerignore

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
static
2+
static_backend
3+
.media
4+
.vscode
5+
.idea
6+
*.pdf
7+
env
8+
env3
9+
.tox
10+
*.pyc

backend/Dockerfile

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# The first instruction is what image we want to base our container on
2+
# We Use an official Python runtime as a parent image
3+
FROM python:3.6
4+
5+
ENV PYTHONUNBUFFERED 1
6+
7+
# Setup Ubuntu linux
8+
RUN export LANGUAGE="en_US.UTF-8"
9+
RUN apt-get update
10+
RUN apt-get -y install build-essential curl libssl-dev libffi-dev zlib1g-dev libjpeg-dev checkinstall
11+
RUN apt-get install imagemagick
12+
13+
RUN mkdir -p /usr/src/shiptalent_backend
14+
15+
WORKDIR /usr/src/shiptalent_backend
16+
17+
COPY requirements.txt /usr/src/shiptalent_backend/
18+
19+
RUN pip install -r /usr/src/shiptalent_backend/requirements.txt
20+
21+
COPY . /usr/src/shiptalent_backend/
22+
23+
RUN mkdir -p /usr/src/shiptalent_backend/static_backend
24+
RUN mkdir -p /usr/src/shiptalent_backend/static_backend/js
25+
RUN mkdir -p /usr/src/shiptalent_backend/static_backend/css
26+
RUN mkdir -p /usr/src/shiptalent_backend/static_backend/fonts
27+
RUN mkdir -p /usr/src/shiptalent_backend/static_backend/images
28+
RUN mkdir -p /usr/src/shiptalent_backend/static_backend/rest_framework
29+
RUN mkdir -p /usr/src/shiptalent_backend/static_backend/rest_framework_swagger
30+
RUN ls /usr/src/shiptalent_backend
31+
32+
RUN python /usr/src/shiptalent_backend/manage.py collectstatic --noinput
33+
RUN python /usr/src/shiptalent_backend/manage.py makemigrations
34+
RUN python /usr/src/shiptalent_backend/manage.py migrate
35+
36+
EXPOSE 8000
37+
38+
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

backend/README.md

+32
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,43 @@ Python/Django + JWT auth backend
99

1010
- JWT auth based RESTful API
1111

12+
### Preinstall
13+
export LANGUAGE="en_US.UTF-8"
14+
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
15+
sudo apt-get install zlib1g-dev libjpeg-dev
16+
sudo apt-get install build-essential checkinstall && apt-get build-dep imagemagick -y
17+
sudo apt-get install imagemagick
18+
19+
### Remove Python3.5 env
20+
```
21+
sudo apt-get purge python3.5-dev
22+
sudo apt-get remove --auto-remove python3.5-dev
23+
24+
sudo apt-get purge python3.5
25+
sudo apt-get purge --auto-remove python3.5
26+
27+
```
28+
29+
### Python3.6 env
30+
31+
```
32+
sudo add-apt-repository ppa:jonathonf/python-3.6
33+
$ apt-get update
34+
35+
$ apt-get install python3.6
36+
37+
$ apt-get install python3-pip
38+
```
39+
1240
### Create server
1341

1442
```
1543
$ python3.6 -m venv env3
1644

45+
or
46+
47+
$ python3.6 -m venv env3 --without-pip
48+
1749
$ source env3/bin/activate
1850

1951
$ pip install coreapi django djangorestframework djangorestframework-jwt

backend/Valeriia_NDA.pdf

-78.4 KB
Binary file not shown.
+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
2+
from talent.models import Talent
3+
from talent_picture.serializers import TalentPictureSerializer
4+
from talent_resume.serializers import TalentResumeSerializer
5+
from talent_position_type.serializers import TalentPositionTypeSerializer
6+
from talent_position_sub_type.serializers import GeneralTalentPositionSubTypeSerializer
7+
from authentication.serializers import GeneralUserSerializer
8+
from talent_skill.serializers import TalentSkillSerializer
9+
from talent_sub_skill.serializers import GeneralTalentSubSkillSerializer
10+
from talent_visa.serializers import TalentVisaSerializer
11+
from talent_language.serializers import TalentLanguageSerializer
12+
from talent_medical.serializers import TalentMedicalSerializer
13+
from talent_availability.serializers import TalentAvailabilitySerializerWithoutTalentID
14+
from talent_rating.deatil_by_talent_serializers import TalentRatingDetailByTalentSerializer
15+
from rest_framework import serializers
16+
17+
18+
class AgencySortTalentAlphaSerializer(serializers.Serializer):
19+
id = serializers.IntegerField(required=True)
20+
user = GeneralUserSerializer(many=False, read_only=True)
21+
picture = serializers.StringField(required=False)
22+
tid = serializers.StringField(required=False)
23+
tid = serializers.StringField(required=False)
24+
approved_date = serializers.DateTimeField(required=False)
25+
average_rating = serializers.FloatField(required=False)
26+
created = serializers.DateTimeField(required=False)
27+
28+
29+
30+
# class TalentGeneralSerializer(serializers.ModelSerializer):
31+
# id = serializers.IntegerField(required=True)
32+
# user = GeneralUserSerializer(many=False, read_only=True)
33+
# talent_pictures = TalentPictureSerializer(many=True, read_only=True)
34+
# # talent_position_types = TalentPositionTypeSerializer(many=True, read_only=True)
35+
# # talent_position_sub_types = GeneralTalentPositionSubTypeSerializer(many=True, read_only=True)
36+
# # talent_skills = TalentSkillSerializer(many=True, read_only=True)
37+
# # talent_sub_skills = GeneralTalentSubSkillSerializer(many=True, read_only=True)
38+
# # talent_visas = TalentVisaSerializer(many=True, read_only=True)
39+
# # talent_languages = TalentLanguageSerializer(many=True, read_only=True)
40+
# # talent_medicals = TalentMedicalSerializer(many=True, read_only=True)
41+
# # talent_availabilities = TalentAvailabilitySerializerWithoutTalentID(many=True, read_only=True)
42+
# # talent_ratings = TalentRatingDetailByTalentSerializer(many=True, read_only=True)
43+
# # average_rating = serializers.FloatField(source='get_average_rating', read_only=True)
44+
# # profile_status = serializers.JSONField(source='get_profile_status', read_only=True)
45+
# # talent_availabilities_last_update = serializers.DateTimeField(
46+
# # source='get_talent_availabilities_last_update',
47+
# # read_only=True
48+
# # )
49+
50+
# class Meta:
51+
# model = Talent
52+
# fields = (
53+
# 'id',
54+
# 'user',
55+
# # 'sex',
56+
# # 'talent_position_types',
57+
# # 'talent_position_sub_types',
58+
# # 'talent_skills',
59+
# # 'talent_sub_skills',
60+
61+
# # 'phone_number',
62+
# # 'mailing_addresse1',
63+
# # 'mailing_addresse2',
64+
# # 'mailing_addresse3',
65+
# # 'mailing_addresse4',
66+
# # 'mailing_addresse5',
67+
# # 'mailing_addresse6',
68+
# # 'birthday',
69+
70+
# # 'emergency_first_name',
71+
# # 'emergency_last_name',
72+
# # 'emergency_email',
73+
# # 'emergency_phone',
74+
# # 'emergency_relationship',
75+
76+
# # 'nationality',
77+
# # 'citizenship',
78+
# # 'passport_expiration_date',
79+
# # 'passport_number',
80+
# # 'country_of_current_residence',
81+
# # 'have_green_card',
82+
# # 'green_card_expiration_date',
83+
# # 'visa_type',
84+
# # 'expiration_date',
85+
86+
# # 'height',
87+
# # 'weight',
88+
# # 'bmi',
89+
# # 'age_range',
90+
# # 'head_line',
91+
# # 'bio',
92+
93+
# # 'talent_visas',
94+
# # 'talent_languages',
95+
# # 'talent_pictures',
96+
# # 'talent_resume',
97+
# # 'talent_medicals',
98+
99+
# # 'talent_availabilities',
100+
# # 'talent_availabilities_last_update',
101+
# # 'talent_ratings',
102+
# # 'average_rating',
103+
104+
# # 'worked_cruise_ship',
105+
# 'tid',
106+
# 'approved_date',
107+
# 'approved_by',
108+
# # 'locked_dance_combination',
109+
# 'created',
110+
111+
# 'profile_status'
112+
# )

backend/agency/sort_talent/urls.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.urls import re_path
2+
from agency.sort_talent import views
3+
4+
urlpatterns = [
5+
re_path(r'^sort_talent', views.AgencySortTalent.as_view()),
6+
]

backend/agency/sort_talent/views.py

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
from authentication.models import User
2+
from casting_request.models import CastingRequest
3+
from talent.models import Talent
4+
from agency.sort_talent.serializers import AgencySortTalentAlphaSerializer
5+
from django.http import Http404
6+
from rest_framework.views import APIView
7+
from rest_framework.response import Response
8+
from rest_framework import status
9+
from drf_yasg.utils import swagger_auto_schema
10+
11+
12+
class AgencyShortTalentAlpha(APIView):
13+
"""
14+
Retrieve overview info
15+
"""
16+
@swagger_auto_schema(responses={200: AgencySortTalentAlphaSerializer(many=False)})
17+
def get(self, request, format=None):
18+
user = User.objects.get(pk=request.user.pk)
19+
talents = Talent.objects.all().order_by('user__last_name', 'user__first_name')
20+
data = []
21+
for talent in talents:
22+
item = {
23+
'id': talent.id,
24+
'user': talent.user
25+
}
26+
id = serializers.IntegerField(required=True)
27+
user = GeneralUserSerializer(many=False, read_only=True)
28+
picture = serializers.StringField(required=False)
29+
tid = serializers.StringField(required=False)
30+
tid = serializers.StringField(required=False)
31+
approved_date = serializers.DateTimeField(required=False)
32+
average_rating = serializers.FloatField(required=False)
33+
created = serializers.DateTimeField(required=False)
34+
35+
return Response()
36+
37+
def check_sort_condition(self, talents, search_conditions):
38+
if ('alpha' in search_conditions) and search_conditions['alpha']:
39+
talents = talents.order_by('user__first_name', 'user__last_name')
40+
41+
if ('blocks' in search_conditions) and search_conditions['blocks']:
42+
talents = talents.order_by('talent_blocked_profiles__blocked_time')
43+
44+
if ('casting_request' in search_conditions) and search_conditions['casting_request']:
45+
talents = talents.order_by('talent_blocked_profiles__blocked_time')
46+
47+
return talents

backend/client/views.py

+27
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,8 @@ def post(self, request, format=None):
261261
if locked_dance_combination:
262262
talents = talents.filter(locked_dance_combination=locked_dance_combination)
263263

264+
talents = self.check_sort_condition(talents, search_conditions)
265+
264266
# Logging
265267
user = request.user
266268
if user and user.type != 'agency' and len(talents) > 0 and hasAnyConditions:
@@ -282,6 +284,31 @@ def pickout_data(self, data, child_name):
282284
res = data[child_name]
283285
return res
284286

287+
def check_sort_condition(self, talents, search_conditions):
288+
if ('alpha' in search_conditions) and search_conditions['alpha']:
289+
talents = talents.order_by('user__first_name', 'user__last_name')
290+
291+
if ('blocks' in search_conditions) and search_conditions['blocks']:
292+
talents = talents.order_by('talent_blocked_profiles__blocked_time')
293+
294+
if ('casting_request' in search_conditions) and search_conditions['casting_request']:
295+
talents = talents.order_by('talent_blocked_profiles__blocked_time')
296+
297+
return talents
298+
299+
# casting_request: false
300+
# contract_completed: false
301+
# lockouts: false
302+
# login_date: false
303+
# medical: false
304+
# nationality: false
305+
# position: true
306+
# rating: false
307+
# search_returns: false
308+
# shares: false
309+
# time_online: false
310+
# viewed_time_by_client: false
311+
285312
# def make_and_query(selfs, itemName, objectType, items):
286313
# queries = [Q(''.format(itemName)=item) for item in items]
287314
# query = queries.pop()

backend/docker-compose.yml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
2+
version: '3.5'
3+
4+
services:
5+
6+
shiptalent_backend:
7+
container_name: shiptalent_backend
8+
build:
9+
context: .
10+
dockerfile: Dockerfile
11+
# command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
12+
volumes:
13+
- '.:/usr/src/backend'
14+
ports:
15+
- "8000:8000"
16+
environment:
17+
- POSTGRE_DATABASE_NAME=shiptalent
18+
- POSTGRE_USER_NAME=postgres
19+
- POSTGRE_USER_PASSWORD=postgres
20+
- AWS_UPLOAD_BUCKET = "shiptalents3video"
21+
- AWS_UPLOAD_USERNAME = "valeriiadidushok"
22+
- AWS_UPLOAD_GROUP = "Developer"
23+
- AWS_UPLOAD_REGION = 'us-east-1'
24+
- AWS_UPLOAD_ACCESS_KEY_ID = "AKIAITK7TCIQ4ITTFY6Q"
25+
- AWS_UPLOAD_SECRET_KEY = "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"
26+
- AWS_UPLOAD_IMAGES_PATH = "uploadstest/images"
27+
- AWS_UPLOAD_RESUMES_PATH = "uploadstest/resumes"
28+
- AWS_UPLOAD_VIDEOS_PATH = "uploadstest/videos"

backend/entrypoint.sh

Whitespace-only changes.

backend/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ PyPDF2==1.26.0
5656
python-dateutil==2.7.3
5757
python-docx==0.8.6
5858
python-magic==0.4.15
59-
python-magic-bin==0.4.14
59+
# python-magic-bin==0.4.14
6060
pytz==2018.5
6161
PyYAML==3.13
6262
reportlab==3.5.4

backend/start.sh

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh
2+
python /shiptalent/backend/manage.py collectstatic --noinput
3+
#/usr/local/bin/gunicorn django_config.wsgi -w 4 -b 0.0.0.0:8000 --chdir=/shiptalent/backend
4+
python manage.py makemigrations
5+
python manage.py migrate
6+
python manage.py runserver 0.0.0.0:8000

frontend/.dockerignore

+6-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1-
node_modules
1+
node_modules
2+
build
3+
.idea
4+
.vscode
5+
yan-error.log
6+
yarn.lock

frontend/.idea/frontend.iml

-12
This file was deleted.

frontend/.idea/misc.xml

-6
This file was deleted.

frontend/.idea/modules.xml

-8
This file was deleted.

0 commit comments

Comments
 (0)