-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #11 from kaplanPRO/0.5.0
version 0.5.0
- Loading branch information
Showing
23 changed files
with
456 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
FROM python:3.8 | ||
FROM python:3.11 | ||
|
||
ENV PYTHONUNBUFFERED=1 | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
__version__ = '0.4.0' | ||
__version__ = '0.5.0' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,7 +23,7 @@ | |
</div> | ||
</div> | ||
<footer> | ||
<p>v0.4.0</p> | ||
<p>v0.5.0</p> | ||
</footer> | ||
</main> | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -40,7 +40,7 @@ | |
</div> | ||
</div> | ||
<footer> | ||
<p>v0.4.0</p> | ||
<p>v0.5.0</p> | ||
</footer> | ||
</main> | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,7 +23,7 @@ | |
</div> | ||
</div> | ||
<footer> | ||
<p>v0.4.0</p> | ||
<p>v0.5.0</p> | ||
</footer> | ||
</main> | ||
{% endblock %} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
from django.contrib import admin | ||
|
||
from kaplancloudapi.models import ProjectWebHook, ProjectFileWebHook | ||
|
||
admin.site.register(ProjectWebHook) | ||
|
||
admin.site.register(ProjectFileWebHook) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
from django.apps import AppConfig | ||
|
||
|
||
class KaplancloudapiConfig(AppConfig): | ||
default_auto_field = 'django.db.models.BigAutoField' | ||
name = 'kaplancloudapi' | ||
|
||
def ready(self): | ||
# Import the signal instances and connect them | ||
# from myapp.signals import my_signal | ||
import kaplancloudapi.signals |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Generated by Django 4.2.2 on 2023-06-25 11:29 | ||
|
||
from django.db import migrations, models | ||
import django.db.models.deletion | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
initial = True | ||
|
||
dependencies = [ | ||
('kaplancloudapp', '0016_add_uuid_fields'), | ||
] | ||
|
||
operations = [ | ||
migrations.CreateModel( | ||
name='ProjectWebHook', | ||
fields=[ | ||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
('target', models.URLField()), | ||
('header', models.JSONField()), | ||
('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='kaplancloudapp.project')), | ||
], | ||
options={ | ||
'abstract': False, | ||
}, | ||
), | ||
migrations.CreateModel( | ||
name='ProjectFileWebHook', | ||
fields=[ | ||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), | ||
('target', models.URLField()), | ||
('header', models.JSONField()), | ||
('project_file', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='kaplancloudapp.projectfile')), | ||
], | ||
options={ | ||
'abstract': False, | ||
}, | ||
), | ||
] |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
from django.db import models | ||
|
||
import json | ||
import logging | ||
import requests | ||
|
||
|
||
class WebHook(models.Model): | ||
target = models.URLField() | ||
header = models.JSONField() | ||
|
||
class Meta: | ||
abstract = True | ||
|
||
def fire_hook(self, body: dict): | ||
try: | ||
requests.post(self.target, data=json.dumps(body), headers=self.header) | ||
except Exception as e: | ||
logging.error(e) | ||
|
||
|
||
class ProjectWebHook(WebHook): | ||
project = models.ForeignKey('kaplancloudapp.Project', on_delete=models.CASCADE) | ||
|
||
def fire_hook(self): | ||
return super().fire_hook({'id': self.project.id, 'status': self.project.get_status()}) | ||
|
||
|
||
class ProjectFileWebHook(WebHook): | ||
project_file = models.ForeignKey('kaplancloudapp.ProjectFile', on_delete=models.CASCADE) | ||
|
||
def fire_hook(self): | ||
return super().fire_hook({'id': self.project_file.id, 'status': self.project_file.get_status()}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
from django.contrib.auth.models import Group, User | ||
from django.contrib.auth.hashers import make_password | ||
|
||
from rest_framework import serializers | ||
|
||
from kaplancloudapi.models import ProjectWebHook, ProjectFileWebHook | ||
|
||
from kaplancloudapp.models import ( | ||
Client, LanguageProfile, Project, ProjectFile, | ||
ProjectReferenceFile, TranslationMemory, file_statuses, project_statuses | ||
) | ||
|
||
|
||
class ClientSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = Client | ||
fields = ('id', 'name', 'team') | ||
|
||
|
||
class GroupSerializer(serializers.ModelSerializer): | ||
id = serializers.ReadOnlyField() | ||
|
||
class Meta: | ||
model = Group | ||
fields = '__all__' | ||
|
||
|
||
class LanguageProfileSerializer(serializers.ModelSerializer): | ||
is_ltr = serializers.BooleanField(default=True, initial=True) | ||
|
||
class Meta: | ||
model = LanguageProfile | ||
fields = ('id', 'name', 'iso_code', 'is_ltr') | ||
|
||
def create(self, validated_data): | ||
validated_data['created_by'] = self.context['request'].user | ||
|
||
return super().create(validated_data) | ||
|
||
|
||
class ProjectSerializer(serializers.ModelSerializer): | ||
status = serializers.ChoiceField(choices=project_statuses, default=0, initial=0) | ||
|
||
class Meta: | ||
model = Project | ||
fields = ( | ||
'id', 'uuid', 'name', 'source_language', 'target_language', 'client', | ||
'managed_by', 'status', 'translationmemories', 'due_by', '_are_all_files_submitted', | ||
) | ||
|
||
def create(self, validated_data): | ||
validated_data['created_by'] = self.context['request'].user | ||
|
||
return super().create(validated_data) | ||
|
||
|
||
class ProjectWebHookSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = ProjectWebHook | ||
fields = '__all__' | ||
|
||
|
||
class ProjectFileSerializer(serializers.ModelSerializer): | ||
status = serializers.ChoiceField(choices=file_statuses, default=0, initial=0) | ||
|
||
class Meta: | ||
model = ProjectFile | ||
exclude = ('bilingual_file', 'source_language', 'target_language') | ||
|
||
|
||
class ProjectFileWebHookSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = ProjectFileWebHook | ||
fields = '__all__' | ||
|
||
|
||
class ProjectReferenceFileSerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = ProjectReferenceFile | ||
fields = ('id', 'uuid', 'name', 'reference_file', 'project') | ||
|
||
|
||
class TranslationMemorySerializer(serializers.ModelSerializer): | ||
class Meta: | ||
model = TranslationMemory | ||
fields = ('id', 'uuid', 'name', 'source_language', 'target_language', 'client') | ||
|
||
def create(self, validated_data): | ||
validated_data['created_by'] = self.context['request'].user | ||
|
||
return super().create(validated_data) | ||
|
||
|
||
class UserSerializer(serializers.ModelSerializer): | ||
password = serializers.CharField(write_only=True, required=False, style={'input_type': 'password'}) | ||
is_active = serializers.BooleanField(initial=True) | ||
|
||
class Meta: | ||
model = User | ||
fields = ('id', 'username', 'password', 'email', 'is_active', 'groups') | ||
|
||
def create(self, validated_data): | ||
validated_data['password'] = make_password(validated_data.get('password')) | ||
|
||
return super().create(validated_data) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
from django.db.models.signals import post_save | ||
from django.dispatch import receiver | ||
|
||
from kaplancloudapi.models import ProjectWebHook, ProjectFileWebHook | ||
from kaplancloudapp.models import Project, ProjectFile | ||
|
||
@receiver(post_save, sender=Project) | ||
def on_project_saved(sender, instance, **kwargs): | ||
for project_webhook in ProjectWebHook.objects.filter(project=instance): | ||
project_webhook.fire_hook() | ||
|
||
@receiver(post_save, sender=ProjectFile) | ||
def on_project_file_saved(sender, instance, **kwargs): | ||
for project_file_webhook in ProjectFileWebHook.objects.filter(project_file=instance): | ||
project_file_webhook.fire_hook() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from django.test import TestCase | ||
|
||
# Create your tests here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
from django.urls import include, path | ||
from rest_framework import routers | ||
|
||
from . import views | ||
|
||
router = routers.DefaultRouter() | ||
router.register(r'clients', views.ClientViewSet) | ||
router.register(r'groups', views.GroupViewSet) | ||
router.register(r'language-profiles', views.LanguageProfileViewSet) | ||
router.register(r'projects', views.ProjectViewSet) | ||
router.register(r'project-webhooks', views.ProjectWebHookViewSet) | ||
router.register(r'project-files', views.ProjectFileViewSet) | ||
router.register(r'project-file-webhooks', views.ProjectFileWebHookViewSet) | ||
router.register(r'project-reference-files', views.ProjectReferenceFileViewSet) | ||
router.register(r'translation-memories', views.TranslationMemoryViewSet) | ||
router.register(r'users', views.UserViewSet) | ||
|
||
urlpatterns = [ | ||
path('', include(router.urls)), | ||
] |
Oops, something went wrong.