comparison farol/document.py @ 66:f1705e90695b

Don't allow to add a revision without tracking information
author Benoît Allard <benoit.allard@greenbone.net>
date Thu, 09 Oct 2014 09:48:05 +0200
parents aad7db3f93b6
children 023080ffd995
comparison
equal deleted inserted replaced
65:08a24e470de2 66:f1705e90695b
21 # You should have received a copy of the GNU General Public License 21 # You should have received a copy of the GNU General Public License
22 # along with this program; if not, write to the Free Software 22 # along with this program; if not, write to the Free Software
23 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 23 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24 24
25 from flask import (Blueprint, render_template, abort, redirect, request, 25 from flask import (Blueprint, render_template, abort, redirect, request,
26 url_for) 26 url_for, flash)
27 27
28 from farolluz.parsers.cvrf import parseDate, parseVersion 28 from farolluz.parsers.cvrf import parseDate, parseVersion
29 from farolluz.cvrf import (CVRFNote, CVRFReference, CVRFPublisher, 29 from farolluz.cvrf import (CVRFNote, CVRFReference, CVRFPublisher,
30 CVRFTracking, CVRFTrackingID, CVRFGenerator, CVRFRevision, 30 CVRFTracking, CVRFTrackingID, CVRFGenerator, CVRFRevision,
31 CVRFAggregateSeverity) 31 CVRFAggregateSeverity)
74 def edit_tracking(): 74 def edit_tracking():
75 wasNone = False 75 wasNone = False
76 tracking = get_current()._tracking 76 tracking = get_current()._tracking
77 if tracking is None: 77 if tracking is None:
78 wasNone = True 78 wasNone = True
79 tracking = CVRFTracking(CVRFTrackingID(''), 'Draft', (0,), utcnow(), utcnow()) 79 tracking = CVRFTracking(CVRFTrackingID(''), 'Draft', (0,0), utcnow(), utcnow())
80 generator = tracking._generator 80 generator = tracking._generator
81 if not tracking._generator: 81 if not tracking._generator:
82 generator = CVRFGenerator() 82 generator = CVRFGenerator()
83 if request.method != 'POST': 83 if request.method != 'POST':
84 return render_template('document/edit_tracking.j2', tracking=tracking, version='.'.join('%s'%v for v in tracking._version), generator=generator, now=utcnow(), statuses=tracking.STATUSES) 84 return render_template('document/edit_tracking.j2', tracking=tracking, version='.'.join('%s'%v for v in tracking._version), generator=generator, now=utcnow(), statuses=tracking.STATUSES)
124 @document.route('/revision/add', methods=['GET', 'POST']) 124 @document.route('/revision/add', methods=['GET', 'POST'])
125 @document_required 125 @document_required
126 def add_revision(): 126 def add_revision():
127 tracking = get_current()._tracking 127 tracking = get_current()._tracking
128 if request.method != 'POST': 128 if request.method != 'POST':
129 if tracking is None:
130 flash('The tracking information should be set first to be able to add a revision.', 'danger')
131 return redirect(url_for('.edit_tracking'))
129 version = tracking._version 132 version = tracking._version
130 version = version[:-1] + (version[-1] + 1,) 133 version = version[:-1] + (version[-1] + 1,)
131 return render_template('document/edit_revision.j2', number='.'.join("%d"%v for v in version), date=utcnow(), action='Add') 134 return render_template('document/edit_revision.j2', number='.'.join("%d"%v for v in version), date=utcnow(), action='Add')
132 135
133 version = parseVersion(request.form['number']) 136 version = parseVersion(request.form['number'])

http://farol.wald.intevation.org