Feature #8620
closedEdit of mark make it unconfirmed
100%
Description
If I create a mark and then edit it (fix comment or add a tag), it becames unconfirmed. That is quite unexpected behaviour.
Updated by Evgeny Novikov about 7 years ago
- Tracker changed from Bug to Feature
- Category set to Bridge
- Assignee set to Vladimir Gratinskiy
- Priority changed from Normal to Urgent
- Target version set to 2.0
Indeed this is correct behavior by design. If an expert changes a mark somehow, he/she should confirm that all its associations still match changes made.
Nevertheless, I agree that sometimes it seems to be redundant, especially in a real production where experts need to analyze very many warnings. The expert can confirm that all associations will be valid in advance, e.g. when he/she fixes a grammar mistake in a mark description. Ditto, adding some tags can be considered as safe. For such the cases there should be an option to automatically reconfirm all associations confirmed before. Although, I suggest to disable this option by default, so that experts will think prior to enabling it.
There still should be changes preventing such automatic reconfirmation. Namely, I suggest to disable it when associations themselves can change. As far as I understand this is the case just in two scenarios, when the expert changes comparison attributes somehow (I think that nobody used this ever) and when the expert changes a comparison algorithm (this also seems to be done very-very seldom after recent improvements).
Updated by Vladimir Gratinskiy about 7 years ago
Associations "likes" would also be preserved if "autoconfirm" option is enabled.
Updated by Vladimir Gratinskiy about 7 years ago
- Due date set to 12/19/2017
- Status changed from New to Resolved
- % Done changed from 0 to 100
Implemented in branch "marks-imrovements".
Updated by Evgeny Novikov about 7 years ago
Vladimir Gratinskiy wrote:
Associations "likes" would also be preserved if "autoconfirm" option is enabled.
This is definitely well.
Updated by Evgeny Novikov almost 7 years ago
- Target version changed from 2.0 to 1.0
As far as we postpone Klever version:0.3, let's include this issue there.
Updated by Ilja Zakharov almost 7 years ago
Currently cannot edit unknown marks in the branch. Got the following exception:
Error while saving/creating mark: Cannot parse keyword query as dict
Traceback (most recent call last):
File "/work/zakharov/src/klever/bridge/marks/views.py", line 208, in save_mark
res = mutils.NewMark(request.user, savedata)
File "/work/zakharov/src/klever/bridge/marks/utils.py", line 200, in init
self.mark = self.__new_mark()
File "/work/zakharov/src/klever/bridge/marks/utils.py", line 246, in new_mark
mark = res.change_mark(self._inst)
File "/work/zakharov/src/klever/bridge/marks/UnknownUtils.py", line 128, in change_mark
self.changes = self.__create_changes(mark)
File "/work/zakharov/src/klever/bridge/marks/UnknownUtils.py", line 165, in __create_changes
for mr in MarkUnknownReport.objects.filter(changes):
File "/home/zakharov/.local/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/db/models/query.py", line 796, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/db/models/query.py", line 814, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/home/zakharov/.local/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1227, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1253, in _add_q
allow_joins=allow_joins, split_subq=split_subq,
File "/home/zakharov/.local/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1129, in build_filter
raise FieldError("Cannot parse keyword query as dict")
django.core.exceptions.FieldError: Cannot parse keyword query as dict
Stack (most recent call last):
File "/usr/lib/python3.5/threading.py", line 882, in _bootstrap
self._bootstrap_inner()
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3.5/socketserver.py", line 625, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.5/socketserver.py", line 354, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.5/socketserver.py", line 681, in __init
self.handle()
File "/home/zakharov/.local/lib/python3.5/site-packages/django/core/servers/basehttp.py", line 174, in handle
handler.run(self.server.get_app())
File "/usr/lib/python3.5/wsgiref/handlers.py", line 137, in run
self.result = application(self.environ, self.start_response)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 63, in call
return self.application(environ, start_response)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/core/handlers/wsgi.py", line 170, in call
response = self.get_response(request)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/core/handlers/base.py", line 124, in get_response
response = self._middleware_chain(request)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
response = self._get_response(request)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/zakharov/.local/lib/python3.5/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/work/zakharov/src/klever/bridge/tools/profiling.py", line 133, in wait
res = f(*args, **kwargs)
File "/work/zakharov/src/klever/bridge/marks/views.py", line 212, in save_mark
logger.exception("Error while saving/creating mark: %s" % e, stack_info=True)
Updated by Ilja Zakharov almost 7 years ago
- Status changed from Resolved to Open
Updated by Vladimir Gratinskiy almost 7 years ago
- Status changed from Open to Resolved
The bug was fixed.
Updated by Ilja Zakharov almost 7 years ago
- Status changed from Resolved to Closed
Available since cfc84c84.