ajout des tags dans doc

This commit is contained in:
2020-05-06 11:13:46 +02:00
parent 1cd81c5cfb
commit a0678fd949
5 changed files with 53 additions and 25 deletions

View File

@@ -36,6 +36,11 @@ def get_docs_bytheme(request, theme):
results = request.dbsession.execute(query, {'theme': theme}).fetchall() results = request.dbsession.execute(query, {'theme': theme}).fetchall()
return results return results
def get_docs_tags(request):
query = "SELECT * FROM docs_tags;"
results = request.dbsession.execute(query).fetchall()
return results
def get_docs_themes(request): def get_docs_themes(request):
query = "SELECT * FROM docs_themes;" query = "SELECT * FROM docs_themes;"
results = request.dbsession.execute(query).fetchall() results = request.dbsession.execute(query).fetchall()

View File

@@ -58,6 +58,9 @@
.container h2{ .container h2{
color: crimson !important; color: crimson !important;
} }
.container h3{
color: crimson !important;
}
.container-fluid { .container-fluid {
padding-top: 2em; padding-top: 2em;

View File

@@ -9,7 +9,7 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-2" for="intitule">Intitulé</label> <label class="control-label col-xs-2" for="intitule">Intitulé</label>
<div class="col-xs-10"> <div class="col-xs-10">
<input class="form-control" type="text" id="intitule" name="intitule" value="${intitule}" <input class="form-control" type="text" id="intitule" name="intitule" value="${doc.intitule}"
data-fv-notempty="true" data-fv-notempty="true"
data-fv-notempty-message="L'intitule est obligatoire" data-fv-notempty-message="L'intitule est obligatoire"
data-fv-stringlength="true" data-fv-stringlength="true"
@@ -21,20 +21,35 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-2" for="texte">Texte</label> <label class="control-label col-xs-2" for="texte">Texte</label>
<div class="col-xs-10"> <div class="col-xs-10">
<textarea class="form-control monospace-font" rows="15" cols="40" id="texte" name="texte">${texte}</textarea> <textarea class="form-control monospace-font" rows="15" cols="40" id="texte" name="doc.texte">${doc.texte}</textarea>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-2" for="theme">Thème</label> <label class="control-label col-xs-2" for="theme">Thème</label>
<div class="col-xs-6"> <div class="col-xs-6">
<select class="form-control" id="theme" name="theme"> <select class="form-control" id="theme" name="doc.theme">
<div tal:repeat="item themes"> <div tal:repeat="item themes">
<option value="${item.theme}" tal:attributes="selected theme==item.theme and 'selected' or None">${item.theme}</option> <option value="${item.theme}" tal:attributes="selected doc.theme==item.theme and 'selected' or None">${item.theme}</option>
</div> </div>
</select> </select>
</div> </div>
</div> </div>
<div class="form-group">
<label class="control-label col-xs-2" for="tag1">Tag 1</label>
<div class="col-xs-6">
<select class="form-control" id="tag1" name="doc.tag1">
<div tal:repeat="item tags">
<option value="${item.tag}" tal:attributes="selected doc.tag1==item.tag and 'selected' or None">${item.tag}</option>
</div>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="tag2">Tag 2</label>
<div class="col-xs-6">
<input type="text" class="form-control" name="doc.tag2" value="${doc.tag2}" />
</div>
</div>
<div class="form-group"> <div class="form-group">
<div class="col-sm-offset-2 col-sm-10"> <div class="col-sm-offset-2 col-sm-10">

View File

@@ -10,7 +10,9 @@
Page text goes here. Page text goes here.
</div> </div>
<hr> <hr>
Dernière modification le ${modif_le} Dernière modification le ${modif_le}<br />
Tags : ${tags}
<br /> <br />
<br /> <br />

View File

@@ -103,32 +103,33 @@ def doc_edit(request):
message = "" message = ""
themes = get_docs_themes(request) themes = get_docs_themes(request)
tags = get_docs_tags(request)
if doc_id == '0': if doc_id == '0':
titre = "Nouveau doc" titre = "Nouveau doc"
intitule = "" # nouveau
texte = "" doc = {}
theme = "" doc['intitule'] = ''
doc['texte'] = ''
doc['theme'] = ''
doc['tag1'] = ''
doc['tag2'] = ''
else: else:
titre = "Modifier : %s" % str(doc_id) titre = "Modifier : %s" % str(doc_id)
doc = get_docs(request, doc_id) doc = get_docs(request, doc_id)
intitule = doc.intitule
texte = doc.texte
theme = doc.theme
if 'form.submitted' in request.params: if 'form.submitted' in request.params:
intitule = request.params["intitule"] new_values = {}
texte = request.params["texte"] for param, db_value in doc.items():
theme = request.params["theme"] if param in request.params and request.params[param] != db_value:
new_values[param] = request.params[param]
if len(intitule) > 0 and len(texte) > 0:
if new_values:
update_doc(request, doc_id, intitule, texte, theme) update_doc(request, doc_id, intitule, texte, theme)
if doc_id != '0': if doc_id != '0':
return HTTPFound(location=request.route_url('doc_view', doc_id=doc_id)) return HTTPFound(location=request.route_url('doc_view', doc_id=doc_id))
else: else:
return HTTPFound(location=request.route_url('archives',theme=theme)) return HTTPFound(location=request.route_url('archives',theme=theme))
else:
message = "Veuillez saisir un intitule et un texte."
if 'form.deleted' in request.params: if 'form.deleted' in request.params:
if doc_id != '0': if doc_id != '0':
@@ -141,10 +142,9 @@ def doc_edit(request):
'url': url, 'url': url,
'message': message, 'message': message,
'doc_id': doc_id, 'doc_id': doc_id,
'intitule': intitule, 'doc': doc,
'texte': texte,
'theme': theme,
'themes': themes, 'themes': themes,
'tags': tags,
} }
@view_config(route_name='doc_search', renderer='../templates/doc_search.pt') @view_config(route_name='doc_search', renderer='../templates/doc_search.pt')
@@ -184,8 +184,10 @@ def doc_view(request):
# si anonyme, interdire de voir les memo # si anonyme, interdire de voir les memo
return HTTPFound(location=request.route_url('home')) return HTTPFound(location=request.route_url('home'))
intitule = doc.intitule
url_retour = request.route_url('archives',theme=doc.theme) url_retour = request.route_url('archives',theme=doc.theme)
tags = doc.tag1
if doc.tag2:
tags += ', ' + doc.tag2
# insèrer le path de static/img # insèrer le path de static/img
texte = doc.texte.replace('static/img/', "%s/static/img/" % request.application_url) texte = doc.texte.replace('static/img/', "%s/static/img/" % request.application_url)
@@ -199,10 +201,11 @@ def doc_view(request):
texte = markdowner.convert(texte) texte = markdowner.convert(texte)
return { return {
'page_title': intitule, 'page_title': doc.intitule,
'doc_id': doc_id,
'texte': texte, 'texte': texte,
'modif_le': doc.modif_le.strftime('%d/%m/%Y'), 'modif_le': doc.modif_le.strftime('%d/%m/%Y'),
'doc_id': doc_id, 'tags': tags,
'url_retour':url_retour 'url_retour':url_retour
} }