diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index e3f33a3..d81dc41 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -2804,14 +2804,13 @@ def is_watching(session, user, project): if watcher: return watcher.watch + watch=False if user == project.user.user: return True - watch=False for group in project.groups: - for guser in group.users: - if user == guser.username: - watch=True - break + if user in group.users: + watch=True + break return watch diff --git a/pagure/lib/model.py b/pagure/lib/model.py index e4ec0a2..104688f 100644 --- a/pagure/lib/model.py +++ b/pagure/lib/model.py @@ -334,7 +334,7 @@ class Project(BASE): unwatchers = relation("Watcher", primaryjoin="and_(Project.id==Watcher.project_id, " - "Watcher.watch=='1')") + "Watcher.watch=='0')") @property def path(self): @@ -486,31 +486,6 @@ class Project(BASE): return output - @property - def watchers_list(self): - ''' Return the list of username of users watching this project. - ''' - - watchers = set([self.user.user]) - for user in self.users: - if user.default_email: - watchers.add(user.user) - - for group in self.groups: - if group.creator.default_email: - watchers.add(group.creator.user) - for user in group.users: - if user.default_email: - watchers.add(user.default_email) - - for watcher in self.watchers: - if watcher.user.default_email and not watcher.watch: - watchers.delete(watcher.user.user) - if watcher.user.user not in watchers: - watchers.add(watcher.user.user) - - return watchers - class ProjectUser(BASE): """ Stores the user of a projects. diff --git a/pagure/templates/repo_master.html b/pagure/templates/repo_master.html index e47258d..dd58575 100644 --- a/pagure/templates/repo_master.html +++ b/pagure/templates/repo_master.html @@ -31,7 +31,7 @@ {% if authenticated %}
- + diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py index 7848718..824e220 100644 --- a/pagure/ui/repo.py +++ b/pagure/ui/repo.py @@ -147,6 +147,7 @@ def view_repo(repo, username=None): diff_commits=diff_commits, repo_admin=is_repo_admin(repo), form=pagure.forms.ConfirmationForm(), + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -247,6 +248,7 @@ def view_repo_branch(repo, branchname, username=None): diff_commits=diff_commits, repo_admin=is_repo_admin(repo), form=pagure.forms.ConfirmationForm(), + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -361,6 +363,7 @@ def view_commits(repo, branchname=None, username=None): total_page=total_page, repo_admin=is_repo_admin(repo), form=pagure.forms.ConfirmationForm(), + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -471,6 +474,7 @@ def view_file(repo, identifier, filename, username=None): content=content, output_type=output_type, repo_admin=is_repo_admin(repo), + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ), 200, headers @@ -632,6 +636,7 @@ def view_commit(repo, commitid, username=None): commitid=commitid, commit=commit, diff=diff, + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -720,6 +725,7 @@ def view_tree(repo, identifier=None, username=None): content=content, output_type=output_type, repo_admin=is_repo_admin(repo), + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -741,6 +747,7 @@ def view_forks(repo, username=None): username=username, repo=repo, repo_admin=is_repo_admin(repo), + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -768,6 +775,7 @@ def view_tags(repo, username=None): tags=tags, repo_admin=is_repo_admin(repo), repo_obj=repo_obj, + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -818,6 +826,7 @@ def new_release(repo, username=None): username=username, repo=repo, form=form, + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -904,6 +913,7 @@ def view_settings(repo, username=None): plugins=plugins, repo_admin=repo_admin, branchname = branchname, + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -1500,6 +1510,7 @@ def add_group_project(repo, username=None): form=form, username=username, repo=repo, + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -1606,6 +1617,7 @@ def add_token(repo, username=None): repo_admin=repo_admin, username=username, repo=repo, + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -1748,6 +1760,7 @@ def edit_file(repo, branchname, filename, username=None): form=form, user=user, branches=repo_obj.listall_branches(), + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo), ) @@ -1812,6 +1825,7 @@ def view_docs(repo, username=None, filename=None): filename=filename, endpoint='view_docs', select='docs', + watch=pagure.lib.is_watching(SESSION, flask.g.fas_user.username, repo_obj), ) @APP.route('//activity/')