def add(): form = forms.FeatureForm() if form.validate_on_submit(): try: print(form.target_date.data) models.Feature.create( user = g.user._get_current_object(), title =form.title.data, description = form.description.data, client = form.client.data, client_priority= form.priority.data, target_date = form.target_date.data, ticket_url = form.ticket_url.data, product_area = form.product_area.data, percent_complete = form.percent_complete.data ) except IntegrityError: print('You are seeing an IntegrityError') #see if the prioirty is the problem num = int(form.priority.data) cust_name = form.client.data #get problem record records = models.Feature.select().where(models.Feature.client== cust_name) #need to update the records for priorities greater than number for record in records: print(record.client_priority, type(record.client_priority)) if record.client_priority >= num: with DATABASE.transaction(): record.client_priority += 1 record.save() print('record saved') print('The new priority is ', record.client_priority) with DATABASE.transaction(): models.Feature.create( user = g.user._get_current_object(), title =form.title.data, description = form.description.data, client = form.client.data, client_priority= str(num), target_date = form.target_date.data, ticket_url = form.ticket_url.data, product_area = form.product_area.data, percent_complete = form.percent_complete.data ) return render_template('add.html', form=form) return render_template('add.html', form=form)
def image_markers(image_id, stack_id, project_id): with DATABASE.transaction(): project_stack = models.ProjectStack.get(models.ProjectStack.project == project_id, models.ProjectStack.stack == stack_id) stack_image = models.StackImage.get(models.StackImage.stack == stack_id, models.StackImage.image == image_id) user = models.AppUser.get(models.AppUser.id == g.user_id) markers = (Marker.select().where( Marker.app_user == g.user_id, Marker.stack_image == stack_image.id, Marker.project_stack == project_stack.id) ) return jsonify({ 'markers': [marker.serialized for marker in markers] })
def save_image_markers(): try: with DATABASE.transaction(): request_obj = request.get_json() images = (request_obj['images']) stack_id = request_obj['stackId'] project_id = request_obj['projectId'] no_markers_placed = request_obj['noMarkersPlaced'] project_stack = models.ProjectStack.get( models.ProjectStack.project == project_id, models.ProjectStack.stack == stack_id ) saved_marker_count = 0 try: old_top_of_stack = ProjectStackDatum.get( ProjectStackDatum.data_type == "top image", ProjectStackDatum.user == g.user_id, ProjectStackDatum.project_stack == project_stack.id ) old_top_of_stack.delete_instance() except ProjectStackDatum.DoesNotExist: pass no_marker_stack_data = ProjectStackDatum.select().where( ProjectStackDatum.data_type == "project stack marker", ProjectStackDatum.value == "no markers placed", ProjectStackDatum.user == g.user_id, ProjectStackDatum.project_stack == project_stack.id ) for datum in no_marker_stack_data: datum.delete_instance() if no_markers_placed: try: ProjectStackDatum.create( data_type = "project stack marker", value = "no markers placed", user = g.user_id, project_stack = project_stack.id ) except Exception: return jsonify({ 'message': 'Saving markers failed' }), 500 for index, image in enumerate(images): stack_image = models.StackImage.get( models.StackImage.stack == stack_id, models.StackImage.image == image['id'] ) try: if image['isTopOfStack']: ProjectStackDatum.create( data_type = "top image", value = str(index), # "top image" property is zero-indexed user = g.user_id, project_stack = project_stack.id ) except KeyError: # this will hit if image is not top of probe, which is nbd pass except Exception: return jsonify({ 'message': 'Saving markers failed' }), 500 old_markers = (models.Marker.select().where( models.Marker.app_user == g.user_id, models.Marker.stack_image == stack_image.id, models.Marker.project_stack == project_stack.id) ) for marker in old_markers: marker.delete_instance() try: for marker in image['markers']: mark = models.Marker.create( image = image, app_user = g.user_id, stack_image = stack_image, project_stack = project_stack, marker_type = marker['markerType'], x_percent = marker['xPercent'], y_percent = marker['yPercent'] ) saved_marker_count += 1 if marker['markerType'] == 'neuron': mark.x_crosshair_percent = marker['xLengthPercent'] mark.y_crosshair_percent = marker['yHeightPercent'] mark.save() except KeyError: pass return jsonify({ 'message': '{0} markers saved'.format(saved_marker_count) }) except ValueError: return jsonify({ 'message': 'Saving markers failed.' })