diff --git a/cvat/apps/dashboard/static/dashboard/js/dashboard.js b/cvat/apps/dashboard/static/dashboard/js/dashboard.js index c9d9872e0afa43fa7e99305e4dd12ea0eaeae8c8..fd12444f43e3fe12ae44a0b94ff46afc689608e3 100644 --- a/cvat/apps/dashboard/static/dashboard/js/dashboard.js +++ b/cvat/apps/dashboard/static/dashboard/js/dashboard.js @@ -376,7 +376,7 @@ class DashboardView { const params = {}; const search = e.target.value.replace(/\s+/g, ' ').replace(/\s*:+\s*/g, ':').trim(); - for (let field of ['name', 'mode', 'owner', 'assignee', 'status']) { + for (let field of ['name', 'mode', 'owner', 'assignee', 'status', 'id']) { for (let param of search.split(' and ')) { if (param.includes(':')) { param = param.split(':'); diff --git a/cvat/apps/git/git.py b/cvat/apps/git/git.py index 2b2a7bbb1844675777334d59a1450b2b5e065bdc..eacb1d7845f99523ece4f1194bd2b6bd1a217a55 100644 --- a/cvat/apps/git/git.py +++ b/cvat/apps/git/git.py @@ -39,6 +39,17 @@ def _have_no_access_exception(ex): raise ex +def _read_old_diffs(diff_dir, summary): + diff_files = list(map(lambda x: os.path.join(diff_dir, x), os.listdir(diff_dir))) + for diff_file in diff_files: + diff_file = open(diff_file, 'r') + diff = json.loads(diff_file.read()) + + for action_key in diff: + summary[action_key] += sum([diff[action_key][key] for key in diff[action_key]]) + + + class Git: def __init__(self, db_git, tid, user): self._db_git = db_git @@ -273,13 +284,20 @@ class Git: self._rep.git.add(self._annotation_file) # Merge diffs - summary_diff = {} + summary_diff = { + "update": 0, + "create": 0, + "delete": 0 + } + + old_diffs_dir = os.path.join(os.path.dirname(self._diffs_dir), 'repos_diffs') + if (os.path.isdir(old_diffs_dir)): + _read_old_diffs(old_diffs_dir, summary_diff) + for diff_name in list(map(lambda x: os.path.join(self._diffs_dir, x), os.listdir(self._diffs_dir))): with open(diff_name, 'r') as f: diff = json.loads(f.read()) for key in diff: - if key not in summary_diff: - summary_diff[key] = 0 summary_diff[key] += diff[key] message = "CVAT Annotation updated by {}. \n".format(self._user["name"]) @@ -297,6 +315,7 @@ class Git: self._rep.index.commit(message) self._rep.git.push("origin", self._branch_name, "--force") + shutil.rmtree(old_diffs_dir, True) shutil.rmtree(self._diffs_dir, True) @@ -438,14 +457,10 @@ def _onsave(jid, user, data, action): "create": 0, "delete": 0 } - if os.path.isdir(diff_dir) and not os.path.isdir(diff_dir_v2): - diff_files = list(map(lambda x: os.path.join(diff_dir, x), os.listdir(diff_dir))) - for diff_file in diff_files: - diff_file = open(diff_file, 'r') - diff = json.loads(diff_file.read()) - - for action_key in diff: - summary[action_key] += sum([diff[action_key][key] for key in diff[action_key]]) + + if os.path.isdir(diff_dir): + _read_old_diffs(diff_dir, summary) + shutil.rmtree(diff_dir, True) os.makedirs(diff_dir_v2, exist_ok = True)