added script to automatically create new routes

This commit is contained in:
maxime 2019-06-21 12:03:27 +02:00
parent cc0e91ffc6
commit 3e00ac64f5
11 changed files with 234 additions and 0 deletions

53
gen_route.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/bash
PWD_=$PWD
BASE='route_template'
NAME=$1
NAME_UPPERFIRST=$(echo "$NAME"|sed 's/^./\U&/')
PROJ='gpp'
APP='port'
rm -rf "$BASE.tmp"
cp -r $BASE $BASE.tmp
cd "$BASE.tmp"
# update template with last routes
cp $PWD_/$PROJ/urls.py ./proj/urls.py
cp $PWD_/$APP/views.py ./proj/views.py
# rename template dir names according to
# current projet
mv ./proj $PROJ
mv ./app $APP
# PROJ
SEDCMD="s/# NEW_ROUTE/"
SEDCMD=$SEDCMD"path('$NAME\/',"
SEDCMD=$SEDCMD"include('$APP.urls.$NAME',"
SEDCMD=$SEDCMD"namespace='$NAME')),/"
sed -i "$SEDCMD" ./$PROJ/urls.py
#APP
cd $APP
SEDCMD="s/#NAME#/$NAME/g;"
SEDCMD=$SEDCMD"s/#NAME_UPPERFIRST#/$NAME_UPPERFIRST/g"
## URLS
sed -i "$SEDCMD" ./urls/new.py
mv urls/new.py urls/$NAME.py
## VIEWS
sed -i "$SEDCMD" ./views/new.py
mv views/new.py views/$NAME.py
## TEMPLATES
for FILE in ./templates/new/*
do
sed -i $SEDCMD $FILE;
done
mv ./templates/new ./templates/$NAME
sed -i "$SEDCMD" ./urls/$NAME.py
exit 0

View File

@ -0,0 +1,25 @@
"""gpp URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
#path('', include('port.urls', namespace='index')),
path('port/', include('port.urls.port', namespace='port')),
path('person/', include('port.urls.person', namespace='person')),
path('boat/', include('port.urls.boat', namespace='boat')),
path('admin/', admin.site.urls),
]

View File

@ -0,0 +1,32 @@
{% extends "base.html" %}
{% block content %}
<form action="{% url 'person:add' %}" method="post">
{% csrf_token %}
<!--
<label for="name">Name : </label>
<input type="text" name="name" id="name"/>
<br />
<label for="surname">Surname : </label>
<input type="text" name="surname" id="surname"/>
<br />
<label for="nationality">Nationality : </label>
<input type="text" name="nationality" id="nationality"/>
<br />
<label for="nationality">Nationality : </label>
<label for="email">e-mail : </label>
<input type="text" name="email" id="email"/>
<label for="phone">Phone number : </label>
<input type="countrycode" value="+33"/>
<input type="text" name="phone" id="phone"/>
-->
<fieldset>
<legend>Person</legend>
{{ form.person }}
</fieldset>
<fieldset>
<legend>Address</legend>
{{ form.address }}
</fieldset>
<input type="submit" value="add"/>
</form>
{% endblock %}

View File

@ -0,0 +1,8 @@
{% extends "base.html" %}
{% block content %}
<ul>
{% for person in persons.all %}
<li>{{ person }}</li>
{% endfor %}
</ul>
{% endblock %}

View File

@ -0,0 +1,13 @@
from django.urls import path
from ..views.person import *
app_name = 'person'
urlpatterns = [
path('', index, name='index'),
path('list', list_persons, name='list'),
path('form', form_person, name='form'),
path('add', add_person, name='add'),
]

View File

@ -0,0 +1,22 @@
from django.shortcuts import render
from django.http import HttpResponse
from pprint import pprint
from ..models import *
from ..forms import *
def index(request):
return HttpResponse("Hello Person")
def list_persons(request):
# TO IMPLEMENT
pass
def form_person(request):
# TO IMPLEMENT
pass
def add_person(request):
# TO IMPLEMENT
pass

View File

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block content %}
<form action="{% url '#NAME#:add' %}" method="post">
{% csrf_token %}
<fieldset>
<!-- TO IMPLEMENT -->
<legend>#NAME_UPPERFIRST#</legend>
{{ form.#NAME# }}
</fieldset>
<input type="submit" value="add"/>
</form>
{% endblock %}

View File

@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block content %}
<ul>
<!-- TO IMPLEMENT -->
{% for #NAME# in #NAME#s.all %}
<li>{{ #NAME# }}</li>
{% endfor %}
</ul>
{% endblock %}

View File

@ -0,0 +1,13 @@
from django.urls import path
from ..views.#NAME# import *
app_name = '#NAME#'
urlpatterns = [
path('', index, name='index'),
path('list', list_#NAME#s, name='list'),
path('form', form_#NAME#, name='form'),
path('add', add_#NAME#, name='add'),
]

View File

@ -0,0 +1,22 @@
from django.shortcuts import render
from django.http import HttpResponse
from pprint import pprint
from ..models import *
from ..forms import *
def index(request):
return HttpResponse("Hello #NAME_UPPERFIRST#")
def list_#NAME#s(request):
# TO IMPLEMENT
pass
def form_#NAME#(request):
# TO IMPLEMENT
pass
def add_#NAME#(request):
# TO IMPLEMENT
pass

View File

@ -0,0 +1,25 @@
"""gpp URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
#path('', include('port.urls', namespace='index')),
path('port/', include('port.urls.port', namespace='port')),
path('person/', include('port.urls.person', namespace='person')),
path('boat/', include('port.urls.boat', namespace='boat')),
path('admin/', admin.site.urls),
]