def tracker_edit(id): tracker = Tracker.get_tracker(id) if tracker is None: flash('tracker with id {} does not exist'.format(id)) return redirect( url_for('trackerapp.trackerlist', filter_tracker='open')) form = EditTrackerForm(obj=tracker) form.project.choices = [(p.id, p.name) for p in TrkProject.get_all()] form.user_assigned.choices = [(u.username, u.username) for u in User.get_list_enabled_users()] if not form.project.choices: flash('No Projects exist!') return redirect(url_for('projects.projectlist')) if form.validate_on_submit(): tracker.title = form.title.data tracker.description = form.description.data tracker.priority = int(form.priority.data) tracker.status = int(form.status.data) tracker.project = form.project.data tracker.user_assigned = form.user_assigned.data tracker.prefix = TrkProject.get_project(tracker.project).prefix tracker.categories = form.categories.data files = form.images.data action = 'EDITED' for f in files: if f is not None and not f == '': filename = secure_filename(f.filename) if allowed_file(filename): if filename not in tracker.filenames: tracker.filenames.append(filename) if not os.path.exists( os.path.join(current_app.config['UPLOAD_FOLDER'], tracker.id)): os.mkdir( os.path.join(current_app.config['UPLOAD_FOLDER'], tracker.id)) f.save( os.path.join(current_app.config['UPLOAD_FOLDER'], tracker.id, filename)) action = 'ADDED IMAGES' tracker.user_assigned = current_user.username if tracker.status == 0: tracker.status = 1 #working else: flash('File {} skipped because not image'.format(filename)) tracker.update_tracker_by_form() flash('Tracker {} updated'.format(tracker.number)) TrkChanges.create_change(current_user.username, tracker, tracker.project, action) return redirect( url_for('trackerapp.trackerlist', filter_tracker='open')) else: return render_template('trackerapp/tracker_edit.html', form=form, tracker=tracker, title=Tracker.title)
def add_tracker(): form = AddTrackerForm() form.project.choices = [(p.id, p.name) for p in TrkProject.get_all()] form.user_assigned.choices = [(u.username, u.username) for u in User.get_list_enabled_users()] form.user_assigned.data = current_user.username if 'sessionproject' in session and session['sessionproject'] != 'ALL': form.project.data = session['sessionproject'] if not form.project.choices: flash('No Projects exist!') return redirect(url_for('projects.projectlist', filter_tracker='open')) if form.validate_on_submit(): tracker = Tracker.add_tracker(form.title.data, form.project.data) tracker.description = form.description.data tracker.priority = int(form.priority.data) tracker.project = form.project.data tracker.prefix = TrkProject.get_project(tracker.project).prefix tracker.categories = form.categories.data tracker.user_assigned = form.user_assigned.data files = form.images.data for f in files: if f is not None and not f == '': filename = secure_filename(f.filename) if allowed_file(filename): tracker.filenames.append(filename) if not os.path.exists( os.path.join(current_app.config['UPLOAD_FOLDER'], tracker.id)): os.mkdir( os.path.join(current_app.config['UPLOAD_FOLDER'], tracker.id)) f.save( os.path.join(current_app.config['UPLOAD_FOLDER'], tracker.id, filename)) else: flash('File {} skipped because not image'.format(filename)) tracker.update_tracker_by_form() TrkChanges.create_change(current_user.username, tracker, tracker.project, 'CREATED') return redirect(url_for('trackerapp.tracker_info', id=tracker.id)) return render_template('trackerapp/add_tracker.html', form=form, title='Add tracker')