Rename project to Trainvel
|
@ -6,7 +6,7 @@ import sys
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
"""Run administrative tasks."""
|
"""Run administrative tasks."""
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sncf.settings")
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trainvel.settings")
|
||||||
try:
|
try:
|
||||||
from django.core.management import execute_from_command_line
|
from django.core.management import execute_from_command_line
|
||||||
except ImportError as exc:
|
except ImportError as exc:
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
# https://www.robotstxt.org/robotstxt.html
|
|
||||||
User-agent: *
|
|
||||||
Disallow:
|
|
|
@ -1,6 +0,0 @@
|
||||||
Django>=5.0,<6.0
|
|
||||||
django-cors-headers
|
|
||||||
django-filter
|
|
||||||
djangorestframework
|
|
||||||
protobuf
|
|
||||||
requests
|
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "sncf-station",
|
"name": "trainvel-front",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "sncf-station",
|
"name": "trainvel-front",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.11.3",
|
"@emotion/react": "^11.11.3",
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "sncf-station",
|
"name": "trainvel-front",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -7,7 +7,7 @@
|
||||||
<meta name="theme-color" content="#000000" />
|
<meta name="theme-color" content="#000000" />
|
||||||
<meta
|
<meta
|
||||||
name="description"
|
name="description"
|
||||||
content="Écrans en gare affichant les horaires des trains des gares SNCF."
|
content="Écrans en gare affichant les horaires des trains des gares."
|
||||||
/>
|
/>
|
||||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||||
|
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
@ -18,7 +18,7 @@ function App() {
|
||||||
element: <Home />,
|
element: <Home />,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/station/:stopId",
|
path: "/station/:theme/:stopId",
|
||||||
element: <Station />
|
element: <Station />
|
||||||
}
|
}
|
||||||
])
|
])
|
|
@ -5,11 +5,11 @@ function Home() {
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
|
|
||||||
function onStationSelected(event, stop) {
|
function onStationSelected(event, stop) {
|
||||||
navigate(`/station/${stop.id}/`)
|
navigate(`/station/sncf/${stop.id}/`)
|
||||||
}
|
}
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
<h1>Horaires SNCF</h1>
|
<h1>Horaires des trains</h1>
|
||||||
<h2>
|
<h2>
|
||||||
Choisissez une gare dont vous désirez connaître le tableau des prochains départs et arrivées :
|
Choisissez une gare dont vous désirez connaître le tableau des prochains départs et arrivées :
|
||||||
</h2>
|
</h2>
|
|
@ -12,7 +12,7 @@ function DateTimeSelector({stop, date, time}) {
|
||||||
|
|
||||||
function onStationSelected(event, stop) {
|
function onStationSelected(event, stop) {
|
||||||
if (stop !== null)
|
if (stop !== null)
|
||||||
navigate(`/station/${stop.id}/`)
|
navigate(`/station/sncf/${stop.id}/`)
|
||||||
}
|
}
|
||||||
|
|
||||||
return <>
|
return <>
|
||||||
|
@ -32,7 +32,7 @@ function DateTimeSelector({stop, date, time}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function Station() {
|
function Station() {
|
||||||
let {stopId} = useParams()
|
let {stopId, theme} = useParams()
|
||||||
let [searchParams, _setSearchParams] = useSearchParams()
|
let [searchParams, _setSearchParams] = useSearchParams()
|
||||||
const now = new Date()
|
const now = new Date()
|
||||||
let dateNow = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`
|
let dateNow = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
@ -3,4 +3,4 @@ from django.apps import AppConfig
|
||||||
|
|
||||||
class ApiConfig(AppConfig):
|
class ApiConfig(AppConfig):
|
||||||
default_auto_field = "django.db.models.BigAutoField"
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
name = "sncf.api"
|
name = "trainvel.api"
|
|
@ -1,6 +1,6 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from sncfgtfs.models import Agency, Stop, Route, Trip, StopTime, Calendar, CalendarDate, \
|
from trainvel.gtfs.models import Agency, Stop, Route, Trip, StopTime, Calendar, CalendarDate, \
|
||||||
Transfer, FeedInfo, TripUpdate, StopTimeUpdate
|
Transfer, FeedInfo, TripUpdate, StopTimeUpdate
|
||||||
|
|
||||||
|
|
|
@ -8,10 +8,10 @@ from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework.filters import OrderingFilter, SearchFilter
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
||||||
|
|
||||||
from sncf.api.serializers import AgencySerializer, StopSerializer, RouteSerializer, TripSerializer, \
|
from trainvel.api.serializers import AgencySerializer, StopSerializer, RouteSerializer, TripSerializer, \
|
||||||
StopTimeSerializer, CalendarSerializer, CalendarDateSerializer, TransferSerializer, \
|
StopTimeSerializer, CalendarSerializer, CalendarDateSerializer, TransferSerializer, \
|
||||||
FeedInfoSerializer, TripUpdateSerializer, StopTimeUpdateSerializer
|
FeedInfoSerializer, TripUpdateSerializer, StopTimeUpdateSerializer
|
||||||
from sncfgtfs.models import Agency, Calendar, CalendarDate, FeedInfo, GTFSFeed, Route, Stop, StopTime, StopTimeUpdate, \
|
from trainvel.gtfs.models import Agency, Calendar, CalendarDate, FeedInfo, GTFSFeed, Route, Stop, StopTime, StopTimeUpdate, \
|
||||||
Transfer, Trip, TripUpdate
|
Transfer, Trip, TripUpdate
|
||||||
|
|
||||||
CACHE_CONTROL = cache_control(max_age=7200)
|
CACHE_CONTROL = cache_control(max_age=7200)
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
ASGI config for sncf project.
|
ASGI config for trainvel project.
|
||||||
|
|
||||||
It exposes the ASGI callable as a module-level variable named ``application``.
|
It exposes the ASGI callable as a module-level variable named ``application``.
|
||||||
|
|
||||||
|
@ -11,6 +11,6 @@ import os
|
||||||
|
|
||||||
from django.core.asgi import get_asgi_application
|
from django.core.asgi import get_asgi_application
|
||||||
|
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sncf.settings")
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trainvel.settings")
|
||||||
|
|
||||||
application = get_asgi_application()
|
application = get_asgi_application()
|
|
@ -1,7 +1,7 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.forms import BaseInlineFormSet
|
from django.forms import BaseInlineFormSet
|
||||||
|
|
||||||
from sncfgtfs.models import Agency, Calendar, CalendarDate, FeedInfo, GTFSFeed, \
|
from trainvel.gtfs.models import Agency, Calendar, CalendarDate, FeedInfo, GTFSFeed, \
|
||||||
Route, Stop, StopTime, StopTimeUpdate, Transfer, Trip, TripUpdate
|
Route, Stop, StopTime, StopTimeUpdate, Transfer, Trip, TripUpdate
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
class SncfgtfsConfig(AppConfig):
|
class TrainvelGTFSConfig(AppConfig):
|
||||||
default_auto_field = "django.db.models.BigAutoField"
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
name = "sncfgtfs"
|
name = "trainvel.gtfs"
|
|
@ -1,6 +1,6 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "FR-SNCF-TGV",
|
"pk": "FR-SNCF-TGV",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "SNCF - TGV",
|
"name": "SNCF - TGV",
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "FR-SNCF-IC",
|
"pk": "FR-SNCF-IC",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "SNCF - Intercités",
|
"name": "SNCF - Intercités",
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "FR-SNCF-TER",
|
"pk": "FR-SNCF-TER",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "SNCF - TER",
|
"name": "SNCF - TER",
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "FR-IDF-TN",
|
"pk": "FR-IDF-TN",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "SNCF - Transilien",
|
"name": "SNCF - Transilien",
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "FR-EUROSTAR",
|
"pk": "FR-EUROSTAR",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "Eurostar",
|
"name": "Eurostar",
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "IT-FRA-TI",
|
"pk": "IT-FRA-TI",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "Trenitalia France",
|
"name": "Trenitalia France",
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "ES-RENFE",
|
"pk": "ES-RENFE",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "Renfe",
|
"name": "Renfe",
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "AT-ÖBB",
|
"pk": "AT-ÖBB",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "ÖBB",
|
"name": "ÖBB",
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"model": "sncfgtfs.gtfsfeed",
|
"model": "gtfs.gtfsfeed",
|
||||||
"pk": "CH-ALL",
|
"pk": "CH-ALL",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": "Transports suisses",
|
"name": "Transports suisses",
|
|
@ -2,7 +2,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1.0\n"
|
"Project-Id-Version: 1.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-05-09 19:27+0200\n"
|
"POT-Creation-Date: 2024-05-09 19:34+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Emmy D'Anello <ynerant@emy.lu>\n"
|
"Last-Translator: Emmy D'Anello <ynerant@emy.lu>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -12,355 +12,355 @@ msgstr ""
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:11
|
#: trainvel/gtfs/models.py:11
|
||||||
msgid "Albania"
|
msgid "Albania"
|
||||||
msgstr "Albanie"
|
msgstr "Albanie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:12
|
#: trainvel/gtfs/models.py:12
|
||||||
msgid "Andorra"
|
msgid "Andorra"
|
||||||
msgstr "Andorre"
|
msgstr "Andorre"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:13
|
#: trainvel/gtfs/models.py:13
|
||||||
msgid "Armenia"
|
msgid "Armenia"
|
||||||
msgstr "Arménie"
|
msgstr "Arménie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:14
|
#: trainvel/gtfs/models.py:14
|
||||||
msgid "Austria"
|
msgid "Austria"
|
||||||
msgstr "Autriche"
|
msgstr "Autriche"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:15
|
#: trainvel/gtfs/models.py:15
|
||||||
msgid "Azerbaijan"
|
msgid "Azerbaijan"
|
||||||
msgstr "Azerbaijan"
|
msgstr "Azerbaijan"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:16
|
#: trainvel/gtfs/models.py:16
|
||||||
msgid "Belgium"
|
msgid "Belgium"
|
||||||
msgstr "Belgique"
|
msgstr "Belgique"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:17
|
#: trainvel/gtfs/models.py:17
|
||||||
msgid "Bosnia and Herzegovina"
|
msgid "Bosnia and Herzegovina"
|
||||||
msgstr " Bosnie-Herzégovine"
|
msgstr " Bosnie-Herzégovine"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:18
|
#: trainvel/gtfs/models.py:18
|
||||||
msgid "Bulgaria"
|
msgid "Bulgaria"
|
||||||
msgstr "Bulgarie"
|
msgstr "Bulgarie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:19
|
#: trainvel/gtfs/models.py:19
|
||||||
msgid "Croatia"
|
msgid "Croatia"
|
||||||
msgstr "Croatie"
|
msgstr "Croatie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:20
|
#: trainvel/gtfs/models.py:20
|
||||||
msgid "Cyprus"
|
msgid "Cyprus"
|
||||||
msgstr "Chypre"
|
msgstr "Chypre"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:21
|
#: trainvel/gtfs/models.py:21
|
||||||
msgid "Czech Republic"
|
msgid "Czech Republic"
|
||||||
msgstr "République Tchèque"
|
msgstr "République Tchèque"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:22
|
#: trainvel/gtfs/models.py:22
|
||||||
msgid "Denmark"
|
msgid "Denmark"
|
||||||
msgstr "Danemark"
|
msgstr "Danemark"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:23
|
#: trainvel/gtfs/models.py:23
|
||||||
msgid "Estonia"
|
msgid "Estonia"
|
||||||
msgstr "Estonie"
|
msgstr "Estonie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:24
|
#: trainvel/gtfs/models.py:24
|
||||||
msgid "Finland"
|
msgid "Finland"
|
||||||
msgstr "Finlande"
|
msgstr "Finlande"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:25
|
#: trainvel/gtfs/models.py:25
|
||||||
msgid "France"
|
msgid "France"
|
||||||
msgstr "France"
|
msgstr "France"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:26
|
#: trainvel/gtfs/models.py:26
|
||||||
msgid "Georgia"
|
msgid "Georgia"
|
||||||
msgstr "Géorgie"
|
msgstr "Géorgie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:27
|
#: trainvel/gtfs/models.py:27
|
||||||
msgid "Germany"
|
msgid "Germany"
|
||||||
msgstr "Allemagne"
|
msgstr "Allemagne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:28
|
#: trainvel/gtfs/models.py:28
|
||||||
msgid "Greece"
|
msgid "Greece"
|
||||||
msgstr "Grèce"
|
msgstr "Grèce"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:29
|
#: trainvel/gtfs/models.py:29
|
||||||
msgid "Hungary"
|
msgid "Hungary"
|
||||||
msgstr "Hongrie"
|
msgstr "Hongrie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:30
|
#: trainvel/gtfs/models.py:30
|
||||||
msgid "Iceland"
|
msgid "Iceland"
|
||||||
msgstr "Islande"
|
msgstr "Islande"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:31
|
#: trainvel/gtfs/models.py:31
|
||||||
msgid "Ireland"
|
msgid "Ireland"
|
||||||
msgstr "Irlande"
|
msgstr "Irlande"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:32
|
#: trainvel/gtfs/models.py:32
|
||||||
msgid "Italy"
|
msgid "Italy"
|
||||||
msgstr "Italie"
|
msgstr "Italie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:33
|
#: trainvel/gtfs/models.py:33
|
||||||
msgid "Latvia"
|
msgid "Latvia"
|
||||||
msgstr "Lettonie"
|
msgstr "Lettonie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:34
|
#: trainvel/gtfs/models.py:34
|
||||||
msgid "Liechtenstein"
|
msgid "Liechtenstein"
|
||||||
msgstr "Liechtenstein"
|
msgstr "Liechtenstein"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:35
|
#: trainvel/gtfs/models.py:35
|
||||||
msgid "Lithuania"
|
msgid "Lithuania"
|
||||||
msgstr "Lituanie"
|
msgstr "Lituanie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:36
|
#: trainvel/gtfs/models.py:36
|
||||||
msgid "Luxembourg"
|
msgid "Luxembourg"
|
||||||
msgstr "Luxembourg"
|
msgstr "Luxembourg"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:37
|
#: trainvel/gtfs/models.py:37
|
||||||
msgid "Malta"
|
msgid "Malta"
|
||||||
msgstr "Malte"
|
msgstr "Malte"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:38
|
#: trainvel/gtfs/models.py:38
|
||||||
msgid "Moldova"
|
msgid "Moldova"
|
||||||
msgstr "Moldavie"
|
msgstr "Moldavie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:39
|
#: trainvel/gtfs/models.py:39
|
||||||
msgid "Monaco"
|
msgid "Monaco"
|
||||||
msgstr "Monaco"
|
msgstr "Monaco"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:40
|
#: trainvel/gtfs/models.py:40
|
||||||
msgid "Montenegro"
|
msgid "Montenegro"
|
||||||
msgstr "Monténégro"
|
msgstr "Monténégro"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:41
|
#: trainvel/gtfs/models.py:41
|
||||||
msgid "Netherlands"
|
msgid "Netherlands"
|
||||||
msgstr "Pays-Bas"
|
msgstr "Pays-Bas"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:42
|
#: trainvel/gtfs/models.py:42
|
||||||
msgid "North Macedonia"
|
msgid "North Macedonia"
|
||||||
msgstr "Macédoine du Nord"
|
msgstr "Macédoine du Nord"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:43
|
#: trainvel/gtfs/models.py:43
|
||||||
msgid "Norway"
|
msgid "Norway"
|
||||||
msgstr "Norvège"
|
msgstr "Norvège"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:44
|
#: trainvel/gtfs/models.py:44
|
||||||
msgid "Poland"
|
msgid "Poland"
|
||||||
msgstr "Pologne"
|
msgstr "Pologne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:45
|
#: trainvel/gtfs/models.py:45
|
||||||
msgid "Portugal"
|
msgid "Portugal"
|
||||||
msgstr "Portugal"
|
msgstr "Portugal"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:46
|
#: trainvel/gtfs/models.py:46
|
||||||
msgid "Romania"
|
msgid "Romania"
|
||||||
msgstr "Roumanie"
|
msgstr "Roumanie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:47
|
#: trainvel/gtfs/models.py:47
|
||||||
msgid "San Marino"
|
msgid "San Marino"
|
||||||
msgstr "Saint-Marin"
|
msgstr "Saint-Marin"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:48
|
#: trainvel/gtfs/models.py:48
|
||||||
msgid "Serbia"
|
msgid "Serbia"
|
||||||
msgstr "Serbie"
|
msgstr "Serbie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:49
|
#: trainvel/gtfs/models.py:49
|
||||||
msgid "Slovakia"
|
msgid "Slovakia"
|
||||||
msgstr "Slovaquie"
|
msgstr "Slovaquie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:50
|
#: trainvel/gtfs/models.py:50
|
||||||
msgid "Slovenia"
|
msgid "Slovenia"
|
||||||
msgstr "Slovénie"
|
msgstr "Slovénie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:51
|
#: trainvel/gtfs/models.py:51
|
||||||
msgid "Spain"
|
msgid "Spain"
|
||||||
msgstr "Espagne"
|
msgstr "Espagne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:52
|
#: trainvel/gtfs/models.py:52
|
||||||
msgid "Sweden"
|
msgid "Sweden"
|
||||||
msgstr "Suède"
|
msgstr "Suède"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:53
|
#: trainvel/gtfs/models.py:53
|
||||||
msgid "Switzerland"
|
msgid "Switzerland"
|
||||||
msgstr "Suisse"
|
msgstr "Suisse"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:54
|
#: trainvel/gtfs/models.py:54
|
||||||
msgid "Turkey"
|
msgid "Turkey"
|
||||||
msgstr "Turquie"
|
msgstr "Turquie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:55
|
#: trainvel/gtfs/models.py:55
|
||||||
msgid "United Kingdom"
|
msgid "United Kingdom"
|
||||||
msgstr "Royaume-Uni"
|
msgstr "Royaume-Uni"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:56
|
#: trainvel/gtfs/models.py:56
|
||||||
msgid "Ukraine"
|
msgid "Ukraine"
|
||||||
msgstr "Ukraine"
|
msgstr "Ukraine"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:60
|
#: trainvel/gtfs/models.py:60
|
||||||
msgid "Stop/platform"
|
msgid "Stop/platform"
|
||||||
msgstr "Arrêt / quai"
|
msgstr "Arrêt / quai"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:61
|
#: trainvel/gtfs/models.py:61
|
||||||
msgid "Station"
|
msgid "Station"
|
||||||
msgstr "Gare"
|
msgstr "Gare"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:62
|
#: trainvel/gtfs/models.py:62
|
||||||
msgid "Entrance/exit"
|
msgid "Entrance/exit"
|
||||||
msgstr "Entrée / sortie"
|
msgstr "Entrée / sortie"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:63
|
#: trainvel/gtfs/models.py:63
|
||||||
msgid "Generic node"
|
msgid "Generic node"
|
||||||
msgstr "Nœud générique"
|
msgstr "Nœud générique"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:64
|
#: trainvel/gtfs/models.py:64
|
||||||
msgid "Boarding area"
|
msgid "Boarding area"
|
||||||
msgstr "Zone d'embarquement"
|
msgstr "Zone d'embarquement"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:68
|
#: trainvel/gtfs/models.py:68
|
||||||
msgid "No information"
|
msgid "No information"
|
||||||
msgstr "Pas d'information"
|
msgstr "Pas d'information"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:69
|
#: trainvel/gtfs/models.py:69
|
||||||
msgid "Possible"
|
msgid "Possible"
|
||||||
msgstr "Possible"
|
msgstr "Possible"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:70 sncfgtfs/models.py:100
|
#: trainvel/gtfs/models.py:70 trainvel/gtfs/models.py:100
|
||||||
msgid "Not possible"
|
msgid "Not possible"
|
||||||
msgstr "Impossible"
|
msgstr "Impossible"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:74
|
#: trainvel/gtfs/models.py:74
|
||||||
msgid "Regular"
|
msgid "Regular"
|
||||||
msgstr "Régulier"
|
msgstr "Régulier"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:75
|
#: trainvel/gtfs/models.py:75
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Aucun"
|
msgstr "Aucun"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:76
|
#: trainvel/gtfs/models.py:76
|
||||||
msgid "Must phone agency"
|
msgid "Must phone agency"
|
||||||
msgstr "Doit téléphoner à l'agence"
|
msgstr "Doit téléphoner à l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:77
|
#: trainvel/gtfs/models.py:77
|
||||||
msgid "Must coordinate with driver"
|
msgid "Must coordinate with driver"
|
||||||
msgstr "Doit se coordonner avec læ conducteurice"
|
msgstr "Doit se coordonner avec læ conducteurice"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:81
|
#: trainvel/gtfs/models.py:81
|
||||||
msgid "Tram"
|
msgid "Tram"
|
||||||
msgstr "Tram"
|
msgstr "Tram"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:82
|
#: trainvel/gtfs/models.py:82
|
||||||
msgid "Metro"
|
msgid "Metro"
|
||||||
msgstr "Métro"
|
msgstr "Métro"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:83
|
#: trainvel/gtfs/models.py:83
|
||||||
msgid "Rail"
|
msgid "Rail"
|
||||||
msgstr "Rail"
|
msgstr "Rail"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:84
|
#: trainvel/gtfs/models.py:84
|
||||||
msgid "Bus"
|
msgid "Bus"
|
||||||
msgstr "Bus"
|
msgstr "Bus"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:85
|
#: trainvel/gtfs/models.py:85
|
||||||
msgid "Ferry"
|
msgid "Ferry"
|
||||||
msgstr "Ferry"
|
msgstr "Ferry"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:86
|
#: trainvel/gtfs/models.py:86
|
||||||
msgid "Cable car"
|
msgid "Cable car"
|
||||||
msgstr "Câble"
|
msgstr "Câble"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:87
|
#: trainvel/gtfs/models.py:87
|
||||||
msgid "Gondola"
|
msgid "Gondola"
|
||||||
msgstr "Gondole"
|
msgstr "Gondole"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:88
|
#: trainvel/gtfs/models.py:88
|
||||||
msgid "Funicular"
|
msgid "Funicular"
|
||||||
msgstr "Funiculaire"
|
msgstr "Funiculaire"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:92
|
#: trainvel/gtfs/models.py:92
|
||||||
msgid "Outbound"
|
msgid "Outbound"
|
||||||
msgstr "Vers l'extérieur"
|
msgstr "Vers l'extérieur"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:93
|
#: trainvel/gtfs/models.py:93
|
||||||
msgid "Inbound"
|
msgid "Inbound"
|
||||||
msgstr "Vers l'intérieur"
|
msgstr "Vers l'intérieur"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:97
|
#: trainvel/gtfs/models.py:97
|
||||||
msgid "Recommended"
|
msgid "Recommended"
|
||||||
msgstr "Recommandé"
|
msgstr "Recommandé"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:98
|
#: trainvel/gtfs/models.py:98
|
||||||
msgid "Timed"
|
msgid "Timed"
|
||||||
msgstr "Correspondance programmée"
|
msgstr "Correspondance programmée"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:99
|
#: trainvel/gtfs/models.py:99
|
||||||
msgid "Minimum time"
|
msgid "Minimum time"
|
||||||
msgstr "Temps de correspondance minimum requis"
|
msgstr "Temps de correspondance minimum requis"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:104 sncfgtfs/models.py:110
|
#: trainvel/gtfs/models.py:104 trainvel/gtfs/models.py:110
|
||||||
msgid "Added"
|
msgid "Added"
|
||||||
msgstr "Ajouté"
|
msgstr "Ajouté"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:105
|
#: trainvel/gtfs/models.py:105
|
||||||
msgid "Removed"
|
msgid "Removed"
|
||||||
msgstr "Supprimé"
|
msgstr "Supprimé"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:109 sncfgtfs/models.py:119
|
#: trainvel/gtfs/models.py:109 trainvel/gtfs/models.py:119
|
||||||
msgid "Scheduled"
|
msgid "Scheduled"
|
||||||
msgstr "Planifié"
|
msgstr "Planifié"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:111 sncfgtfs/models.py:122
|
#: trainvel/gtfs/models.py:111 trainvel/gtfs/models.py:122
|
||||||
msgid "Unscheduled"
|
msgid "Unscheduled"
|
||||||
msgstr "Non planifié"
|
msgstr "Non planifié"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:112
|
#: trainvel/gtfs/models.py:112
|
||||||
msgid "Canceled"
|
msgid "Canceled"
|
||||||
msgstr "Annulé"
|
msgstr "Annulé"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:113
|
#: trainvel/gtfs/models.py:113
|
||||||
msgid "Replacement"
|
msgid "Replacement"
|
||||||
msgstr "Remplacé"
|
msgstr "Remplacé"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:114
|
#: trainvel/gtfs/models.py:114
|
||||||
msgid "Duplicated"
|
msgid "Duplicated"
|
||||||
msgstr "Dupliqué"
|
msgstr "Dupliqué"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:115
|
#: trainvel/gtfs/models.py:115
|
||||||
msgid "Deleted"
|
msgid "Deleted"
|
||||||
msgstr "Supprimé"
|
msgstr "Supprimé"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:120
|
#: trainvel/gtfs/models.py:120
|
||||||
msgid "Skipped"
|
msgid "Skipped"
|
||||||
msgstr "Sauté"
|
msgstr "Sauté"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:121
|
#: trainvel/gtfs/models.py:121
|
||||||
msgid "No data"
|
msgid "No data"
|
||||||
msgstr "Pas de données"
|
msgstr "Pas de données"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:129
|
#: trainvel/gtfs/models.py:129
|
||||||
msgid "code"
|
msgid "code"
|
||||||
msgstr "code"
|
msgstr "code"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:130
|
#: trainvel/gtfs/models.py:130
|
||||||
msgid "Unique code of the feed."
|
msgid "Unique code of the feed."
|
||||||
msgstr "Code unique du flux."
|
msgstr "Code unique du flux."
|
||||||
|
|
||||||
#: sncfgtfs/models.py:135
|
#: trainvel/gtfs/models.py:135
|
||||||
msgid "name"
|
msgid "name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:137
|
#: trainvel/gtfs/models.py:137
|
||||||
msgid "Full name that describes the feed."
|
msgid "Full name that describes the feed."
|
||||||
msgstr "Nom complet qui décrit le flux."
|
msgstr "Nom complet qui décrit le flux."
|
||||||
|
|
||||||
#: sncfgtfs/models.py:142
|
#: trainvel/gtfs/models.py:142
|
||||||
msgid "country"
|
msgid "country"
|
||||||
msgstr "pays"
|
msgstr "pays"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:147
|
#: trainvel/gtfs/models.py:147
|
||||||
msgid "feed URL"
|
msgid "feed URL"
|
||||||
msgstr "URL du flux"
|
msgstr "URL du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:148
|
#: trainvel/gtfs/models.py:148
|
||||||
msgid ""
|
msgid ""
|
||||||
"URL to download the GTFS feed. Must point to a ZIP archive. See https://gtfs."
|
"URL to download the GTFS feed. Must point to a ZIP archive. See https://gtfs."
|
||||||
"org/schedule/ for more information."
|
"org/schedule/ for more information."
|
||||||
|
@ -368,11 +368,11 @@ msgstr ""
|
||||||
"URL où télécharger le flux GTFS. Doit pointer vers une archive ZIP. Voir "
|
"URL où télécharger le flux GTFS. Doit pointer vers une archive ZIP. Voir "
|
||||||
"https://gtfs.org/fr/schedule/ pour plus d'informations."
|
"https://gtfs.org/fr/schedule/ pour plus d'informations."
|
||||||
|
|
||||||
#: sncfgtfs/models.py:153
|
#: trainvel/gtfs/models.py:153
|
||||||
msgid "realtime feed URL"
|
msgid "realtime feed URL"
|
||||||
msgstr "URL du flux temps réel"
|
msgstr "URL du flux temps réel"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:156
|
#: trainvel/gtfs/models.py:156
|
||||||
msgid ""
|
msgid ""
|
||||||
"URL to download the GTFS-Realtime feed, in the GTFS-RT format. See https://"
|
"URL to download the GTFS-Realtime feed, in the GTFS-RT format. See https://"
|
||||||
"gtfs.org/realtime/ for more information."
|
"gtfs.org/realtime/ for more information."
|
||||||
|
@ -380,15 +380,15 @@ msgstr ""
|
||||||
"URL où télécharger le flux GTFS-Temps réel, au format GTFS-RT. Voir https://"
|
"URL où télécharger le flux GTFS-Temps réel, au format GTFS-RT. Voir https://"
|
||||||
"gtfs.org/fr/realtime/ pour plus d'informations."
|
"gtfs.org/fr/realtime/ pour plus d'informations."
|
||||||
|
|
||||||
#: sncfgtfs/models.py:161
|
#: trainvel/gtfs/models.py:161
|
||||||
msgid "last modified date"
|
msgid "last modified date"
|
||||||
msgstr "Date de dernière modification"
|
msgstr "Date de dernière modification"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:168
|
#: trainvel/gtfs/models.py:168
|
||||||
msgid "ETag"
|
msgid "ETag"
|
||||||
msgstr "ETag"
|
msgstr "ETag"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:171
|
#: trainvel/gtfs/models.py:171
|
||||||
msgid ""
|
msgid ""
|
||||||
"If applicable, corresponds to the tag of the last downloaded file. If it is "
|
"If applicable, corresponds to the tag of the last downloaded file. If it is "
|
||||||
"not modified, the file is the same."
|
"not modified, the file is the same."
|
||||||
|
@ -396,395 +396,397 @@ msgstr ""
|
||||||
"Si applicable, correspond au tag du dernier fichier téléchargé. S'il n'est "
|
"Si applicable, correspond au tag du dernier fichier téléchargé. S'il n'est "
|
||||||
"pas modifié, le fichier est considéré comme identique."
|
"pas modifié, le fichier est considéré comme identique."
|
||||||
|
|
||||||
#: sncfgtfs/models.py:179 sncfgtfs/models.py:226 sncfgtfs/models.py:326
|
#: trainvel/gtfs/models.py:179 trainvel/gtfs/models.py:226
|
||||||
#: sncfgtfs/models.py:405 sncfgtfs/models.py:486 sncfgtfs/models.py:696
|
#: trainvel/gtfs/models.py:326 trainvel/gtfs/models.py:405
|
||||||
#: sncfgtfs/models.py:811
|
#: trainvel/gtfs/models.py:486 trainvel/gtfs/models.py:696
|
||||||
|
#: trainvel/gtfs/models.py:811
|
||||||
msgid "GTFS feed"
|
msgid "GTFS feed"
|
||||||
msgstr "flux GTFS"
|
msgstr "flux GTFS"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:180
|
#: trainvel/gtfs/models.py:180
|
||||||
msgid "GTFS feeds"
|
msgid "GTFS feeds"
|
||||||
msgstr "flux GTFS"
|
msgstr "flux GTFS"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:189
|
#: trainvel/gtfs/models.py:189
|
||||||
msgid "Agency ID"
|
msgid "Agency ID"
|
||||||
msgstr "ID de l'agence"
|
msgstr "ID de l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:194
|
#: trainvel/gtfs/models.py:194
|
||||||
msgid "Agency name"
|
msgid "Agency name"
|
||||||
msgstr "Nom de l'agence"
|
msgstr "Nom de l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:198
|
#: trainvel/gtfs/models.py:198
|
||||||
msgid "Agency URL"
|
msgid "Agency URL"
|
||||||
msgstr "URL de l'agence"
|
msgstr "URL de l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:203
|
#: trainvel/gtfs/models.py:203
|
||||||
msgid "Agency timezone"
|
msgid "Agency timezone"
|
||||||
msgstr "Fuseau horaire de l'agence"
|
msgstr "Fuseau horaire de l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:208
|
#: trainvel/gtfs/models.py:208
|
||||||
msgid "Agency language"
|
msgid "Agency language"
|
||||||
msgstr "Langue de l'agence"
|
msgstr "Langue de l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:214
|
#: trainvel/gtfs/models.py:214
|
||||||
msgid "Agency phone"
|
msgid "Agency phone"
|
||||||
msgstr "Téléphone de l'agence"
|
msgstr "Téléphone de l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:219
|
#: trainvel/gtfs/models.py:219
|
||||||
msgid "Agency email"
|
msgid "Agency email"
|
||||||
msgstr "Adresse email de l'agence"
|
msgstr "Adresse email de l'agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:233 sncfgtfs/models.py:356
|
#: trainvel/gtfs/models.py:233 trainvel/gtfs/models.py:356
|
||||||
msgid "Agency"
|
msgid "Agency"
|
||||||
msgstr "Agence"
|
msgstr "Agence"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:234
|
#: trainvel/gtfs/models.py:234
|
||||||
msgid "Agencies"
|
msgid "Agencies"
|
||||||
msgstr "Agences"
|
msgstr "Agences"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:243 sncfgtfs/models.py:593
|
#: trainvel/gtfs/models.py:243 trainvel/gtfs/models.py:593
|
||||||
msgid "Stop ID"
|
msgid "Stop ID"
|
||||||
msgstr "ID de l'arrêt"
|
msgstr "ID de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:248
|
#: trainvel/gtfs/models.py:248
|
||||||
msgid "Stop code"
|
msgid "Stop code"
|
||||||
msgstr "Code de l'arrêt"
|
msgstr "Code de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:254
|
#: trainvel/gtfs/models.py:254
|
||||||
msgid "Stop name"
|
msgid "Stop name"
|
||||||
msgstr "Nom de l'arrêt"
|
msgstr "Nom de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:259
|
#: trainvel/gtfs/models.py:259
|
||||||
msgid "Stop description"
|
msgid "Stop description"
|
||||||
msgstr "Description de l'arrêt"
|
msgstr "Description de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:264
|
#: trainvel/gtfs/models.py:264
|
||||||
msgid "Stop longitude"
|
msgid "Stop longitude"
|
||||||
msgstr "Longitude de l'arrêt"
|
msgstr "Longitude de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:268
|
#: trainvel/gtfs/models.py:268
|
||||||
msgid "Stop latitude"
|
msgid "Stop latitude"
|
||||||
msgstr "Latitude de l'arrêt"
|
msgstr "Latitude de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:273
|
#: trainvel/gtfs/models.py:273
|
||||||
msgid "Zone ID"
|
msgid "Zone ID"
|
||||||
msgstr "ID de la zone"
|
msgstr "ID de la zone"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:278
|
#: trainvel/gtfs/models.py:278
|
||||||
msgid "Stop URL"
|
msgid "Stop URL"
|
||||||
msgstr "URL de l'arrêt"
|
msgstr "URL de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:283
|
#: trainvel/gtfs/models.py:283
|
||||||
msgid "Location type"
|
msgid "Location type"
|
||||||
msgstr "Type de localisation"
|
msgstr "Type de localisation"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:292
|
#: trainvel/gtfs/models.py:292
|
||||||
msgid "Parent station"
|
msgid "Parent station"
|
||||||
msgstr "Gare parente"
|
msgstr "Gare parente"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:300
|
#: trainvel/gtfs/models.py:300
|
||||||
msgid "Stop timezone"
|
msgid "Stop timezone"
|
||||||
msgstr "Fuseau horaire de l'arrêt"
|
msgstr "Fuseau horaire de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:306
|
#: trainvel/gtfs/models.py:306
|
||||||
msgid "Level ID"
|
msgid "Level ID"
|
||||||
msgstr "ID du niveau"
|
msgstr "ID du niveau"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:311
|
#: trainvel/gtfs/models.py:311
|
||||||
msgid "Wheelchair boarding"
|
msgid "Wheelchair boarding"
|
||||||
msgstr "Embarquement en fauteuil roulant"
|
msgstr "Embarquement en fauteuil roulant"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:319
|
#: trainvel/gtfs/models.py:319
|
||||||
msgid "Platform code"
|
msgid "Platform code"
|
||||||
msgstr "Code du quai"
|
msgstr "Code du quai"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:338
|
#: trainvel/gtfs/models.py:338
|
||||||
msgid "Stop"
|
msgid "Stop"
|
||||||
msgstr "Arrêt"
|
msgstr "Arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:339
|
#: trainvel/gtfs/models.py:339
|
||||||
msgid "Stops"
|
msgid "Stops"
|
||||||
msgstr "Arrêts"
|
msgstr "Arrêts"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:350 sncfgtfs/models.py:572 sncfgtfs/models.py:713
|
#: trainvel/gtfs/models.py:350 trainvel/gtfs/models.py:572
|
||||||
#: sncfgtfs/models.py:746
|
#: trainvel/gtfs/models.py:713 trainvel/gtfs/models.py:746
|
||||||
msgid "ID"
|
msgid "ID"
|
||||||
msgstr "Identifiant"
|
msgstr "Identifiant"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:365
|
#: trainvel/gtfs/models.py:365
|
||||||
msgid "Route short name"
|
msgid "Route short name"
|
||||||
msgstr "Nom court de la ligne"
|
msgstr "Nom court de la ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:370
|
#: trainvel/gtfs/models.py:370
|
||||||
msgid "Route long name"
|
msgid "Route long name"
|
||||||
msgstr "Nom long de la ligne"
|
msgstr "Nom long de la ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:376
|
#: trainvel/gtfs/models.py:376
|
||||||
msgid "Route description"
|
msgid "Route description"
|
||||||
msgstr "Description de la ligne"
|
msgstr "Description de la ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:381
|
#: trainvel/gtfs/models.py:381
|
||||||
msgid "Route type"
|
msgid "Route type"
|
||||||
msgstr "Type de ligne"
|
msgstr "Type de ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:386
|
#: trainvel/gtfs/models.py:386
|
||||||
msgid "Route URL"
|
msgid "Route URL"
|
||||||
msgstr "URL de la ligne"
|
msgstr "URL de la ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:392
|
#: trainvel/gtfs/models.py:392
|
||||||
msgid "Route color"
|
msgid "Route color"
|
||||||
msgstr "Couleur de la ligne"
|
msgstr "Couleur de la ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:398
|
#: trainvel/gtfs/models.py:398
|
||||||
msgid "Route text color"
|
msgid "Route text color"
|
||||||
msgstr "Couleur du texte de la ligne"
|
msgstr "Couleur du texte de la ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:412 sncfgtfs/models.py:428
|
#: trainvel/gtfs/models.py:412 trainvel/gtfs/models.py:428
|
||||||
msgid "Route"
|
msgid "Route"
|
||||||
msgstr "Ligne"
|
msgstr "Ligne"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:413
|
#: trainvel/gtfs/models.py:413
|
||||||
msgid "Routes"
|
msgid "Routes"
|
||||||
msgstr "Lignes"
|
msgstr "Lignes"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:422
|
#: trainvel/gtfs/models.py:422
|
||||||
msgid "Trip ID"
|
msgid "Trip ID"
|
||||||
msgstr "ID du trajet"
|
msgstr "ID du trajet"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:435 sncfgtfs/models.py:719
|
#: trainvel/gtfs/models.py:435 trainvel/gtfs/models.py:719
|
||||||
msgid "Service"
|
msgid "Service"
|
||||||
msgstr "Service"
|
msgstr "Service"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:441
|
#: trainvel/gtfs/models.py:441
|
||||||
msgid "Trip headsign"
|
msgid "Trip headsign"
|
||||||
msgstr "Destination du trajet"
|
msgstr "Destination du trajet"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:447
|
#: trainvel/gtfs/models.py:447
|
||||||
msgid "Trip short name"
|
msgid "Trip short name"
|
||||||
msgstr "Nom court du trajet"
|
msgstr "Nom court du trajet"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:452
|
#: trainvel/gtfs/models.py:452
|
||||||
msgid "Direction"
|
msgid "Direction"
|
||||||
msgstr "Direction"
|
msgstr "Direction"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:459
|
#: trainvel/gtfs/models.py:459
|
||||||
msgid "Block ID"
|
msgid "Block ID"
|
||||||
msgstr "ID du bloc"
|
msgstr "ID du bloc"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:465
|
#: trainvel/gtfs/models.py:465
|
||||||
msgid "Shape ID"
|
msgid "Shape ID"
|
||||||
msgstr "ID de la forme"
|
msgstr "ID de la forme"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:470
|
#: trainvel/gtfs/models.py:470
|
||||||
msgid "Wheelchair accessible"
|
msgid "Wheelchair accessible"
|
||||||
msgstr "Accessible en fauteuil roulant"
|
msgstr "Accessible en fauteuil roulant"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:477
|
#: trainvel/gtfs/models.py:477
|
||||||
msgid "Bikes allowed"
|
msgid "Bikes allowed"
|
||||||
msgstr "Vélos autorisés"
|
msgstr "Vélos autorisés"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:500 sncfgtfs/models.py:509 sncfgtfs/models.py:552
|
#: trainvel/gtfs/models.py:500 trainvel/gtfs/models.py:509
|
||||||
#: sncfgtfs/models.py:554
|
#: trainvel/gtfs/models.py:552 trainvel/gtfs/models.py:554
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Inconnu"
|
msgstr "Inconnu"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:557
|
#: trainvel/gtfs/models.py:557
|
||||||
msgid "Origin → Destination"
|
msgid "Origin → Destination"
|
||||||
msgstr "Origine → Destination"
|
msgstr "Origine → Destination"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:563 sncfgtfs/models.py:578 sncfgtfs/models.py:825
|
#: trainvel/gtfs/models.py:563 trainvel/gtfs/models.py:578
|
||||||
|
#: trainvel/gtfs/models.py:825
|
||||||
msgid "Trip"
|
msgid "Trip"
|
||||||
msgstr "Trajet"
|
msgstr "Trajet"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:564
|
#: trainvel/gtfs/models.py:564
|
||||||
msgid "Trips"
|
msgid "Trips"
|
||||||
msgstr "Trajets"
|
msgstr "Trajets"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:583 sncfgtfs/models.py:876
|
#: trainvel/gtfs/models.py:583 trainvel/gtfs/models.py:876
|
||||||
msgid "Arrival time"
|
msgid "Arrival time"
|
||||||
msgstr "Heure d'arrivée"
|
msgstr "Heure d'arrivée"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:587 sncfgtfs/models.py:884
|
#: trainvel/gtfs/models.py:587 trainvel/gtfs/models.py:884
|
||||||
msgid "Departure time"
|
msgid "Departure time"
|
||||||
msgstr "Heure de départ"
|
msgstr "Heure de départ"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:598
|
#: trainvel/gtfs/models.py:598
|
||||||
msgid "Stop sequence"
|
msgid "Stop sequence"
|
||||||
msgstr "Séquence de l'arrêt"
|
msgstr "Séquence de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:603
|
#: trainvel/gtfs/models.py:603
|
||||||
msgid "Stop headsign"
|
msgid "Stop headsign"
|
||||||
msgstr "Destination de l'arrêt"
|
msgstr "Destination de l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:608
|
#: trainvel/gtfs/models.py:608
|
||||||
msgid "Pickup type"
|
msgid "Pickup type"
|
||||||
msgstr "Type de prise en charge"
|
msgstr "Type de prise en charge"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:615
|
#: trainvel/gtfs/models.py:615
|
||||||
msgid "Drop off type"
|
msgid "Drop off type"
|
||||||
msgstr "Type de dépose"
|
msgstr "Type de dépose"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:622
|
#: trainvel/gtfs/models.py:622
|
||||||
msgid "Timepoint"
|
msgid "Timepoint"
|
||||||
msgstr "Ponctualité"
|
msgstr "Ponctualité"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:645 sncfgtfs/models.py:866
|
#: trainvel/gtfs/models.py:645 trainvel/gtfs/models.py:866
|
||||||
msgid "Stop time"
|
msgid "Stop time"
|
||||||
msgstr "Heure d'arrêt"
|
msgstr "Heure d'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:646
|
#: trainvel/gtfs/models.py:646
|
||||||
msgid "Stop times"
|
msgid "Stop times"
|
||||||
msgstr "Heures d'arrêt"
|
msgstr "Heures d'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:654
|
#: trainvel/gtfs/models.py:654
|
||||||
msgid "Service ID"
|
msgid "Service ID"
|
||||||
msgstr "ID du service"
|
msgstr "ID du service"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:658
|
#: trainvel/gtfs/models.py:658
|
||||||
msgid "Monday"
|
msgid "Monday"
|
||||||
msgstr "Lundi"
|
msgstr "Lundi"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:662
|
#: trainvel/gtfs/models.py:662
|
||||||
msgid "Tuesday"
|
msgid "Tuesday"
|
||||||
msgstr "Mardi"
|
msgstr "Mardi"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:666
|
#: trainvel/gtfs/models.py:666
|
||||||
msgid "Wednesday"
|
msgid "Wednesday"
|
||||||
msgstr "Mercredi"
|
msgstr "Mercredi"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:670
|
#: trainvel/gtfs/models.py:670
|
||||||
msgid "Thursday"
|
msgid "Thursday"
|
||||||
msgstr "Jeudi"
|
msgstr "Jeudi"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:674
|
#: trainvel/gtfs/models.py:674
|
||||||
msgid "Friday"
|
msgid "Friday"
|
||||||
msgstr "Vendredi"
|
msgstr "Vendredi"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:678
|
#: trainvel/gtfs/models.py:678
|
||||||
msgid "Saturday"
|
msgid "Saturday"
|
||||||
msgstr "Samedi"
|
msgstr "Samedi"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:682
|
#: trainvel/gtfs/models.py:682
|
||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Dimanche"
|
msgstr "Dimanche"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:686 sncfgtfs/models.py:831
|
#: trainvel/gtfs/models.py:686 trainvel/gtfs/models.py:831
|
||||||
msgid "Start date"
|
msgid "Start date"
|
||||||
msgstr "Date de début"
|
msgstr "Date de début"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:690
|
#: trainvel/gtfs/models.py:690
|
||||||
msgid "End date"
|
msgid "End date"
|
||||||
msgstr "Date de fin"
|
msgstr "Date de fin"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:703
|
#: trainvel/gtfs/models.py:703
|
||||||
msgid "Calendar"
|
msgid "Calendar"
|
||||||
msgstr "Calendrier"
|
msgstr "Calendrier"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:704
|
#: trainvel/gtfs/models.py:704
|
||||||
msgid "Calendars"
|
msgid "Calendars"
|
||||||
msgstr "Calendriers"
|
msgstr "Calendriers"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:724
|
#: trainvel/gtfs/models.py:724
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Date"
|
msgstr "Date"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:728
|
#: trainvel/gtfs/models.py:728
|
||||||
msgid "Exception type"
|
msgid "Exception type"
|
||||||
msgstr "Type d'exception"
|
msgstr "Type d'exception"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:736
|
#: trainvel/gtfs/models.py:736
|
||||||
msgid "Calendar date"
|
msgid "Calendar date"
|
||||||
msgstr "Date du calendrier"
|
msgstr "Date du calendrier"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:737
|
#: trainvel/gtfs/models.py:737
|
||||||
msgid "Calendar dates"
|
msgid "Calendar dates"
|
||||||
msgstr "Dates du calendrier"
|
msgstr "Dates du calendrier"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:752
|
#: trainvel/gtfs/models.py:752
|
||||||
msgid "From stop"
|
msgid "From stop"
|
||||||
msgstr "Depuis l'arrêt"
|
msgstr "Depuis l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:759
|
#: trainvel/gtfs/models.py:759
|
||||||
msgid "To stop"
|
msgid "To stop"
|
||||||
msgstr "Jusqu'à l'arrêt"
|
msgstr "Jusqu'à l'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:764
|
#: trainvel/gtfs/models.py:764
|
||||||
msgid "Transfer type"
|
msgid "Transfer type"
|
||||||
msgstr "Type de correspondance"
|
msgstr "Type de correspondance"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:770
|
#: trainvel/gtfs/models.py:770
|
||||||
msgid "Minimum transfer time"
|
msgid "Minimum transfer time"
|
||||||
msgstr "Temps de correspondance minimum"
|
msgstr "Temps de correspondance minimum"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:775
|
#: trainvel/gtfs/models.py:775
|
||||||
msgid "Transfer"
|
msgid "Transfer"
|
||||||
msgstr "Correspondance"
|
msgstr "Correspondance"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:776
|
#: trainvel/gtfs/models.py:776
|
||||||
msgid "Transfers"
|
msgid "Transfers"
|
||||||
msgstr "Correspondances"
|
msgstr "Correspondances"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:783
|
#: trainvel/gtfs/models.py:783
|
||||||
msgid "Feed publisher name"
|
msgid "Feed publisher name"
|
||||||
msgstr "Nom de l'éditeur du flux"
|
msgstr "Nom de l'éditeur du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:787
|
#: trainvel/gtfs/models.py:787
|
||||||
msgid "Feed publisher URL"
|
msgid "Feed publisher URL"
|
||||||
msgstr "URL de l'éditeur du flux"
|
msgstr "URL de l'éditeur du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:792
|
#: trainvel/gtfs/models.py:792
|
||||||
msgid "Feed language"
|
msgid "Feed language"
|
||||||
msgstr "Langue du flux"
|
msgstr "Langue du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:796
|
#: trainvel/gtfs/models.py:796
|
||||||
msgid "Feed start date"
|
msgid "Feed start date"
|
||||||
msgstr "Date de début du flux"
|
msgstr "Date de début du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:800
|
#: trainvel/gtfs/models.py:800
|
||||||
msgid "Feed end date"
|
msgid "Feed end date"
|
||||||
msgstr "Date de fin du flux"
|
msgstr "Date de fin du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:805
|
#: trainvel/gtfs/models.py:805
|
||||||
msgid "Feed version"
|
msgid "Feed version"
|
||||||
msgstr "Version du flux"
|
msgstr "Version du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:815
|
#: trainvel/gtfs/models.py:815
|
||||||
msgid "Feed info"
|
msgid "Feed info"
|
||||||
msgstr "Information du flux"
|
msgstr "Information du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:816
|
#: trainvel/gtfs/models.py:816
|
||||||
msgid "Feed infos"
|
msgid "Feed infos"
|
||||||
msgstr "Informations du flux"
|
msgstr "Informations du flux"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:835
|
#: trainvel/gtfs/models.py:835
|
||||||
msgid "Start time"
|
msgid "Start time"
|
||||||
msgstr "Heure de début"
|
msgstr "Heure de début"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:839 sncfgtfs/models.py:888
|
#: trainvel/gtfs/models.py:839 trainvel/gtfs/models.py:888
|
||||||
msgid "Schedule relationship"
|
msgid "Schedule relationship"
|
||||||
msgstr "Relation de la planification"
|
msgstr "Relation de la planification"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:848 sncfgtfs/models.py:859
|
#: trainvel/gtfs/models.py:848 trainvel/gtfs/models.py:859
|
||||||
msgid "Trip update"
|
msgid "Trip update"
|
||||||
msgstr "Mise à jour du trajet"
|
msgstr "Mise à jour du trajet"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:849
|
#: trainvel/gtfs/models.py:849
|
||||||
msgid "Trip updates"
|
msgid "Trip updates"
|
||||||
msgstr "Mises à jour des trajets"
|
msgstr "Mises à jour des trajets"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:872
|
#: trainvel/gtfs/models.py:872
|
||||||
msgid "Arrival delay"
|
msgid "Arrival delay"
|
||||||
msgstr "Retard à l'arrivée"
|
msgstr "Retard à l'arrivée"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:880
|
#: trainvel/gtfs/models.py:880
|
||||||
msgid "Departure delay"
|
msgid "Departure delay"
|
||||||
msgstr "Retard au départ"
|
msgstr "Retard au départ"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:897
|
#: trainvel/gtfs/models.py:897
|
||||||
msgid "Stop time update"
|
msgid "Stop time update"
|
||||||
msgstr "Mise à jour du temps d'arrêt"
|
msgstr "Mise à jour du temps d'arrêt"
|
||||||
|
|
||||||
#: sncfgtfs/models.py:898
|
#: trainvel/gtfs/models.py:898
|
||||||
msgid "Stop time updates"
|
msgid "Stop time updates"
|
||||||
msgstr "Mises à jour des temps d'arrêt"
|
msgstr "Mises à jour des temps d'arrêt"
|
||||||
|
|
|
@ -7,12 +7,12 @@ from zoneinfo import ZoneInfo
|
||||||
import requests
|
import requests
|
||||||
from django.core.management import BaseCommand
|
from django.core.management import BaseCommand
|
||||||
|
|
||||||
from sncfgtfs.models import Agency, Calendar, CalendarDate, FeedInfo, GTFSFeed, Route, Stop, StopTime, Transfer, Trip, \
|
from trainvel.gtfs.models import Agency, Calendar, CalendarDate, FeedInfo, GTFSFeed, Route, Stop, StopTime, Transfer, Trip, \
|
||||||
PickupType
|
PickupType
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
help = "Update the SNCF GTFS database."
|
help = "Update the Trainvel GTFS database."
|
||||||
|
|
||||||
def add_arguments(self, parser):
|
def add_arguments(self, parser):
|
||||||
parser.add_argument('--debug', '-d', action='store_true', help="Activate debug mode")
|
parser.add_argument('--debug', '-d', action='store_true', help="Activate debug mode")
|
|
@ -3,16 +3,15 @@ from zoneinfo import ZoneInfo
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from django.core.management import BaseCommand
|
from django.core.management import BaseCommand
|
||||||
from django.db.models import Q
|
|
||||||
|
|
||||||
from sncfgtfs.gtfs_realtime_pb2 import FeedMessage, TripUpdate as GTFSTripUpdate
|
from trainvel.gtfs.gtfs_realtime_pb2 import FeedMessage, TripUpdate as GTFSTripUpdate
|
||||||
from sncfgtfs.models import Agency, Calendar, CalendarDate, ExceptionType, GTFSFeed, LocationType, PickupType, \
|
from trainvel.gtfs.models import Agency, Calendar, CalendarDate, ExceptionType, GTFSFeed, PickupType, \
|
||||||
Route, RouteType, Stop, StopScheduleRelationship, StopTime, StopTimeUpdate, \
|
Route, RouteType, Stop, StopScheduleRelationship, StopTime, StopTimeUpdate, \
|
||||||
Trip, TripUpdate, TripScheduleRelationship
|
Trip, TripUpdate, TripScheduleRelationship
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
help = "Update the SNCF GTFS Realtime database."
|
help = "Update the Trainvel GTFS Realtime database."
|
||||||
|
|
||||||
def add_arguments(self, parser):
|
def add_arguments(self, parser):
|
||||||
parser.add_argument('--debug', '-d', action='store_true', help="Activate debug mode")
|
parser.add_argument('--debug', '-d', action='store_true', help="Activate debug mode")
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 5.0.1 on 2024-05-09 17:16
|
# Generated by Django 5.0.1 on 2024-05-09 17:34
|
||||||
|
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
@ -263,7 +263,7 @@ class Migration(migrations.Migration):
|
||||||
"verbose_name_plural": "GTFS feeds",
|
"verbose_name_plural": "GTFS feeds",
|
||||||
"ordering": ("country", "name"),
|
"ordering": ("country", "name"),
|
||||||
"indexes": [
|
"indexes": [
|
||||||
models.Index(fields=["name"], name="sncfgtfs_gt_name_43c613_idx")
|
models.Index(fields=["name"], name="gtfs_gtfsfe_name_aabd02_idx")
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -292,7 +292,7 @@ class Migration(migrations.Migration):
|
||||||
"gtfs_feed",
|
"gtfs_feed",
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
to="sncfgtfs.gtfsfeed",
|
to="gtfs.gtfsfeed",
|
||||||
verbose_name="GTFS feed",
|
verbose_name="GTFS feed",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -343,7 +343,7 @@ class Migration(migrations.Migration):
|
||||||
"gtfs_feed",
|
"gtfs_feed",
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
to="sncfgtfs.gtfsfeed",
|
to="gtfs.gtfsfeed",
|
||||||
verbose_name="GTFS feed",
|
verbose_name="GTFS feed",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -419,7 +419,7 @@ class Migration(migrations.Migration):
|
||||||
null=True,
|
null=True,
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="routes",
|
related_name="routes",
|
||||||
to="sncfgtfs.agency",
|
to="gtfs.agency",
|
||||||
verbose_name="Agency",
|
verbose_name="Agency",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -427,7 +427,7 @@ class Migration(migrations.Migration):
|
||||||
"gtfs_feed",
|
"gtfs_feed",
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
to="sncfgtfs.gtfsfeed",
|
to="gtfs.gtfsfeed",
|
||||||
verbose_name="GTFS feed",
|
verbose_name="GTFS feed",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -522,7 +522,7 @@ class Migration(migrations.Migration):
|
||||||
"gtfs_feed",
|
"gtfs_feed",
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
to="sncfgtfs.gtfsfeed",
|
to="gtfs.gtfsfeed",
|
||||||
verbose_name="GTFS feed",
|
verbose_name="GTFS feed",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -533,7 +533,7 @@ class Migration(migrations.Migration):
|
||||||
null=True,
|
null=True,
|
||||||
on_delete=django.db.models.deletion.PROTECT,
|
on_delete=django.db.models.deletion.PROTECT,
|
||||||
related_name="children",
|
related_name="children",
|
||||||
to="sncfgtfs.stop",
|
to="gtfs.stop",
|
||||||
verbose_name="Parent station",
|
verbose_name="Parent station",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -554,7 +554,7 @@ class Migration(migrations.Migration):
|
||||||
primary_key=True,
|
primary_key=True,
|
||||||
related_name="update",
|
related_name="update",
|
||||||
serialize=False,
|
serialize=False,
|
||||||
to="sncfgtfs.stoptime",
|
to="gtfs.stoptime",
|
||||||
verbose_name="Stop time",
|
verbose_name="Stop time",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -591,7 +591,7 @@ class Migration(migrations.Migration):
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="stop_times",
|
related_name="stop_times",
|
||||||
to="sncfgtfs.stop",
|
to="gtfs.stop",
|
||||||
verbose_name="Stop ID",
|
verbose_name="Stop ID",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -631,7 +631,7 @@ class Migration(migrations.Migration):
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="transfers_from",
|
related_name="transfers_from",
|
||||||
to="sncfgtfs.stop",
|
to="gtfs.stop",
|
||||||
verbose_name="From stop",
|
verbose_name="From stop",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -640,7 +640,7 @@ class Migration(migrations.Migration):
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="transfers_to",
|
related_name="transfers_to",
|
||||||
to="sncfgtfs.stop",
|
to="gtfs.stop",
|
||||||
verbose_name="To stop",
|
verbose_name="To stop",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -661,7 +661,7 @@ class Migration(migrations.Migration):
|
||||||
primary_key=True,
|
primary_key=True,
|
||||||
related_name="update",
|
related_name="update",
|
||||||
serialize=False,
|
serialize=False,
|
||||||
to="sncfgtfs.trip",
|
to="gtfs.trip",
|
||||||
verbose_name="Trip",
|
verbose_name="Trip",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -695,7 +695,7 @@ class Migration(migrations.Migration):
|
||||||
name="gtfs_feed",
|
name="gtfs_feed",
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
to="sncfgtfs.gtfsfeed",
|
to="gtfs.gtfsfeed",
|
||||||
verbose_name="GTFS feed",
|
verbose_name="GTFS feed",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -705,7 +705,7 @@ class Migration(migrations.Migration):
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="trips",
|
related_name="trips",
|
||||||
to="sncfgtfs.route",
|
to="gtfs.route",
|
||||||
verbose_name="Route",
|
verbose_name="Route",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -715,7 +715,7 @@ class Migration(migrations.Migration):
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="trips",
|
related_name="trips",
|
||||||
to="sncfgtfs.calendar",
|
to="gtfs.calendar",
|
||||||
verbose_name="Service",
|
verbose_name="Service",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -725,7 +725,7 @@ class Migration(migrations.Migration):
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="stop_times",
|
related_name="stop_times",
|
||||||
to="sncfgtfs.trip",
|
to="gtfs.trip",
|
||||||
verbose_name="Trip",
|
verbose_name="Trip",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -754,7 +754,7 @@ class Migration(migrations.Migration):
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="dates",
|
related_name="dates",
|
||||||
to="sncfgtfs.calendar",
|
to="gtfs.calendar",
|
||||||
verbose_name="Service",
|
verbose_name="Service",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -765,9 +765,9 @@ class Migration(migrations.Migration):
|
||||||
"ordering": ("id",),
|
"ordering": ("id",),
|
||||||
"indexes": [
|
"indexes": [
|
||||||
models.Index(
|
models.Index(
|
||||||
fields=["service"], name="sncfgtfs_ca_service_837ec3_idx"
|
fields=["service"], name="gtfs_calend_service_211472_idx"
|
||||||
),
|
),
|
||||||
models.Index(fields=["date"], name="sncfgtfs_ca_date_6c4732_idx"),
|
models.Index(fields=["date"], name="gtfs_calend_date_e90040_idx"),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -804,7 +804,7 @@ class Migration(migrations.Migration):
|
||||||
"gtfs_feed",
|
"gtfs_feed",
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
to="sncfgtfs.gtfsfeed",
|
to="gtfs.gtfsfeed",
|
||||||
verbose_name="GTFS feed",
|
verbose_name="GTFS feed",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -815,7 +815,7 @@ class Migration(migrations.Migration):
|
||||||
"ordering": ("publisher_name",),
|
"ordering": ("publisher_name",),
|
||||||
"indexes": [
|
"indexes": [
|
||||||
models.Index(
|
models.Index(
|
||||||
fields=["gtfs_feed"], name="sncfgtfs_fe_gtfs_fe_b5e3d7_idx"
|
fields=["gtfs_feed"], name="gtfs_feedin_gtfs_fe_73554b_idx"
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
@ -823,42 +823,42 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="calendar",
|
model_name="calendar",
|
||||||
index=models.Index(
|
index=models.Index(
|
||||||
fields=["gtfs_feed"], name="sncfgtfs_ca_gtfs_fe_061858_idx"
|
fields=["gtfs_feed"], name="gtfs_calend_gtfs_fe_ff03d1_idx"
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="agency",
|
model_name="agency",
|
||||||
index=models.Index(fields=["name"], name="sncfgtfs_ag_name_fe3bcd_idx"),
|
index=models.Index(fields=["name"], name="gtfs_agency_name_a6dd2b_idx"),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="agency",
|
model_name="agency",
|
||||||
index=models.Index(
|
index=models.Index(
|
||||||
fields=["gtfs_feed"], name="sncfgtfs_ag_gtfs_fe_588658_idx"
|
fields=["gtfs_feed"], name="gtfs_agency_gtfs_fe_86414c_idx"
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="route",
|
model_name="route",
|
||||||
index=models.Index(
|
index=models.Index(
|
||||||
fields=["gtfs_feed"], name="sncfgtfs_ro_gtfs_fe_818b6e_idx"
|
fields=["gtfs_feed"], name="gtfs_route_gtfs_fe_c6ac59_idx"
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="stop",
|
model_name="stop",
|
||||||
index=models.Index(fields=["name"], name="sncfgtfs_st_name_63b266_idx"),
|
index=models.Index(fields=["name"], name="gtfs_stop_name_1c87d7_idx"),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="stop",
|
model_name="stop",
|
||||||
index=models.Index(fields=["code"], name="sncfgtfs_st_code_5b6ba9_idx"),
|
index=models.Index(fields=["code"], name="gtfs_stop_code_5f4ebc_idx"),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="stop",
|
model_name="stop",
|
||||||
index=models.Index(
|
index=models.Index(
|
||||||
fields=["gtfs_feed"], name="sncfgtfs_st_gtfs_fe_a59997_idx"
|
fields=["gtfs_feed"], name="gtfs_stop_gtfs_fe_0e17d6_idx"
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="tripupdate",
|
model_name="tripupdate",
|
||||||
index=models.Index(fields=["trip"], name="sncfgtfs_tr_trip_id_56a7e3_idx"),
|
index=models.Index(fields=["trip"], name="gtfs_tripup_trip_id_b3ee0e_idx"),
|
||||||
),
|
),
|
||||||
migrations.AlterUniqueTogether(
|
migrations.AlterUniqueTogether(
|
||||||
name="tripupdate",
|
name="tripupdate",
|
||||||
|
@ -870,38 +870,38 @@ class Migration(migrations.Migration):
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
related_name="stop_time_updates",
|
related_name="stop_time_updates",
|
||||||
to="sncfgtfs.tripupdate",
|
to="gtfs.tripupdate",
|
||||||
verbose_name="Trip update",
|
verbose_name="Trip update",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="trip",
|
model_name="trip",
|
||||||
index=models.Index(fields=["route"], name="sncfgtfs_tr_route_i_003721_idx"),
|
index=models.Index(fields=["route"], name="gtfs_trip_route_i_6d85d9_idx"),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="trip",
|
model_name="trip",
|
||||||
index=models.Index(
|
index=models.Index(
|
||||||
fields=["gtfs_feed"], name="sncfgtfs_tr_gtfs_fe_55db7e_idx"
|
fields=["gtfs_feed"], name="gtfs_trip_gtfs_fe_e63eac_idx"
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="stoptime",
|
model_name="stoptime",
|
||||||
index=models.Index(fields=["stop"], name="sncfgtfs_st_stop_id_e3012f_idx"),
|
index=models.Index(fields=["stop"], name="gtfs_stopti_stop_id_64a4e3_idx"),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="stoptime",
|
model_name="stoptime",
|
||||||
index=models.Index(fields=["trip"], name="sncfgtfs_st_trip_id_751dca_idx"),
|
index=models.Index(fields=["trip"], name="gtfs_stopti_trip_id_bec7fe_idx"),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="stoptimeupdate",
|
model_name="stoptimeupdate",
|
||||||
index=models.Index(
|
index=models.Index(
|
||||||
fields=["trip_update"], name="sncfgtfs_st_trip_up_a7fabf_idx"
|
fields=["trip_update"], name="gtfs_stopti_trip_up_ffe901_idx"
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AddIndex(
|
migrations.AddIndex(
|
||||||
model_name="stoptimeupdate",
|
model_name="stoptimeupdate",
|
||||||
index=models.Index(
|
index=models.Index(
|
||||||
fields=["stop_time"], name="sncfgtfs_st_stop_ti_96270f_idx"
|
fields=["stop_time"], name="gtfs_stopti_stop_ti_4f2c63_idx"
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
migrations.AlterUniqueTogether(
|
migrations.AlterUniqueTogether(
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
Django settings for sncf project.
|
Django settings for trainvel project.
|
||||||
|
|
||||||
Generated by 'django-admin startproject' using Django 5.0.1.
|
Generated by 'django-admin startproject' using Django 5.0.1.
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@ INSTALLED_APPS = [
|
||||||
"django_filters",
|
"django_filters",
|
||||||
"rest_framework",
|
"rest_framework",
|
||||||
|
|
||||||
"sncf.api",
|
"trainvel.api",
|
||||||
"sncfgtfs",
|
"trainvel.gtfs",
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
@ -69,7 +69,7 @@ CORS_ALLOW_HEADERS = (
|
||||||
'Cache-Control',
|
'Cache-Control',
|
||||||
)
|
)
|
||||||
|
|
||||||
ROOT_URLCONF = "sncf.urls"
|
ROOT_URLCONF = "trainvel.urls"
|
||||||
|
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
{
|
{
|
||||||
|
@ -87,7 +87,7 @@ TEMPLATES = [
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
WSGI_APPLICATION = "sncf.wsgi.application"
|
WSGI_APPLICATION = "trainvel.wsgi.application"
|
||||||
|
|
||||||
|
|
||||||
# Database
|
# Database
|
|
@ -11,8 +11,8 @@ CORS_ALLOWED_ORIGINS = [
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
"default": {
|
"default": {
|
||||||
"ENGINE": "django.db.backends.postgresql",
|
"ENGINE": "django.db.backends.postgresql",
|
||||||
"NAME": "sncf",
|
"NAME": "trainvel",
|
||||||
"USER": "sncf",
|
"USER": "trainvel",
|
||||||
"PASSWORD": "CHANGE ME",
|
"PASSWORD": "CHANGE ME",
|
||||||
"HOST": "localhost",
|
"HOST": "localhost",
|
||||||
"PORT": "5432",
|
"PORT": "5432",
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
URL configuration for sncf project.
|
URL configuration for trainvel project.
|
||||||
|
|
||||||
The `urlpatterns` list routes URLs to views. For more information please see:
|
The `urlpatterns` list routes URLs to views. For more information please see:
|
||||||
https://docs.djangoproject.com/en/5.0/topics/http/urls/
|
https://docs.djangoproject.com/en/5.0/topics/http/urls/
|
||||||
|
@ -18,7 +18,7 @@ from django.contrib import admin
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
|
|
||||||
from sncf.api.views import AgencyViewSet, StopViewSet, RouteViewSet, TripViewSet, StopTimeViewSet, \
|
from trainvel.api.views import AgencyViewSet, StopViewSet, RouteViewSet, TripViewSet, StopTimeViewSet, \
|
||||||
CalendarViewSet, CalendarDateViewSet, TransferViewSet, FeedInfoViewSet, NextDeparturesViewSet, NextArrivalsViewSet, \
|
CalendarViewSet, CalendarDateViewSet, TransferViewSet, FeedInfoViewSet, NextDeparturesViewSet, NextArrivalsViewSet, \
|
||||||
TripUpdateViewSet, StopTimeUpdateViewSet
|
TripUpdateViewSet, StopTimeUpdateViewSet
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
"""
|
"""
|
||||||
WSGI config for sncf project.
|
WSGI config for trainvel project.
|
||||||
|
|
||||||
It exposes the WSGI callable as a module-level variable named ``application``.
|
It exposes the WSGI callable as a module-level variable named ``application``.
|
||||||
|
|
||||||
|
@ -11,6 +11,6 @@ import os
|
||||||
|
|
||||||
from django.core.wsgi import get_wsgi_application
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sncf.settings")
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trainvel.settings")
|
||||||
|
|
||||||
application = get_wsgi_application()
|
application = get_wsgi_application()
|