Compare commits
61 Commits
a147272655
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
448ab1f2e7 | ||
| 4c1f5951b0 | |||
| d0e4e0eec1 | |||
|
|
ac6e5e5638 | ||
| 0cd966c316 | |||
| 26e860f3b9 | |||
|
|
57ff385b02 | ||
| 81c3910ff1 | |||
| 9f1b1eed7e | |||
|
|
cca6c95762 | ||
| 92ce9f948a | |||
|
|
a8e2103eed | ||
| 24d60a8467 | |||
| e521fed916 | |||
| 9e5582a577 | |||
|
|
fa54e54ac6 | ||
| 46275fae35 | |||
|
|
3935e10a99 | ||
| adfc921c21 | |||
|
|
c336fd9346 | ||
| c2a6607dec | |||
|
|
a11c8de7c1 | ||
| 98062bc2ea | |||
|
|
1874518ea2 | ||
| 2a02d81104 | |||
| 9956aa9731 | |||
|
|
a7cbc3aec7 | ||
| b55a682286 | |||
|
|
02e070f52e | ||
| 6daed93ed5 | |||
| db1649e8e3 | |||
|
|
d8b3510925 | ||
| 243d75f324 | |||
|
|
8ae2d13648 | ||
| d89023b17e | |||
| dbf5a0cd1c | |||
|
|
296ac3b9d0 | ||
| 7f6c894493 | |||
|
|
962aec2243 | ||
| e6972f91a2 | |||
|
|
3b7f452f3f | ||
| 78e687ff7c | |||
| 26831ec466 | |||
|
|
2ee0e53ab0 | ||
| a561fd47c2 | |||
|
|
118f4bd42a | ||
| ec5930099b | |||
|
|
e2cd6bc990 | ||
| 39efdd0dac | |||
| dd97dd291c | |||
|
|
169460d5c8 | ||
| 949617c18e | |||
| 597f134997 | |||
|
|
6d6a4b78e9 | ||
| 008fe7676b | |||
| 001b108888 | |||
|
|
49c3cb2364 | ||
| c7ca904caa | |||
|
|
7a7765c10b | ||
| b634a12c6a | |||
|
|
d7823fcebc |
@@ -65,10 +65,7 @@ jobs:
|
|||||||
|
|
||||||
# Push les modifications
|
# Push les modifications
|
||||||
git push origin master
|
git push origin master
|
||||||
- name: Run Changelog CI
|
|
||||||
uses: saadmk11/changelog-ci@v1.1.2
|
|
||||||
with:
|
|
||||||
release_version: ${{ steps.increment_version.outputs.new_version }}
|
|
||||||
|
|
||||||
- name: Use server_config_default as primary
|
- name: Use server_config_default as primary
|
||||||
run: mv /workspace/CLERC/Reskreen/config/server_config_default.py /workspace/CLERC/Reskreen/config/server_config.py
|
run: mv /workspace/CLERC/Reskreen/config/server_config_default.py /workspace/CLERC/Reskreen/config/server_config.py
|
||||||
@@ -91,10 +88,9 @@ jobs:
|
|||||||
docker push registry.resk-u.ch/clerc/reskreen:latest
|
docker push registry.resk-u.ch/clerc/reskreen:latest
|
||||||
|
|
||||||
|
|
||||||
- name: Call webhook $ {{ vars.CLERC_PROD_WEBHOOK}}
|
- name: Call webhook to maj stack
|
||||||
run: |
|
run: |
|
||||||
echo "Exécution de la commande: curl ${{ vars.CLERC_PROD_WEBHOOK }}"?repo=reskreen
|
curl -H "Authorization: Bearer ${{ secrets.WEBHOOK_TOKEN_RESKREEN }}" ${{ vars.CLERC_PROD_WEBHOOK }}/reskreen
|
||||||
curl ${{ vars.CLERC_PROD_WEBHOOK }}?repo=reskreen
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
test
|
test
|
||||||
test 2
|
test 2
|
||||||
test 3
|
test 3
|
||||||
|
test 4
|
||||||
@@ -19,6 +19,6 @@ RUN python -m venv venv \
|
|||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
#CMD ["python", "manage.py", "runserver", "0.0.0.0:8080"]
|
#CMD ["python", "manage.py", "runserver", "0.0.0.0:8080"]
|
||||||
CMD ["sh", "-c", "source venv/bin/activate && python manage.py runserver 0.0.0.0:8080"]
|
CMD ["sh", "-c", "source venv/bin/activate && python manage.py collectstatic && python manage.py runserver 0.0.0.0:8080"]
|
||||||
#CMD ["./startup.sh"]
|
#CMD ["./startup.sh"]
|
||||||
|
|
||||||
|
|||||||
@@ -89,8 +89,6 @@ REST_FRAMEWORK = {
|
|||||||
|
|
||||||
LANGUAGE_CODE = 'fr-CH'
|
LANGUAGE_CODE = 'fr-CH'
|
||||||
|
|
||||||
if not cfg_dev_mode:
|
|
||||||
INSTALLED_APPS.append('nextcloud.apps.NextcloudConfig')
|
|
||||||
|
|
||||||
|
|
||||||
MEDIA_URL = '/media/'
|
MEDIA_URL = '/media/'
|
||||||
|
|||||||
@@ -19,10 +19,15 @@ from django.urls import path, include
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
from django.views.generic import RedirectView
|
from django.views.generic import RedirectView
|
||||||
|
from django.http import JsonResponse
|
||||||
|
from . import views
|
||||||
|
def healthcheck(request):
|
||||||
|
return JsonResponse({'status': True})
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', RedirectView.as_view(url='admin/login/', permanent=False), name='/'),
|
path('', RedirectView.as_view(url='admin/login/', permanent=False), name='/'),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
|
path('robots.txt', views.robots_txt),
|
||||||
path('accounts/', admin.site.urls),
|
path('accounts/', admin.site.urls),
|
||||||
path('collabs/', include('collabs.urls')),
|
path('collabs/', include('collabs.urls')),
|
||||||
path('vehicules/', include('vehicles.urls')),
|
path('vehicules/', include('vehicles.urls')),
|
||||||
@@ -35,6 +40,7 @@ urlpatterns = [
|
|||||||
path('editor/', include('django_summernote.urls')),
|
path('editor/', include('django_summernote.urls')),
|
||||||
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
|
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
|
||||||
path('api/auth/', include('authapp.urls')),
|
path('api/auth/', include('authapp.urls')),
|
||||||
|
path('healthcheck/', healthcheck),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
4
Reskreen/views.py
Normal file
4
Reskreen/views.py
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
|
def robots_txt(request):
|
||||||
|
return HttpResponse("User-agent: *\nDisallow: /\n", content_type="text/plain")
|
||||||
@@ -17,7 +17,7 @@ class CustomAuthToken(ObtainAuthToken):
|
|||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
response = super().post(request, *args, **kwargs)
|
response = super().post(request, *args, **kwargs)
|
||||||
token = Token.objects.get(key=response.data['token'])
|
token = Token.objects.get(key=response.data['token'])
|
||||||
return Response({'token': token.key, 'user_id': token.user_id})
|
return Response({'token': token.key, 'user_id': token.user_id, 'username': token.user.username})
|
||||||
|
|
||||||
class RegenerateTokenView(APIView):
|
class RegenerateTokenView(APIView):
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import os
|
import os
|
||||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||||
cfg_dev_mode = True
|
cfg_dev_mode = False
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
SECRET_KEY = 'django-insecure'
|
||||||
#SECRET_KEY = 'django-prod-j4jd&+4j^t_=@zr(#q@n!8e*58vkql6&_6w-t14ju8pw%ei%^s'
|
|
||||||
SECRET_KEY = 'django-insecure-j4jd&+4j^t_=@zr(#q@n!8e*58vkql6&_6w-t14ju8pw%ei%^s'
|
|
||||||
|
|
||||||
|
|
||||||
cfg_status_badge = "https://status.resk-u.ch/api/badge/22/uptime/744"
|
cfg_status_badge = "https://status.resk-u.ch/api/badge/22/uptime/744"
|
||||||
@@ -29,6 +27,7 @@ CORS_ALLOWED_ORIGINS = [
|
|||||||
"http://33.144.144.13:4173",
|
"http://33.144.144.13:4173",
|
||||||
"http://33.144.144.13:5173",
|
"http://33.144.144.13:5173",
|
||||||
"http://33.144.144.13:3000",
|
"http://33.144.144.13:3000",
|
||||||
|
"http://100.126.38.72:5173",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
# Exécute la tâche cron toutes les heures
|
# Exécute la tâche cron toutes les minutes
|
||||||
* * * * * cd /app && python /app/manage.py runcrons > /var/log/runcrons.log
|
* * * * * cd /app && python /app/manage.py runcrons > /var/log/runcrons.log
|
||||||
|
* * * * * curl -s https://status.resk-u.ch/api/push/6zvssVZGQEkLTJACSfHbKoj3rgwArwtp?status=up\&msg=OK\&ping= > /dev/null 2>&1
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ version: '3.8'
|
|||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
image: registry.resk-u.ch/clerc/reskreen:latest
|
image: registry.resk-u.ch/clerc/reskreen:latest
|
||||||
labels:
|
|
||||||
node.labels.reskreen-ready: 'true'
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
@@ -32,19 +30,6 @@ services:
|
|||||||
- main-swarm-network
|
- main-swarm-network
|
||||||
logging:
|
logging:
|
||||||
driver: json-file
|
driver: json-file
|
||||||
frontend:
|
|
||||||
image: registry.resk-u.ch/clerc/clerc-frontend:latest
|
|
||||||
labels:
|
|
||||||
node.labels.reskreen-ready: 'true'
|
|
||||||
|
|
||||||
networks:
|
|
||||||
- main-swarm-network
|
|
||||||
configs:
|
|
||||||
-
|
|
||||||
source: env-reskreen-frontend
|
|
||||||
target: /app/frontend-app/.env
|
|
||||||
logging:
|
|
||||||
driver: json-file
|
|
||||||
deploy:
|
deploy:
|
||||||
update_config:
|
update_config:
|
||||||
delay: 10s
|
delay: 10s
|
||||||
@@ -54,8 +39,21 @@ services:
|
|||||||
placement:
|
placement:
|
||||||
constraints:
|
constraints:
|
||||||
- node.labels.reskreen-ready==true
|
- node.labels.reskreen-ready==true
|
||||||
|
frontend:
|
||||||
|
image: registry.resk-u.ch/clerc/clerc-frontend:latest
|
||||||
|
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- main-swarm-network
|
||||||
|
configs:
|
||||||
|
-
|
||||||
|
source: env-reskreen-frontend
|
||||||
|
target: /app/frontend-app/.env
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:3000/"]
|
test: ["CMD", "curl", "-f", "http://localhost:3000/healthcheck"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
|
|||||||
@@ -204,9 +204,9 @@ class cls_caldav():
|
|||||||
if "$" in item.key:
|
if "$" in item.key:
|
||||||
item.team_transfert = True
|
item.team_transfert = True
|
||||||
item.key = item.key.replace("$","")
|
item.key = item.key.replace("$","")
|
||||||
if "Manif" in item.key:
|
if "manif" in item.key.lower():
|
||||||
item.team_manif = True
|
item.team_manif = True
|
||||||
item.key = item.key.replace("Manif", "")
|
item.key = item.key.replace("manif", "").replace("Manif", "").replace("MANIF", "")
|
||||||
item.name = arr[1]
|
item.name = arr[1]
|
||||||
if "&" in item.name:
|
if "&" in item.name:
|
||||||
arr = item.name.split("&")
|
arr = item.name.split("&")
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ def view_team_caldav(request):
|
|||||||
o_caldav = cls_caldav(url=caldav_cfg["team"])
|
o_caldav = cls_caldav(url=caldav_cfg["team"])
|
||||||
o_caldav.get_caldav_data(periode=3)
|
o_caldav.get_caldav_data(periode=3)
|
||||||
template = loader.get_template("team/team_view.html")
|
template = loader.get_template("team/team_view.html")
|
||||||
o_caldav.sort_array_by_key(True)
|
o_caldav.sort_array_by_key(False)
|
||||||
|
|
||||||
response = formatResponseArray(o_caldav)
|
response = formatResponseArray(o_caldav)
|
||||||
additional_data = {
|
additional_data = {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from vehicles.models import *
|
|||||||
|
|
||||||
class _vhc_admin(admin.ModelAdmin):
|
class _vhc_admin(admin.ModelAdmin):
|
||||||
|
|
||||||
list_display = ('sName', 'nBases', 'nStatus', "bLucas","bDrap")
|
list_display = ('sName', 'nBases', 'nStatus', "bLucas","bDrap", "nOrder")
|
||||||
ordering = ["nOrder"]
|
ordering = ["nOrder"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,10 @@ class cl_Vehicles_Serializer(serializers.ModelSerializer):
|
|||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
def get_technique_infos(self, obj):
|
def get_technique_infos(self, obj):
|
||||||
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=1)
|
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=1).order_by('-dtCreated')
|
||||||
return cl_Vehicles_infos_Serializer(enabled_infos, many=True).data
|
return cl_Vehicles_infos_Serializer(enabled_infos, many=True).data
|
||||||
def get_matos_infos(self, obj):
|
def get_matos_infos(self, obj):
|
||||||
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=2)
|
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=2).order_by('-dtCreated')
|
||||||
return cl_Vehicles_infos_Serializer(enabled_infos, many=True).data
|
return cl_Vehicles_infos_Serializer(enabled_infos, many=True).data
|
||||||
def get_perempt_infos_fixes(self, obj):
|
def get_perempt_infos_fixes(self, obj):
|
||||||
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=3)[:3]
|
enabled_infos = Vehicles_infos.objects.filter(Vehicle=obj, bEnabled=True, nType=3)[:3]
|
||||||
|
|||||||
@@ -20,9 +20,12 @@ class VehicleViewset(viewsets.ModelViewSet):
|
|||||||
ordering = ['nType', 'nStatus', 'nOrder'] # Ordre par défaut
|
ordering = ['nType', 'nStatus', 'nOrder'] # Ordre par défaut
|
||||||
|
|
||||||
class VehicleInfosViewset(viewsets.ModelViewSet):
|
class VehicleInfosViewset(viewsets.ModelViewSet):
|
||||||
queryset = Vehicles_infos.objects.all()
|
queryset = Vehicles_infos.objects.all().order_by('-id')
|
||||||
serializer_class = cl_Vehicles_infos_Serializer
|
serializer_class = cl_Vehicles_infos_Serializer
|
||||||
permission_classes = [CustomPermission_DjangoModel_based]
|
permission_classes = [CustomPermission_DjangoModel_based]
|
||||||
|
ordering_fields = ['dtCreated']
|
||||||
|
ordering = ['dtCreated']
|
||||||
|
|
||||||
|
|
||||||
@xframe_options_exempt
|
@xframe_options_exempt
|
||||||
def view_vhc(request):
|
def view_vhc(request):
|
||||||
|
|||||||
Reference in New Issue
Block a user