Auto status change to "Under Review"
Pull request !2362
Created on
Thu, 01 Jul 2021 12:06:29,
# import all the libraries
import numpy as np
import re
import nltk
from sklearn.datasets import load_files
nltk.download('stopwords')
import pickle
import pandas as pd
from sklearn.multioutput import MultiOutputClassifier
from sklearn.preprocessing import LabelEncoder
from nltk.corpus import stopwords
from collections import defaultdict
from sklearn.model_selection import RepeatedStratifiedKFold
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
import joblib
pd.options.display.float_format = "{:,.2f}".format
df = pd.read_csv(r'/Users/tabetibrahim/Desktop/Vona/vef/facture_mobile_mars_avril_2021.csv', sep=";")
data_set = df[['Tem section 1', 'Tem section 2','Tem section 3','Description facture operateur']]
data_set.head()
tem_section= data_set[['Tem section 1', 'Tem section 2','Tem section 3']]
tem_en= data_set[['Tem section 1', 'Tem section 2','Tem section 3']]
labelencoder = LabelEncoder()
le = LabelEncoder()
encoder_dict = defaultdict(LabelEncoder)
df_encode = tem_en.apply(lambda x: encoder_dict[x.name].fit_transform(x))
inverse_transform_lambda = df_encode.apply(lambda x: encoder_dict[x.name].inverse_transform(x))
X, y = data_set[['Description facture operateur']], tem_section
import nltk
import pandas as pd
import numpy as np
from nltk.stem import PorterStemmer
from nltk.corpus import stopwords
# If not previously performed:
# nltk.download('stopwords')
stemming = PorterStemmer()
stops = set(stopwords.words("french"))
def apply_cleaning_function_to_list(X):
cleaned_X = []
for element in X:
cleaned_X.append(clean_text(element))
return cleaned_X
def clean_text(raw_text):
"""This function works on a raw text string, and:
1) changes to lower case
2) tokenizes (breaks down into words
3) removes punctuation and non-word text
4) finds word stems
5) removes stop words
6) rejoins meaningful stem words"""
# Convert to lower case
text = raw_text.lower()
# Tokenize
tokens = nltk.word_tokenize(text)
# Keep only words (removes punctuation + numbers)
# use .isalnum to keep also numbers
token_words = [w for w in tokens if w.isalpha()]
# Stemming
stemmed_words = [stemming.stem(w) for w in token_words]
# Remove stop words
meaningful_words = [w for w in stemmed_words if not w in stops]
# Rejoin meaningful stemmed words
joined_words = ( " ".join(meaningful_words))
# Return cleaned data
return joined_words
# Get text to clean
text_to_clean = list(data_set['Description facture operateur'])
# Clean text
cleaned_text = apply_cleaning_function_to_list(text_to_clean)
# Add cleaned data back into DataFrame
data_set['cleaned_review'] = cleaned_text
# Remove temporary cleaned_text list (after transfer to DataFrame)
del cleaned_text
from sklearn.model_selection import train_test_split
X = list(data_set['cleaned_review'])
y = df_encode
X_train, X_test, y_train, y_test = train_test_split(
X,y, test_size = 0.25)
def create_bag_of_words(X):
from sklearn.feature_extraction.text import CountVectorizer
print ('Creating bag of words...')
# Initialize the "CountVectorizer" object, which is scikit-learn's
# bag of words tool.
# In this example features may be single words or two consecutive words
# (as shown by ngram_range = 1,2)
vectorizer = CountVectorizer(analyzer = "word", \
tokenizer = None, \
preprocessor = None, \
stop_words = None, \
ngram_range = (1,2), \
max_features = 10000
)
# fit_transform() does two functions: First, it fits the model
# and learns the vocabulary; second, it transforms our training data
# into feature vectors. The input to fit_transform should be a list of
# strings. The output is a sparse array
train_data_features = vectorizer.fit_transform(X)
# Convert to a NumPy array for easy of handling
train_data_features = train_data_features.toarray()
# tfidf transform
from sklearn.feature_extraction.text import TfidfTransformer
tfidf = TfidfTransformer()
tfidf_features = tfidf.fit_transform(train_data_features).toarray()
# Get words in the vocabulary
vocab = vectorizer.get_feature_names()
return vectorizer, vocab, train_data_features, tfidf_features, tfidf
vectorizer, vocab, train_data_features, tfidf_features, tfidf = \
create_bag_of_words(X_train)
def train_logistic_regression(features, label):
print ("Training the logistic regression model...")
from sklearn.linear_model import LogisticRegression
ml_model = MultiOutputClassifier(LogisticRegression(C = 0.1, solver = 'newton-cg', penalty = 'l2',multi_class = 'multinomial'))
ml_model.fit(features, label)
print ('Finished')
return ml_model
ml_model = train_logistic_regression(tfidf_features, y_train)
test_data_features = vectorizer.transform(X_test)
# Convert to numpy array
test_data_features = test_data_features.toarray()
test_data_tfidf_features = tfidf.fit_transform(test_data_features)
# Convert to numpy array
test_data_tfidf_features = test_data_tfidf_features.toarray()
predicted_y = ml_model.predict(test_data_tfidf_features)
correctly_identified_y = predicted_y == y_test
accuracy = np.mean(correctly_identified_y) * 100
1 version available for this pull request,
show versions.
There are new changes for `branch:stable` in source repository, please consider updating this pull request.
ver | Time | Author | Commit | Description | ||
---|---|---|---|---|---|---|
24 commits hidden, click expand to show them. |
@@ -0,0 +1,40 b'' | |||
|
1 | |RCE| 4.25.1 |RNS| | |
|
2 | ------------------ | |
|
3 | ||
|
4 | Release Date | |
|
5 | ^^^^^^^^^^^^ | |
|
6 | ||
|
7 | - 2021-04-06 | |
|
8 | ||
|
9 | ||
|
10 | New Features | |
|
11 | ^^^^^^^^^^^^ | |
|
12 | ||
|
13 | ||
|
14 | ||
|
15 | General | |
|
16 | ^^^^^^^ | |
|
17 | ||
|
18 | ||
|
19 | ||
|
20 | Security | |
|
21 | ^^^^^^^^ | |
|
22 | ||
|
23 | ||
|
24 | ||
|
25 | Performance | |
|
26 | ^^^^^^^^^^^ | |
|
27 | ||
|
28 | ||
|
29 | ||
|
30 | Fixes | |
|
31 | ^^^^^ | |
|
32 | ||
|
33 | - Artifacts: fixed admin panel bad urls generated for the new artifacts admin view in CE edition. | |
|
34 | ||
|
35 | ||
|
36 | ||
|
37 | Upgrade notes | |
|
38 | ^^^^^^^^^^^^^ | |
|
39 | ||
|
40 | - Un-scheduled release addressing problems in 4.25.X releases. |
@@ -0,0 +1,53 b'' | |||
|
1 | |RCE| 4.25.2 |RNS| | |
|
2 | ------------------ | |
|
3 | ||
|
4 | Release Date | |
|
5 | ^^^^^^^^^^^^ | |
|
6 | ||
|
7 | - 2021-04-14 | |
|
8 | ||
|
9 | ||
|
10 | New Features | |
|
11 | ^^^^^^^^^^^^ | |
|
12 | ||
|
13 | ||
|
14 | ||
|
15 | General | |
|
16 | ^^^^^^^ | |
|
17 | ||
|
18 | - Comments: refresh on draft sidebar on draft submit. | |
|
19 | - Vcsserver: log exceptions into the logs | |
|
20 | - Archiving: make it explicit archiving a repo is irreversible. | |
|
21 | - My-account: updated bookmarks UX | |
|
22 | - Pull requests: added awaiting my review filter for users pull-requests. | |
|
23 | Additionally the awaiting my review now properly filters pull requests that have no review votes on them. | |
|
24 | ||
|
25 | ||
|
26 | Security | |
|
27 | ^^^^^^^^ | |
|
28 | ||
|
29 | ||
|
30 | ||
|
31 | Performance | |
|
32 | ^^^^^^^^^^^ | |
|
33 | ||
|
34 | ||
|
35 | ||
|
36 | Fixes | |
|
37 | ^^^^^ | |
|
38 | ||
|
39 | - Draft comments: fixed logic in toggle all draft for submit. | |
|
40 | - Draft comments: when submitting edited drafts also clear the history to prevent DB problems. | |
|
41 | - Mercurial: fixed a case of lookup branches that had 40 characters in length. | |
|
42 | - Gists: block id input for public gists. | |
|
43 | - Pull requests: fixed problems with unicode characters in branches. | |
|
44 | - Pull requests: small ui fix for grid. | |
|
45 | - Summary: fixed ui on summary page for non-admins. | |
|
46 | The setup instructions were broken if user had no write permissions. | |
|
47 | - Users: make user data loading more resilient to errors. | |
|
48 | ||
|
49 | ||
|
50 | Upgrade notes | |
|
51 | ^^^^^^^^^^^^^ | |
|
52 | ||
|
53 | - Scheduled release addressing problems in 4.25.X releases. |
@@ -0,0 +1,40 b'' | |||
|
1 | # -*- coding: utf-8 -*- | |
|
2 | ||
|
3 | # Copyright (C) 2016-2020 RhodeCode GmbH | |
|
4 | # | |
|
5 | # This program is free software: you can redistribute it and/or modify | |
|
6 | # it under the terms of the GNU Affero General Public License, version 3 | |
|
7 | # (only), as published by the Free Software Foundation. | |
|
8 | # | |
|
9 | # This program is distributed in the hope that it will be useful, | |
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
12 | # GNU General Public License for more details. | |
|
13 | # | |
|
14 | # You should have received a copy of the GNU Affero General Public License | |
|
15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
|
16 | # | |
|
17 | # This program is dual-licensed. If you wish to learn more about the | |
|
18 | # RhodeCode Enterprise Edition, including its added features, Support services, | |
|
19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
|
20 | ||
|
21 | import logging | |
|
22 | ||
|
23 | from rhodecode.apps._base import BaseAppView, DataGridAppView | |
|
24 | from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator | |
|
25 | ||
|
26 | log = logging.getLogger(__name__) | |
|
27 | ||
|
28 | ||
|
29 | class AdminArtifactsView(BaseAppView, DataGridAppView): | |
|
30 | ||
|
31 | def load_default_context(self): | |
|
32 | c = self._get_local_tmpl_context() | |
|
33 | return c | |
|
34 | ||
|
35 | @LoginRequired() | |
|
36 | @HasPermissionAllDecorator('hg.admin') | |
|
37 | def artifacts(self): | |
|
38 | c = self.load_default_context() | |
|
39 | c.active = 'artifacts' | |
|
40 | return self._get_template_context(c) |
@@ -0,0 +1,39 b'' | |||
|
1 | ## -*- coding: utf-8 -*- | |
|
2 | <%inherit file="/base/base.mako"/> | |
|
3 | ||
|
4 | <%def name="title()"> | |
|
5 | ${_('Artifacts Admin')} | |
|
6 | %if c.rhodecode_name: | |
|
7 | · ${h.branding(c.rhodecode_name)} | |
|
8 | %endif | |
|
9 | </%def> | |
|
10 | ||
|
11 | <%def name="breadcrumbs_links()"></%def> | |
|
12 | ||
|
13 | <%def name="menu_bar_nav()"> | |
|
14 | ${self.menu_items(active='admin')} | |
|
15 | </%def> | |
|
16 | ||
|
17 | <%def name="menu_bar_subnav()"> | |
|
18 | ${self.admin_menu(active='artifacts')} | |
|
19 | </%def> | |
|
20 | ||
|
21 | <%def name="main()"> | |
|
22 | ||
|
23 | <div class="box"> | |
|
24 | ||
|
25 | <div class="panel panel-default"> | |
|
26 | <div class="panel-heading"> | |
|
27 | <h3 class="panel-title">${_('Artifacts Administration.')}</h3> | |
|
28 | </div> | |
|
29 | <div class="panel-body"> | |
|
30 | <h4>${_('This feature is available in RhodeCode EE edition only. Contact {sales_email} to obtain a trial license.').format(sales_email='<a href="mailto:sales@rhodecode.com">sales@rhodecode.com</a>')|n}</h4> | |
|
31 | ||
|
32 | </div> | |
|
33 | </div> | |
|
34 | ||
|
35 | </div> | |
|
36 | ||
|
37 | ||
|
38 | </%def> | |
|
39 |
@@ -1,5 +1,6 b'' | |||
|
1 | 1 | [bumpversion] |
|
2 |
current_version = 4.25. |
|
|
2 | current_version = 4.25.2 | |
|
3 | 3 | message = release: Bump version {current_version} to {new_version} |
|
4 | 4 | |
|
5 | 5 | [bumpversion:file:rhodecode/VERSION] |
|
6 |
@@ -75,3 +75,5 b' 56310d93b33b97535908ef9c7b0985b89bb7fad2' | |||
|
75 | 75 | 7637c38528fa38c1eabc1fde6a869c20995a0da7 v4.23.2 |
|
76 | 76 | 6aeb4ac3ef7f0ac699c914740dad3688c9495e83 v4.24.0 |
|
77 | 77 | 6eaf953da06e468a4c4e5239d3d0e700bda6b163 v4.24.1 |
|
78 | f8161cbc2d94a935d3c395a0e758d9a094287169 v4.25.0 | |
|
79 | 77fe47b5b39338e71b2c040de2c0359b529b6251 v4.25.1 |
@@ -21,7 +21,7 b' done = true' | |||
|
21 | 21 | |
|
22 | 22 | [release] |
|
23 | 23 | state = prepared |
|
24 |
version = 4. |
|
|
24 | version = 4.25.2 | |
|
25 | 25 | |
|
26 | 26 | [task:updated_translation] |
|
27 | 27 |
@@ -9,6 +9,8 b' Release Notes' | |||
|
9 | 9 | .. toctree:: |
|
10 | 10 | :maxdepth: 1 |
|
11 | 11 | |
|
12 | release-notes-4.25.2.rst | |
|
13 | release-notes-4.25.1.rst | |
|
12 | 14 | release-notes-4.25.0.rst |
|
13 | 15 | release-notes-4.24.1.rst |
|
14 | 16 | release-notes-4.24.0.rst |
@@ -1883,7 +1883,7 b' self: super: {' | |||
|
1883 | 1883 | }; |
|
1884 | 1884 | }; |
|
1885 | 1885 | "rhodecode-enterprise-ce" = super.buildPythonPackage { |
|
1886 |
name = "rhodecode-enterprise-ce-4.25. |
|
|
1886 | name = "rhodecode-enterprise-ce-4.25.2"; | |
|
1887 | 1887 | buildInputs = [ |
|
1888 | 1888 | self."pytest" |
|
1889 | 1889 | self."py" |
@@ -27,6 +27,7 b' def admin_routes(config):' | |||
|
27 | 27 | Admin prefixed routes |
|
28 | 28 | """ |
|
29 | 29 | from rhodecode.apps.admin.views.audit_logs import AdminAuditLogsView |
|
30 | from rhodecode.apps.admin.views.artifacts import AdminArtifactsView | |
|
30 | 31 | from rhodecode.apps.admin.views.defaults import AdminDefaultSettingsView |
|
31 | 32 | from rhodecode.apps.admin.views.exception_tracker import ExceptionsTrackerView |
|
32 | 33 | from rhodecode.apps.admin.views.main_views import AdminMainView |
@@ -60,6 +61,34 b' def admin_routes(config):' | |||
|
60 | 61 | route_name='admin_audit_log_entry', request_method='GET', |
|
61 | 62 | renderer='rhodecode:templates/admin/admin_audit_log_entry.mako') |
|
62 | 63 | |
|
64 | # Artifacts EE feature | |
|
65 | config.add_route( | |
|
66 | 'admin_artifacts', | |
|
67 | pattern=ADMIN_PREFIX + '/artifacts') | |
|
68 | config.add_route( | |
|
69 | 'admin_artifacts_show_all', | |
|
70 | pattern=ADMIN_PREFIX + '/artifacts') | |
|
71 | config.add_view( | |
|
72 | AdminArtifactsView, | |
|
73 | attr='artifacts', | |
|
74 | route_name='admin_artifacts', request_method='GET', | |
|
75 | renderer='rhodecode:templates/admin/artifacts/artifacts.mako') | |
|
76 | config.add_view( | |
|
77 | AdminArtifactsView, | |
|
78 | attr='artifacts', | |
|
79 | route_name='admin_artifacts_show_all', request_method='GET', | |
|
80 | renderer='rhodecode:templates/admin/artifacts/artifacts.mako') | |
|
81 | # EE views | |
|
82 | config.add_route( | |
|
83 | name='admin_artifacts_show_info', | |
|
84 | pattern=ADMIN_PREFIX + '/artifacts/{uid}') | |
|
85 | config.add_route( | |
|
86 | name='admin_artifacts_delete', | |
|
87 | pattern=ADMIN_PREFIX + '/artifacts/{uid}/delete') | |
|
88 | config.add_route( | |
|
89 | name='admin_artifacts_update', | |
|
90 | pattern=ADMIN_PREFIX + '/artifacts/{uid}/update') | |
|
91 | ||
|
63 | 92 | config.add_route( |
|
64 | 93 | name='admin_settings_open_source', |
|
65 | 94 | pattern='/settings/open_source') |
@@ -76,7 +76,11 b' class TestMyAccountEdit(TestController):' | |||
|
76 | 76 | 'requests requiring your participation.') |
|
77 | 77 | |
|
78 | 78 | @pytest.mark.backends("git", "hg") |
|
79 | def test_my_account_my_pullrequests_data(self, pr_util, xhr_header): | |
|
79 | @pytest.mark.parametrize('params, expected_title', [ | |
|
80 | ({'closed': 1}, 'Closed'), | |
|
81 | ({'awaiting_my_review': 1}, 'Awaiting my review'), | |
|
82 | ]) | |
|
83 | def test_my_account_my_pullrequests_data(self, pr_util, xhr_header, params, expected_title): | |
|
80 | 84 | self.log_user() |
|
81 | 85 | response = self.app.get(route_path('my_account_pullrequests_data'), |
|
82 | 86 | extra_environ=xhr_header) |
@@ -43,7 +43,7 b' from rhodecode.model.comment import Comm' | |||
|
43 | 43 | from rhodecode.model.db import ( |
|
44 | 44 | IntegrityError, or_, in_filter_generator, |
|
45 | 45 | Repository, UserEmailMap, UserApiKeys, UserFollowing, |
|
46 | PullRequest, UserBookmark, RepoGroup) | |
|
46 | PullRequest, UserBookmark, RepoGroup, ChangesetStatus) | |
|
47 | 47 | from rhodecode.model.meta import Session |
|
48 | 48 | from rhodecode.model.pull_request import PullRequestModel |
|
49 | 49 | from rhodecode.model.user import UserModel |
@@ -654,21 +654,31 b' class MyAccountView(BaseAppView, DataGri' | |||
|
654 | 654 | Session().commit() |
|
655 | 655 | return user.user_data['notification_status'] |
|
656 | 656 | |
|
657 | def _get_pull_requests_list(self, statuses): | |
|
657 | def _get_pull_requests_list(self, statuses, filter_type=None): | |
|
658 | 658 | draw, start, limit = self._extract_chunk(self.request) |
|
659 | 659 | search_q, order_by, order_dir = self._extract_ordering(self.request) |
|
660 | 660 | |
|
661 | 661 | _render = self.request.get_partial_renderer( |
|
662 | 662 | 'rhodecode:templates/data_table/_dt_elements.mako') |
|
663 | 663 | |
|
664 | pull_requests = PullRequestModel().get_im_participating_in( | |
|
665 | user_id=self._rhodecode_user.user_id, | |
|
666 | statuses=statuses, query=search_q, | |
|
667 | offset=start, length=limit, order_by=order_by, | |
|
668 | order_dir=order_dir) | |
|
664 | if filter_type == 'awaiting_my_review': | |
|
665 | pull_requests = PullRequestModel().get_im_participating_in_for_review( | |
|
666 | user_id=self._rhodecode_user.user_id, | |
|
667 | statuses=statuses, query=search_q, | |
|
668 | offset=start, length=limit, order_by=order_by, | |
|
669 | order_dir=order_dir) | |
|
669 | 670 | |
|
670 | pull_requests_total_count = PullRequestModel().count_im_participating_in( | |
|
671 | user_id=self._rhodecode_user.user_id, statuses=statuses, query=search_q) | |
|
671 | pull_requests_total_count = PullRequestModel().count_im_participating_in_for_review( | |
|
672 | user_id=self._rhodecode_user.user_id, statuses=statuses, query=search_q) | |
|
673 | else: | |
|
674 | pull_requests = PullRequestModel().get_im_participating_in( | |
|
675 | user_id=self._rhodecode_user.user_id, | |
|
676 | statuses=statuses, query=search_q, | |
|
677 | offset=start, length=limit, order_by=order_by, | |
|
678 | order_dir=order_dir) | |
|
679 | ||
|
680 | pull_requests_total_count = PullRequestModel().count_im_participating_in( | |
|
681 | user_id=self._rhodecode_user.user_id, statuses=statuses, query=search_q) | |
|
672 | 682 | |
|
673 | 683 | data = [] |
|
674 | 684 | comments_model = CommentsModel() |
@@ -678,6 +688,12 b' class MyAccountView(BaseAppView, DataGri' | |||
|
678 | 688 | repo_id, pull_request=pr, include_drafts=False, count_only=True) |
|
679 | 689 | owned = pr.user_id == self._rhodecode_user.user_id |
|
680 | 690 | |
|
691 | review_statuses = pr.reviewers_statuses(user=self._rhodecode_db_user) | |
|
692 | my_review_status = ChangesetStatus.STATUS_NOT_REVIEWED | |
|
693 | if review_statuses and review_statuses[4]: | |
|
694 | _review_obj, _user, _reasons, _mandatory, statuses = review_statuses | |
|
695 | my_review_status = statuses[0][1].status | |
|
696 | ||
|
681 | 697 | data.append({ |
|
682 | 698 | 'target_repo': _render('pullrequest_target_repo', |
|
683 | 699 | pr.target_repo.repo_name), |
@@ -688,6 +704,8 b' class MyAccountView(BaseAppView, DataGri' | |||
|
688 | 704 | 'name_raw': pr.pull_request_id, |
|
689 | 705 | 'status': _render('pullrequest_status', |
|
690 | 706 | pr.calculated_review_status()), |
|
707 | 'my_status': _render('pullrequest_status', | |
|
708 | my_review_status), | |
|
691 | 709 | 'title': _render('pullrequest_title', pr.title, pr.description), |
|
692 | 710 | 'description': h.escape(pr.description), |
|
693 | 711 | 'updated_on': _render('pullrequest_updated_on', |
@@ -723,7 +741,14 b' class MyAccountView(BaseAppView, DataGri' | |||
|
723 | 741 | c.active = 'pullrequests' |
|
724 | 742 | req_get = self.request.GET |
|
725 | 743 | |
|
726 |
c.closed = str2bool(req_get.get(' |
|
|
744 | c.closed = str2bool(req_get.get('closed')) | |
|
745 | c.awaiting_my_review = str2bool(req_get.get('awaiting_my_review')) | |
|
746 | ||
|
747 | c.selected_filter = 'all' | |
|
748 | if c.closed: | |
|
749 | c.selected_filter = 'all_closed' | |
|
750 | if c.awaiting_my_review: | |
|
751 | c.selected_filter = 'awaiting_my_review' | |
|
727 | 752 | |
|
728 | 753 | return self._get_template_context(c) |
|
729 | 754 | |
@@ -732,13 +757,19 b' class MyAccountView(BaseAppView, DataGri' | |||
|
732 | 757 | def my_account_pullrequests_data(self): |
|
733 | 758 | self.load_default_context() |
|
734 | 759 | req_get = self.request.GET |
|
760 | ||
|
761 | awaiting_my_review = str2bool(req_get.get('awaiting_my_review')) | |
|
735 | 762 | closed = str2bool(req_get.get('closed')) |
|
736 | 763 | |
|
737 | 764 | statuses = [PullRequest.STATUS_NEW, PullRequest.STATUS_OPEN] |
|
738 | 765 | if closed: |
|
739 | 766 | statuses += [PullRequest.STATUS_CLOSED] |
|
740 | 767 | |
|
741 | data = self._get_pull_requests_list(statuses=statuses) | |
|
768 | filter_type = \ | |
|
769 | 'awaiting_my_review' if awaiting_my_review \ | |
|
770 | else None | |
|
771 | ||
|
772 | data = self._get_pull_requests_list(statuses=statuses, filter_type=filter_type) | |
|
742 | 773 | return data |
|
743 | 774 | |
|
744 | 775 | @LoginRequired() |
@@ -41,7 +41,7 b' class TestPullRequestList(object):' | |||
|
41 | 41 | |
|
42 | 42 | @pytest.mark.parametrize('params, expected_title', [ |
|
43 | 43 | ({'source': 0, 'closed': 1}, 'Closed'), |
|
44 |
({'source': 0, 'my': 1}, ' |
|
|
44 | ({'source': 0, 'my': 1}, 'Created by me'), | |
|
45 | 45 | ({'source': 0, 'awaiting_review': 1}, 'Awaiting review'), |
|
46 | 46 | ({'source': 0, 'awaiting_my_review': 1}, 'Awaiting my review'), |
|
47 | 47 | ({'source': 1}, 'From this repo'), |
@@ -79,21 +79,20 b' class RepoPullRequestsView(RepoAppView, ' | |||
|
79 | 79 | |
|
80 | 80 | if filter_type == 'awaiting_review': |
|
81 | 81 | pull_requests = PullRequestModel().get_awaiting_review( |
|
82 | repo_name, search_q=search_q, source=source, opened_by=opened_by, | |
|
83 | statuses=statuses, offset=start, length=limit, | |
|
84 | order_by=order_by, order_dir=order_dir) | |
|
82 | repo_name, | |
|
83 | search_q=search_q, statuses=statuses, | |
|
84 | offset=start, length=limit, order_by=order_by, order_dir=order_dir) | |
|
85 | 85 | pull_requests_total_count = PullRequestModel().count_awaiting_review( |
|
86 | repo_name, search_q=search_q, source=source, statuses=statuses, | |
|
87 | opened_by=opened_by) | |
|
86 | repo_name, | |
|
87 | search_q=search_q, statuses=statuses) | |
|
88 | 88 | elif filter_type == 'awaiting_my_review': |
|
89 | 89 | pull_requests = PullRequestModel().get_awaiting_my_review( |
|
90 | repo_name, search_q=search_q, source=source, opened_by=opened_by, | |
|
91 |
|
|
|
92 | offset=start, length=limit, order_by=order_by, | |
|
93 | order_dir=order_dir) | |
|
90 | repo_name, self._rhodecode_user.user_id, | |
|
91 | search_q=search_q, statuses=statuses, | |
|
92 | offset=start, length=limit, order_by=order_by, order_dir=order_dir) | |
|
94 | 93 | pull_requests_total_count = PullRequestModel().count_awaiting_my_review( |
|
95 |
repo_name, |
|
|
96 |
statuses=statuses |
|
|
94 | repo_name, self._rhodecode_user.user_id, | |
|
95 | search_q=search_q, statuses=statuses) | |
|
97 | 96 | else: |
|
98 | 97 | pull_requests = PullRequestModel().get_all( |
|
99 | 98 | repo_name, search_q=search_q, source=source, opened_by=opened_by, |
@@ -110,6 +109,12 b' class RepoPullRequestsView(RepoAppView, ' | |||
|
110 | 109 | self.db_repo.repo_id, pull_request=pr, |
|
111 | 110 | include_drafts=False, count_only=True) |
|
112 | 111 | |
|
112 | review_statuses = pr.reviewers_statuses(user=self._rhodecode_db_user) | |
|
113 | my_review_status = ChangesetStatus.STATUS_NOT_REVIEWED | |
|
114 | if review_statuses and review_statuses[4]: | |
|
115 | _review_obj, _user, _reasons, _mandatory, statuses = review_statuses | |
|
116 | my_review_status = statuses[0][1].status | |
|
117 | ||
|
113 | 118 | data.append({ |
|
114 | 119 | 'name': _render('pullrequest_name', |
|
115 | 120 | pr.pull_request_id, pr.pull_request_state, |
@@ -118,6 +123,8 b' class RepoPullRequestsView(RepoAppView, ' | |||
|
118 | 123 | 'name_raw': pr.pull_request_id, |
|
119 | 124 | 'status': _render('pullrequest_status', |
|
120 | 125 | pr.calculated_review_status()), |
|
126 | 'my_status': _render('pullrequest_status', | |
|
127 | my_review_status), | |
|
121 | 128 | 'title': _render('pullrequest_title', pr.title, pr.description), |
|
122 | 129 | 'description': h.escape(pr.description), |
|
123 | 130 | 'updated_on': _render('pullrequest_updated_on', |
This diff has been collapsed as it changes many lines, (635 lines changed) Show them Hide them | |||
@@ -6,9 +6,9 b'' | |||
|
6 | 6 | #, fuzzy |
|
7 | 7 | msgid "" |
|
8 | 8 | msgstr "" |
|
9 |
"Project-Id-Version: rhodecode-enterprise-ce 4.2 |
|
|
9 | "Project-Id-Version: rhodecode-enterprise-ce 4.25.0\n" | |
|
10 | 10 | "Report-Msgid-Bugs-To: marcin@rhodecode.com\n" |
|
11 |
"POT-Creation-Date: 2021-0 |
|
|
11 | "POT-Creation-Date: 2021-04-05 19:29+0000\n" | |
|
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
|
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
|
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
@@ -111,7 +111,7 b' msgstr ""' | |||
|
111 | 111 | #: rhodecode/apps/admin/views/settings.py:156 |
|
112 | 112 | #: rhodecode/apps/admin/views/settings.py:291 |
|
113 | 113 | #: rhodecode/apps/admin/views/settings.py:360 |
|
114 |
#: rhodecode/apps/admin/views/settings.py:66 |
|
|
114 | #: rhodecode/apps/admin/views/settings.py:664 | |
|
115 | 115 | #: rhodecode/apps/repository/views/repo_settings_vcs.py:116 |
|
116 | 116 | msgid "Some form inputs contain invalid data." |
|
117 | 117 | msgstr "" |
@@ -135,54 +135,54 b' msgstr ""' | |||
|
135 | 135 | msgid "Updated application settings" |
|
136 | 136 | msgstr "" |
|
137 | 137 | |
|
138 |
#: rhodecode/apps/admin/views/settings.py: |
|
|
138 | #: rhodecode/apps/admin/views/settings.py:400 | |
|
139 | 139 | msgid "Updated visualisation settings" |
|
140 | 140 | msgstr "" |
|
141 | 141 | |
|
142 |
#: rhodecode/apps/admin/views/settings.py:40 |
|
|
142 | #: rhodecode/apps/admin/views/settings.py:403 | |
|
143 | 143 | msgid "Error occurred during updating visualisation settings" |
|
144 | 144 | msgstr "" |
|
145 | 145 | |
|
146 |
#: rhodecode/apps/admin/views/settings.py:46 |
|
|
146 | #: rhodecode/apps/admin/views/settings.py:465 | |
|
147 | 147 | #: rhodecode/apps/repository/views/repo_settings_issue_trackers.py:115 |
|
148 | 148 | msgid "Invalid issue tracker pattern: {}" |
|
149 | 149 | msgstr "" |
|
150 | 150 | |
|
151 |
#: rhodecode/apps/admin/views/settings.py:48 |
|
|
151 | #: rhodecode/apps/admin/views/settings.py:482 | |
|
152 | 152 | #: rhodecode/apps/repository/views/repo_settings_issue_trackers.py:124 |
|
153 | 153 | msgid "Updated issue tracker entries" |
|
154 | 154 | msgstr "" |
|
155 | 155 | |
|
156 |
#: rhodecode/apps/admin/views/settings.py:49 |
|
|
156 | #: rhodecode/apps/admin/views/settings.py:499 | |
|
157 | 157 | #: rhodecode/apps/repository/views/repo_settings_issue_trackers.py:82 |
|
158 | 158 | msgid "Removed issue tracker entry." |
|
159 | 159 | msgstr "" |
|
160 | 160 | |
|
161 |
#: rhodecode/apps/admin/views/settings.py:53 |
|
|
161 | #: rhodecode/apps/admin/views/settings.py:531 | |
|
162 | 162 | msgid "Please enter email address" |
|
163 | 163 | msgstr "" |
|
164 | 164 | |
|
165 |
#: rhodecode/apps/admin/views/settings.py:54 |
|
|
165 | #: rhodecode/apps/admin/views/settings.py:547 | |
|
166 | 166 | msgid "Send email task created" |
|
167 | 167 | msgstr "" |
|
168 | 168 | |
|
169 |
#: rhodecode/apps/admin/views/settings.py:58 |
|
|
169 | #: rhodecode/apps/admin/views/settings.py:588 | |
|
170 | 170 | msgid "Added new hook" |
|
171 | 171 | msgstr "" |
|
172 | 172 | |
|
173 |
#: rhodecode/apps/admin/views/settings.py:60 |
|
|
173 | #: rhodecode/apps/admin/views/settings.py:603 | |
|
174 | 174 | msgid "Updated hooks" |
|
175 | 175 | msgstr "" |
|
176 | 176 | |
|
177 |
#: rhodecode/apps/admin/views/settings.py:60 |
|
|
177 | #: rhodecode/apps/admin/views/settings.py:607 | |
|
178 | 178 | msgid "Error occurred during hook creation" |
|
179 | 179 | msgstr "" |
|
180 | 180 | |
|
181 |
#: rhodecode/apps/admin/views/settings.py:68 |
|
|
181 | #: rhodecode/apps/admin/views/settings.py:688 | |
|
182 | 182 | msgid "Error occurred during updating labs settings" |
|
183 | 183 | msgstr "" |
|
184 | 184 | |
|
185 |
#: rhodecode/apps/admin/views/settings.py:69 |
|
|
185 | #: rhodecode/apps/admin/views/settings.py:693 | |
|
186 | 186 | msgid "Updated Labs settings" |
|
187 | 187 | msgstr "" |
|
188 | 188 | |
@@ -592,7 +592,7 b' msgstr ""' | |||
|
592 | 592 | msgid "1 month" |
|
593 | 593 | msgstr "" |
|
594 | 594 | |
|
595 |
#: rhodecode/apps/gist/views.py:63 rhodecode/public/js/scripts.js:48 |
|
|
595 | #: rhodecode/apps/gist/views.py:63 rhodecode/public/js/scripts.js:48670 | |
|
596 | 596 | #: rhodecode/public/js/scripts.min.js:1 |
|
597 | 597 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:48 |
|
598 | 598 | #: rhodecode/public/js/src/rhodecode.js:634 |
@@ -653,8 +653,8 b' msgstr ""' | |||
|
653 | 653 | #: rhodecode/templates/admin/repos/repo_add.mako:19 |
|
654 | 654 | #: rhodecode/templates/admin/users/user_edit_advanced.mako:12 |
|
655 | 655 | #: rhodecode/templates/base/base.mako:114 |
|
656 |
#: rhodecode/templates/base/base.mako:13 |
|
|
657 |
#: rhodecode/templates/base/base.mako:119 |
|
|
656 | #: rhodecode/templates/base/base.mako:134 | |
|
657 | #: rhodecode/templates/base/base.mako:1192 | |
|
658 | 658 | msgid "Repositories" |
|
659 | 659 | msgstr "" |
|
660 | 660 | |
@@ -894,104 +894,104 b' msgstr ""' | |||
|
894 | 894 | msgid "No such commit exists for this repository. Commit: {}" |
|
895 | 895 | msgstr "" |
|
896 | 896 | |
|
897 |
#: rhodecode/apps/repository/views/repo_files.py:35 |
|
|
897 | #: rhodecode/apps/repository/views/repo_files.py:359 | |
|
898 | 898 | msgid "Downloads disabled" |
|
899 | 899 | msgstr "" |
|
900 | 900 | |
|
901 |
#: rhodecode/apps/repository/views/repo_files.py:36 |
|
|
901 | #: rhodecode/apps/repository/views/repo_files.py:365 | |
|
902 | 902 | msgid "Unknown archive type for: `{}`" |
|
903 | 903 | msgstr "" |
|
904 | 904 | |
|
905 |
#: rhodecode/apps/repository/views/repo_files.py:37 |
|
|
905 | #: rhodecode/apps/repository/views/repo_files.py:371 | |
|
906 | 906 | msgid "Unknown commit_id {}" |
|
907 | 907 | msgstr "" |
|
908 | 908 | |
|
909 |
#: rhodecode/apps/repository/views/repo_files.py:37 |
|
|
909 | #: rhodecode/apps/repository/views/repo_files.py:374 | |
|
910 | 910 | msgid "Empty repository" |
|
911 | 911 | msgstr "" |
|
912 | 912 | |
|
913 |
#: rhodecode/apps/repository/views/repo_files.py:3 |
|
|
913 | #: rhodecode/apps/repository/views/repo_files.py:384 | |
|
914 | 914 | msgid "No node at path {} for this repository" |
|
915 | 915 | msgstr "" |
|
916 | 916 | |
|
917 |
#: rhodecode/apps/repository/views/repo_files.py:4 |
|
|
917 | #: rhodecode/apps/repository/views/repo_files.py:436 | |
|
918 | 918 | msgid "Unknown archive type" |
|
919 | 919 | msgstr "" |
|
920 | 920 | |
|
921 |
#: rhodecode/apps/repository/views/repo_files.py:9 |
|
|
921 | #: rhodecode/apps/repository/views/repo_files.py:993 | |
|
922 | 922 | msgid "Changesets" |
|
923 | 923 | msgstr "" |
|
924 | 924 | |
|
925 |
#: rhodecode/apps/repository/views/repo_files.py:10 |
|
|
926 |
#: rhodecode/apps/repository/views/repo_summary.py:2 |
|
|
927 |
#: rhodecode/model/pull_request.py:191 |
|
|
925 | #: rhodecode/apps/repository/views/repo_files.py:1014 | |
|
926 | #: rhodecode/apps/repository/views/repo_summary.py:239 | |
|
927 | #: rhodecode/model/pull_request.py:1912 rhodecode/model/scm.py:999 | |
|
928 | 928 | #: rhodecode/templates/base/vcs_settings.mako:235 |
|
929 | 929 | #: rhodecode/templates/summary/components.mako:10 |
|
930 | 930 | msgid "Branches" |
|
931 | 931 | msgstr "" |
|
932 | 932 | |
|
933 |
#: rhodecode/apps/repository/views/repo_files.py:101 |
|
|
933 | #: rhodecode/apps/repository/views/repo_files.py:1018 | |
|
934 | 934 | #: rhodecode/model/scm.py:1016 rhodecode/templates/base/vcs_settings.mako:260 |
|
935 | 935 | #: rhodecode/templates/summary/components.mako:34 |
|
936 | 936 | msgid "Tags" |
|
937 | 937 | msgstr "" |
|
938 | 938 | |
|
939 |
#: rhodecode/apps/repository/views/repo_files.py:11 |
|
|
940 |
#: rhodecode/apps/repository/views/repo_files.py:118 |
|
|
939 | #: rhodecode/apps/repository/views/repo_files.py:1162 | |
|
940 | #: rhodecode/apps/repository/views/repo_files.py:1188 | |
|
941 | 941 | msgid "Deleted file {} via RhodeCode Enterprise" |
|
942 | 942 | msgstr "" |
|
943 | 943 | |
|
944 |
#: rhodecode/apps/repository/views/repo_files.py:120 |
|
|
944 | #: rhodecode/apps/repository/views/repo_files.py:1209 | |
|
945 | 945 | msgid "Successfully deleted file `{}`" |
|
946 | 946 | msgstr "" |
|
947 | 947 | |
|
948 |
#: rhodecode/apps/repository/views/repo_files.py:12 |
|
|
948 | #: rhodecode/apps/repository/views/repo_files.py:1213 | |
|
949 | #: rhodecode/apps/repository/views/repo_files.py:1326 | |
|
950 | #: rhodecode/apps/repository/views/repo_files.py:1450 | |
|
951 | #: rhodecode/apps/repository/views/repo_files.py:1571 | |
|
952 | msgid "Error occurred during commit" | |
|
953 | msgstr "" | |
|
954 | ||
|
955 | #: rhodecode/apps/repository/views/repo_files.py:1243 | |
|
956 | #: rhodecode/apps/repository/views/repo_files.py:1272 | |
|
957 | msgid "Edited file {} via RhodeCode Enterprise" | |
|
958 | msgstr "" | |
|
959 | ||
|
960 | #: rhodecode/apps/repository/views/repo_files.py:1295 | |
|
961 | msgid "No changes detected on {}" | |
|
962 | msgstr "" | |
|
963 | ||
|
949 | 964 | #: rhodecode/apps/repository/views/repo_files.py:1319 |
|
950 | #: rhodecode/apps/repository/views/repo_files.py:1443 | |
|
951 | #: rhodecode/apps/repository/views/repo_files.py:1564 | |
|
952 | msgid "Error occurred during commit" | |
|
953 | msgstr "" | |
|
954 | ||
|
955 | #: rhodecode/apps/repository/views/repo_files.py:1236 | |
|
956 | #: rhodecode/apps/repository/views/repo_files.py:1265 | |
|
957 | msgid "Edited file {} via RhodeCode Enterprise" | |
|
958 | msgstr "" | |
|
959 | ||
|
960 | #: rhodecode/apps/repository/views/repo_files.py:1288 | |
|
961 | msgid "No changes detected on {}" | |
|
962 | msgstr "" | |
|
963 | ||
|
964 | #: rhodecode/apps/repository/views/repo_files.py:1312 | |
|
965 | 965 | msgid "Successfully committed changes to file `{}`" |
|
966 | 966 | msgstr "" |
|
967 | 967 | |
|
968 |
#: rhodecode/apps/repository/views/repo_files.py:13 |
|
|
969 |
#: rhodecode/apps/repository/views/repo_files.py:13 |
|
|
968 | #: rhodecode/apps/repository/views/repo_files.py:1355 | |
|
969 | #: rhodecode/apps/repository/views/repo_files.py:1394 | |
|
970 | 970 | msgid "Added file via RhodeCode Enterprise" |
|
971 | 971 | msgstr "" |
|
972 | 972 | |
|
973 |
#: rhodecode/apps/repository/views/repo_files.py:140 |
|
|
973 | #: rhodecode/apps/repository/views/repo_files.py:1410 | |
|
974 | 974 | msgid "No filename specified" |
|
975 | 975 | msgstr "" |
|
976 | 976 | |
|
977 |
#: rhodecode/apps/repository/views/repo_files.py:14 |
|
|
977 | #: rhodecode/apps/repository/views/repo_files.py:1435 | |
|
978 | 978 | msgid "Successfully committed new file `{}`" |
|
979 | 979 | msgstr "" |
|
980 | 980 | |
|
981 |
#: rhodecode/apps/repository/views/repo_files.py:143 |
|
|
982 |
#: rhodecode/apps/repository/views/repo_files.py:15 |
|
|
981 | #: rhodecode/apps/repository/views/repo_files.py:1443 | |
|
982 | #: rhodecode/apps/repository/views/repo_files.py:1553 | |
|
983 | 983 | msgid "The location specified must be a relative path and must not contain .. in the path" |
|
984 | 984 | msgstr "" |
|
985 | 985 | |
|
986 |
#: rhodecode/apps/repository/views/repo_files.py:149 |
|
|
986 | #: rhodecode/apps/repository/views/repo_files.py:1498 | |
|
987 | 987 | msgid "Uploaded file via RhodeCode Enterprise" |
|
988 | 988 | msgstr "" |
|
989 | 989 | |
|
990 |
#: rhodecode/apps/repository/views/repo_files.py:15 |
|
|
990 | #: rhodecode/apps/repository/views/repo_files.py:1542 | |
|
991 | 991 | msgid "Successfully committed {} new files" |
|
992 | 992 | msgstr "" |
|
993 | 993 | |
|
994 |
#: rhodecode/apps/repository/views/repo_files.py:15 |
|
|
994 | #: rhodecode/apps/repository/views/repo_files.py:1544 | |
|
995 | 995 | msgid "Successfully committed 1 new file" |
|
996 | 996 | msgstr "" |
|
997 | 997 | |
@@ -1215,23 +1215,23 b' msgstr ""' | |||
|
1215 | 1215 | msgid "Error occurred during updating repository VCS settings" |
|
1216 | 1216 | msgstr "" |
|
1217 | 1217 | |
|
1218 |
#: rhodecode/apps/repository/views/repo_summary.py:2 |
|
|
1218 | #: rhodecode/apps/repository/views/repo_summary.py:218 | |
|
1219 | 1219 | #: rhodecode/templates/admin/permissions/permissions.mako:42 |
|
1220 | 1220 | #: rhodecode/templates/summary/components.mako:8 |
|
1221 | 1221 | msgid "Branch" |
|
1222 | 1222 | msgstr "" |
|
1223 | 1223 | |
|
1224 |
#: rhodecode/apps/repository/views/repo_summary.py:2 |
|
|
1224 | #: rhodecode/apps/repository/views/repo_summary.py:219 | |
|
1225 | 1225 | #: rhodecode/templates/summary/components.mako:32 |
|
1226 | 1226 | msgid "Tag" |
|
1227 | 1227 | msgstr "" |
|
1228 | 1228 | |
|
1229 |
#: rhodecode/apps/repository/views/repo_summary.py:22 |
|
|
1229 | #: rhodecode/apps/repository/views/repo_summary.py:220 | |
|
1230 | 1230 | #: rhodecode/templates/summary/components.mako:44 |
|
1231 | 1231 | msgid "Bookmark" |
|
1232 | 1232 | msgstr "" |
|
1233 | 1233 | |
|
1234 |
#: rhodecode/apps/repository/views/repo_summary.py:24 |
|
|
1234 | #: rhodecode/apps/repository/views/repo_summary.py:240 | |
|
1235 | 1235 | msgid "Closed branches" |
|
1236 | 1236 | msgstr "" |
|
1237 | 1237 | |
@@ -1291,9 +1291,9 b' msgid "Enable or disable this authentica' | |||
|
1291 | 1291 | msgstr "" |
|
1292 | 1292 | |
|
1293 | 1293 | #: rhodecode/authentication/schema.py:38 rhodecode/integrations/schema.py:32 |
|
1294 |
#: rhodecode/model/permission.py:11 |
|
|
1295 |
#: rhodecode/model/permission.py:1 |
|
|
1296 |
#: rhodecode/model/permission.py:12 |
|
|
1294 | #: rhodecode/model/permission.py:112 rhodecode/model/permission.py:116 | |
|
1295 | #: rhodecode/model/permission.py:120 rhodecode/model/permission.py:124 | |
|
1296 | #: rhodecode/model/permission.py:128 rhodecode/model/permission.py:132 | |
|
1297 | 1297 | #: rhodecode/model/validation_schema/schemas/integration_schema.py:195 |
|
1298 | 1298 | #: rhodecode/templates/admin/auth/auth_settings.mako:64 |
|
1299 | 1299 | #: rhodecode/templates/admin/integrations/list.mako:71 |
@@ -1806,7 +1806,7 b' msgstr ""' | |||
|
1806 | 1806 | #: rhodecode/templates/admin/settings/settings_issuetracker.mako:16 |
|
1807 | 1807 | #: rhodecode/templates/admin/settings/settings_labs.mako:49 |
|
1808 | 1808 | #: rhodecode/templates/admin/settings/settings_vcs.mako:14 |
|
1809 |
#: rhodecode/templates/admin/settings/settings_visual.mako:21 |
|
|
1809 | #: rhodecode/templates/admin/settings/settings_visual.mako:218 | |
|
1810 | 1810 | #: rhodecode/templates/admin/user_groups/user_group_edit_perms.mako:217 |
|
1811 | 1811 | #: rhodecode/templates/admin/users/user_edit_auth_tokens.mako:107 |
|
1812 | 1812 | #: rhodecode/templates/admin/users/user_edit_emails.mako:66 |
@@ -1841,7 +1841,7 b' msgstr ""' | |||
|
1841 | 1841 | #: rhodecode/templates/changeset/changeset_file_comment.mako:236 |
|
1842 | 1842 | #: rhodecode/templates/changeset/changeset_file_comment.mako:250 |
|
1843 | 1843 | #: rhodecode/templates/changeset/changeset_file_comment.mako:259 |
|
1844 |
#: rhodecode/templates/data_table/_dt_elements.mako:4 |
|
|
1844 | #: rhodecode/templates/data_table/_dt_elements.mako:445 | |
|
1845 | 1845 | #: rhodecode/templates/debug_style/buttons.html:132 |
|
1846 | 1846 | #: rhodecode/templates/files/files_source.mako:40 |
|
1847 | 1847 | #: rhodecode/templates/files/files_source.mako:47 |
@@ -2229,15 +2229,15 b' msgstr ""' | |||
|
2229 | 2229 | msgid "Commit not found" |
|
2230 | 2230 | msgstr "" |
|
2231 | 2231 | |
|
2232 |
#: rhodecode/lib/auth.py:17 |
|
|
2232 | #: rhodecode/lib/auth.py:1771 | |
|
2233 | 2233 | msgid "IP {} not allowed" |
|
2234 | 2234 | msgstr "" |
|
2235 | 2235 | |
|
2236 |
#: rhodecode/lib/auth.py:186 |
|
|
2236 | #: rhodecode/lib/auth.py:1863 | |
|
2237 | 2237 | msgid "You need to be a registered user to perform this action" |
|
2238 | 2238 | msgstr "" |
|
2239 | 2239 | |
|
2240 |
#: rhodecode/lib/auth.py:190 |
|
|
2240 | #: rhodecode/lib/auth.py:1907 | |
|
2241 | 2241 | msgid "You need to be signed in to view this page" |
|
2242 | 2242 | msgstr "" |
|
2243 | 2243 | |
@@ -2249,7 +2249,7 b' msgstr ""' | |||
|
2249 | 2249 | msgid "Click to select line" |
|
2250 | 2250 | msgstr "" |
|
2251 | 2251 | |
|
2252 |
#: rhodecode/lib/helpers.py:18 |
|
|
2252 | #: rhodecode/lib/helpers.py:1883 | |
|
2253 | 2253 | msgid "" |
|
2254 | 2254 | "Example filter terms:\n" |
|
2255 | 2255 | " repository:vcs\n" |
@@ -2271,7 +2271,7 b' msgid ""' | |||
|
2271 | 2271 | " \"username:test AND repository:test*\"\n" |
|
2272 | 2272 | msgstr "" |
|
2273 | 2273 | |
|
2274 |
#: rhodecode/lib/helpers.py:190 |
|
|
2274 | #: rhodecode/lib/helpers.py:1907 | |
|
2275 | 2275 | #, python-format |
|
2276 | 2276 | msgid "%s repository is not mapped to db perhaps it was created or renamed from the filesystem please run the application again in order to rescan repositories" |
|
2277 | 2277 | msgstr "" |
@@ -2760,7 +2760,7 b' msgstr ""' | |||
|
2760 | 2760 | #: rhodecode/lib/dbmigrate/schema/db_4_7_0_0.py:3011 |
|
2761 | 2761 | #: rhodecode/lib/dbmigrate/schema/db_4_7_0_1.py:3012 |
|
2762 | 2762 | #: rhodecode/lib/dbmigrate/schema/db_4_9_0_0.py:3230 rhodecode/model/db.py:3997 |
|
2763 |
#: rhodecode/public/js/scripts.js:42 |
|
|
2763 | #: rhodecode/public/js/scripts.js:42733 rhodecode/public/js/scripts.min.js:1 | |
|
2764 | 2764 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:72 |
|
2765 | 2765 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:396 |
|
2766 | 2766 | msgid "Not Reviewed" |
@@ -3520,7 +3520,7 b' msgstr ""' | |||
|
3520 | 3520 | #: rhodecode/lib/dbmigrate/schema/db_4_7_0_0.py:2358 |
|
3521 | 3521 | #: rhodecode/lib/dbmigrate/schema/db_4_7_0_1.py:2359 |
|
3522 | 3522 | #: rhodecode/lib/dbmigrate/schema/db_4_9_0_0.py:2559 rhodecode/model/db.py:3174 |
|
3523 |
#: rhodecode/model/permission.py:10 |
|
|
3523 | #: rhodecode/model/permission.py:107 | |
|
3524 | 3524 | msgid "Manual activation of external account" |
|
3525 | 3525 | msgstr "" |
|
3526 | 3526 | |
@@ -3560,7 +3560,7 b' msgstr ""' | |||
|
3560 | 3560 | #: rhodecode/lib/dbmigrate/schema/db_4_7_0_0.py:2359 |
|
3561 | 3561 | #: rhodecode/lib/dbmigrate/schema/db_4_7_0_1.py:2360 |
|
3562 | 3562 | #: rhodecode/lib/dbmigrate/schema/db_4_9_0_0.py:2560 rhodecode/model/db.py:3175 |
|
3563 |
#: rhodecode/model/permission.py:10 |
|
|
3563 | #: rhodecode/model/permission.py:108 | |
|
3564 | 3564 | msgid "Automatic activation of external account" |
|
3565 | 3565 | msgstr "" |
|
3566 | 3566 | |
@@ -3986,51 +3986,51 b' msgstr ""' | |||
|
3986 | 3986 | msgid "Commit index" |
|
3987 | 3987 | msgstr "" |
|
3988 | 3988 | |
|
3989 |
#: rhodecode/lib/vcs/backends/base.py:1 |
|
|
3989 | #: rhodecode/lib/vcs/backends/base.py:190 | |
|
3990 | 3990 | msgid "This pull request can be automatically merged." |
|
3991 | 3991 | msgstr "" |
|
3992 | 3992 | |
|
3993 |
#: rhodecode/lib/vcs/backends/base.py:1 |
|
|
3993 | #: rhodecode/lib/vcs/backends/base.py:192 | |
|
3994 | 3994 | msgid "This pull request cannot be merged because of an unhandled exception. {exception}" |
|
3995 | 3995 | msgstr "" |
|
3996 | 3996 | |
|
3997 |
#: rhodecode/lib/vcs/backends/base.py:19 |
|
|
3997 | #: rhodecode/lib/vcs/backends/base.py:195 | |
|
3998 | 3998 | msgid "This pull request cannot be merged because of merge conflicts. {unresolved_files}" |
|
3999 | 3999 | msgstr "" |
|
4000 | 4000 | |
|
4001 |
#: rhodecode/lib/vcs/backends/base.py:19 |
|
|
4001 | #: rhodecode/lib/vcs/backends/base.py:197 | |
|
4002 | 4002 | msgid "This pull request could not be merged because push to target:`{target}@{merge_commit}` failed." |
|
4003 | 4003 | msgstr "" |
|
4004 | 4004 | |
|
4005 |
#: rhodecode/lib/vcs/backends/base.py: |
|
|
4005 | #: rhodecode/lib/vcs/backends/base.py:200 | |
|
4006 | 4006 | msgid "This pull request cannot be merged because the target `{target_ref.name}` is not a head." |
|
4007 | 4007 | msgstr "" |
|
4008 | 4008 | |
|
4009 |
#: rhodecode/lib/vcs/backends/base.py: |
|
|
4009 | #: rhodecode/lib/vcs/backends/base.py:203 | |
|
4010 | 4010 | msgid "This pull request cannot be merged because the source contains more branches than the target." |
|
4011 | 4011 | msgstr "" |
|
4012 | 4012 | |
|
4013 |
#: rhodecode/lib/vcs/backends/base.py:20 |
|
|
4013 | #: rhodecode/lib/vcs/backends/base.py:206 | |
|
4014 | 4014 | msgid "This pull request cannot be merged because the target `{target_ref.name}` has multiple heads: `{heads}`." |
|
4015 | 4015 | msgstr "" |
|
4016 | 4016 | |
|
4017 | #: rhodecode/lib/vcs/backends/base.py:205 | |
|
4018 | msgid "This pull request cannot be merged because the target repository is locked by {locked_by}." | |
|
4019 | msgstr "" | |
|
4020 | ||
|
4021 | 4017 | #: rhodecode/lib/vcs/backends/base.py:209 |
|
4018 | msgid "This pull request cannot be merged because the target repository is locked by {locked_by}." | |
|
4019 | msgstr "" | |
|
4020 | ||
|
4021 | #: rhodecode/lib/vcs/backends/base.py:213 | |
|
4022 | 4022 | msgid "This pull request cannot be merged because the target reference `{target_ref.name}` is missing." |
|
4023 | 4023 | msgstr "" |
|
4024 | 4024 | |
|
4025 |
#: rhodecode/lib/vcs/backends/base.py:21 |
|
|
4025 | #: rhodecode/lib/vcs/backends/base.py:216 | |
|
4026 | 4026 | msgid "This pull request cannot be merged because the source reference `{source_ref.name}` is missing." |
|
4027 | 4027 | msgstr "" |
|
4028 | 4028 | |
|
4029 |
#: rhodecode/lib/vcs/backends/base.py:21 |
|
|
4029 | #: rhodecode/lib/vcs/backends/base.py:219 | |
|
4030 | 4030 | msgid "This pull request cannot be merged because of conflicts related to sub repositories." |
|
4031 | 4031 | msgstr "" |
|
4032 | 4032 | |
|
4033 |
#: rhodecode/lib/vcs/backends/base.py:22 |
|
|
4033 | #: rhodecode/lib/vcs/backends/base.py:224 | |
|
4034 | 4034 | msgid "This pull request cannot be merged because the target or the source reference is missing." |
|
4035 | 4035 | msgstr "" |
|
4036 | 4036 | |
@@ -4138,8 +4138,8 b' msgstr ""' | |||
|
4138 | 4138 | msgid "%(user)s commented on pull request at %(date_or_age)s" |
|
4139 | 4139 | msgstr "" |
|
4140 | 4140 | |
|
4141 |
#: rhodecode/model/permission.py:7 |
|
|
4142 |
#: rhodecode/model/permission.py:8 |
|
|
4141 | #: rhodecode/model/permission.py:73 rhodecode/model/permission.py:79 | |
|
4142 | #: rhodecode/model/permission.py:85 | |
|
4143 | 4143 | #: rhodecode/templates/admin/repo_groups/repo_group_edit_permissions.mako:11 |
|
4144 | 4144 | #: rhodecode/templates/admin/repo_groups/repo_group_edit_permissions.mako:217 |
|
4145 | 4145 | #: rhodecode/templates/admin/repos/repo_edit_permissions.mako:11 |
@@ -4147,27 +4147,27 b' msgstr ""' | |||
|
4147 | 4147 | msgid "None" |
|
4148 | 4148 | msgstr "" |
|
4149 | 4149 | |
|
4150 |
#: rhodecode/model/permission.py:7 |
|
|
4151 |
#: rhodecode/model/permission.py:8 |
|
|
4150 | #: rhodecode/model/permission.py:74 rhodecode/model/permission.py:80 | |
|
4151 | #: rhodecode/model/permission.py:86 | |
|
4152 | 4152 | #: rhodecode/templates/admin/repo_groups/repo_group_edit_permissions.mako:12 |
|
4153 | 4153 | #: rhodecode/templates/admin/repos/repo_edit_permissions.mako:12 |
|
4154 | 4154 | #: rhodecode/templates/admin/user_groups/user_group_edit_perms.mako:16 |
|
4155 | 4155 | msgid "Read" |
|
4156 | 4156 | msgstr "" |
|
4157 | 4157 | |
|
4158 |
#: rhodecode/model/permission.py:7 |
|
|
4159 |
#: rhodecode/model/permission.py:8 |
|
|
4158 | #: rhodecode/model/permission.py:75 rhodecode/model/permission.py:81 | |
|
4159 | #: rhodecode/model/permission.py:87 | |
|
4160 | 4160 | #: rhodecode/templates/admin/repo_groups/repo_group_edit_permissions.mako:13 |
|
4161 | 4161 | #: rhodecode/templates/admin/repos/repo_edit_permissions.mako:13 |
|
4162 | 4162 | #: rhodecode/templates/admin/user_groups/user_group_edit_perms.mako:17 |
|
4163 | 4163 | #: rhodecode/templates/changeset/changeset_file_comment.mako:392 |
|
4164 | 4164 | #: rhodecode/templates/changeset/changeset_file_comment.mako:443 |
|
4165 |
#: rhodecode/templates/data_table/_dt_elements.mako:4 |
|
|
4165 | #: rhodecode/templates/data_table/_dt_elements.mako:460 | |
|
4166 | 4166 | msgid "Write" |
|
4167 | 4167 | msgstr "" |
|
4168 | 4168 | |
|
4169 |
#: rhodecode/model/permission.py:7 |
|
|
4170 |
#: rhodecode/model/permission.py:8 |
|
|
4169 | #: rhodecode/model/permission.py:76 rhodecode/model/permission.py:82 | |
|
4170 | #: rhodecode/model/permission.py:88 | |
|
4171 | 4171 | #: rhodecode/templates/admin/auth/plugin_settings.mako:12 |
|
4172 | 4172 | #: rhodecode/templates/admin/defaults/defaults.mako:12 |
|
4173 | 4173 | #: rhodecode/templates/admin/integrations/base.mako:21 |
@@ -4189,51 +4189,51 b' msgstr ""' | |||
|
4189 | 4189 | #: rhodecode/templates/admin/user_groups/user_group_edit_perms.mako:18 |
|
4190 | 4190 | #: rhodecode/templates/admin/users/user_add.mako:11 |
|
4191 | 4191 | #: rhodecode/templates/admin/users/user_edit.mako:12 |
|
4192 |
#: rhodecode/templates/base/base.mako:83 |
|
|
4192 | #: rhodecode/templates/base/base.mako:839 | |
|
4193 | 4193 | msgid "Admin" |
|
4194 | 4194 | msgstr "" |
|
4195 | 4195 | |
|
4196 | #: rhodecode/model/permission.py:89 | |
|
4197 | msgid "Protected/No Access" | |
|
4198 | msgstr "" | |
|
4199 | ||
|
4200 | #: rhodecode/model/permission.py:90 | |
|
4201 | msgid "Web merge" | |
|
4202 | msgstr "" | |
|
4203 | ||
|
4204 | 4196 | #: rhodecode/model/permission.py:91 |
|
4205 | msgid "Push" | |
|
4197 | msgid "Protected/No Access" | |
|
4206 | 4198 | msgstr "" |
|
4207 | 4199 | |
|
4208 | 4200 | #: rhodecode/model/permission.py:92 |
|
4201 | msgid "Web merge" | |
|
4202 | msgstr "" | |
|
4203 | ||
|
4204 | #: rhodecode/model/permission.py:93 | |
|
4205 | msgid "Push" | |
|
4206 | msgstr "" | |
|
4207 | ||
|
4208 | #: rhodecode/model/permission.py:94 | |
|
4209 | 4209 | msgid "Force Push" |
|
4210 | 4210 | msgstr "" |
|
4211 | 4211 | |
|
4212 |
#: rhodecode/model/permission.py:9 |
|
|
4213 |
#: rhodecode/model/permission.py:11 |
|
|
4214 |
#: rhodecode/model/permission.py:12 |
|
|
4215 |
#: rhodecode/model/permission.py:1 |
|
|
4212 | #: rhodecode/model/permission.py:97 rhodecode/model/permission.py:111 | |
|
4213 | #: rhodecode/model/permission.py:115 rhodecode/model/permission.py:119 | |
|
4214 | #: rhodecode/model/permission.py:123 rhodecode/model/permission.py:127 | |
|
4215 | #: rhodecode/model/permission.py:131 | |
|
4216 | 4216 | #: rhodecode/templates/admin/my_account/my_account_notifications.mako:27 |
|
4217 | 4217 | msgid "Disabled" |
|
4218 | 4218 | msgstr "" |
|
4219 | 4219 | |
|
4220 |
#: rhodecode/model/permission.py:9 |
|
|
4220 | #: rhodecode/model/permission.py:98 | |
|
4221 | 4221 | msgid "Allowed with manual account activation" |
|
4222 | 4222 | msgstr "" |
|
4223 | 4223 | |
|
4224 |
#: rhodecode/model/permission.py:9 |
|
|
4224 | #: rhodecode/model/permission.py:99 | |
|
4225 | 4225 | msgid "Allowed with automatic account activation" |
|
4226 | 4226 | msgstr "" |
|
4227 | 4227 | |
|
4228 | #: rhodecode/model/permission.py:100 | |
|
4229 | msgid "Allow password recovery" | |
|
4230 | msgstr "" | |
|
4231 | ||
|
4232 | #: rhodecode/model/permission.py:101 | |
|
4233 | msgid "Hide password recovery link" | |
|
4234 | msgstr "" | |
|
4235 | ||
|
4236 | 4228 | #: rhodecode/model/permission.py:102 |
|
4229 | msgid "Allow password recovery" | |
|
4230 | msgstr "" | |
|
4231 | ||
|
4232 | #: rhodecode/model/permission.py:103 | |
|
4233 | msgid "Hide password recovery link" | |
|
4234 | msgstr "" | |
|
4235 | ||
|
4236 | #: rhodecode/model/permission.py:104 | |
|
4237 | 4237 | msgid "Disable password recovery" |
|
4238 | 4238 | msgstr "" |
|
4239 | 4239 | |
@@ -4261,79 +4261,79 b' msgstr ""' | |||
|
4261 | 4261 | msgid "This pull request cannot be updated because the source reference is missing." |
|
4262 | 4262 | msgstr "" |
|
4263 | 4263 | |
|
4264 |
#: rhodecode/model/pull_request.py:16 |
|
|
4264 | #: rhodecode/model/pull_request.py:1690 | |
|
4265 | 4265 | msgid "Server-side pull request merging is disabled." |
|
4266 | 4266 | msgstr "" |
|
4267 | 4267 | |
|
4268 |
#: rhodecode/model/pull_request.py:169 |
|
|
4268 | #: rhodecode/model/pull_request.py:1693 | |
|
4269 | 4269 | msgid "This pull request is closed." |
|
4270 | 4270 | msgstr "" |
|
4271 | 4271 | |
|
4272 |
#: rhodecode/model/pull_request.py:170 |
|
|
4272 | #: rhodecode/model/pull_request.py:1707 | |
|
4273 | 4273 | msgid "Pull request merging is not supported." |
|
4274 | 4274 | msgstr "" |
|
4275 | 4275 | |
|
4276 |
#: rhodecode/model/pull_request.py:172 |
|
|
4276 | #: rhodecode/model/pull_request.py:1724 | |
|
4277 | 4277 | msgid "Target repository large files support is disabled." |
|
4278 | 4278 | msgstr "" |
|
4279 | 4279 | |
|
4280 |
#: rhodecode/model/pull_request.py:172 |
|
|
4280 | #: rhodecode/model/pull_request.py:1727 | |
|
4281 | 4281 | msgid "Source repository large files support is disabled." |
|
4282 | 4282 | msgstr "" |
|
4283 | 4283 | |
|
4284 |
#: rhodecode/model/pull_request.py:19 |
|
|
4284 | #: rhodecode/model/pull_request.py:1911 rhodecode/model/scm.py:1008 | |
|
4285 | 4285 | #: rhodecode/templates/admin/my_account/my_account.mako:32 |
|
4286 |
#: rhodecode/templates/base/base.mako:63 |
|
|
4286 | #: rhodecode/templates/base/base.mako:639 | |
|
4287 | 4287 | #: rhodecode/templates/summary/components.mako:46 |
|
4288 | 4288 | msgid "Bookmarks" |
|
4289 | 4289 | msgstr "" |
|
4290 | 4290 | |
|
4291 |
#: rhodecode/model/pull_request.py:191 |
|
|
4291 | #: rhodecode/model/pull_request.py:1916 | |
|
4292 | 4292 | msgid "Commit IDs" |
|
4293 | 4293 | msgstr "" |
|
4294 | 4294 | |
|
4295 |
#: rhodecode/model/pull_request.py:191 |
|
|
4295 | #: rhodecode/model/pull_request.py:1919 | |
|
4296 | 4296 | #: rhodecode/templates/summary/components.mako:22 |
|
4297 | 4297 | msgid "Closed Branches" |
|
4298 | 4298 | msgstr "" |
|
4299 | 4299 | |
|
4300 |
#: rhodecode/model/pull_request.py:210 |
|
|
4300 | #: rhodecode/model/pull_request.py:2105 | |
|
4301 | 4301 | msgid "WIP marker in title prevents from accidental merge." |
|
4302 | 4302 | msgstr "" |
|
4303 | 4303 | |
|
4304 |
#: rhodecode/model/pull_request.py:211 |
|
|
4304 | #: rhodecode/model/pull_request.py:2115 | |
|
4305 | 4305 | msgid "User `{}` not allowed to perform merge." |
|
4306 | 4306 | msgstr "" |
|
4307 | 4307 | |
|
4308 |
#: rhodecode/model/pull_request.py:213 |
|
|
4308 | #: rhodecode/model/pull_request.py:2133 | |
|
4309 | 4309 | msgid "Target branch `{}` changes rejected by rule {}." |
|
4310 | 4310 | msgstr "" |
|
4311 | 4311 | |
|
4312 |
#: rhodecode/model/pull_request.py:214 |
|
|
4312 | #: rhodecode/model/pull_request.py:2148 | |
|
4313 | 4313 | msgid "Pull request reviewer approval is pending." |
|
4314 | 4314 | msgstr "" |
|
4315 | 4315 | |
|
4316 |
#: rhodecode/model/pull_request.py:216 |
|
|
4316 | #: rhodecode/model/pull_request.py:2162 | |
|
4317 | 4317 | msgid "Cannot merge, {} TODO still not resolved." |
|
4318 | 4318 | msgstr "" |
|
4319 | 4319 | |
|
4320 |
#: rhodecode/model/pull_request.py:216 |
|
|
4320 | #: rhodecode/model/pull_request.py:2165 | |
|
4321 | 4321 | msgid "Cannot merge, {} TODOs still not resolved." |
|
4322 | 4322 | msgstr "" |
|
4323 | 4323 | |
|
4324 |
#: rhodecode/model/pull_request.py:22 |
|
|
4324 | #: rhodecode/model/pull_request.py:2220 | |
|
4325 | 4325 | msgid "Merge strategy: rebase" |
|
4326 | 4326 | msgstr "" |
|
4327 | 4327 | |
|
4328 |
#: rhodecode/model/pull_request.py:222 |
|
|
4328 | #: rhodecode/model/pull_request.py:2225 | |
|
4329 | 4329 | msgid "Merge strategy: explicit merge commit" |
|
4330 | 4330 | msgstr "" |
|
4331 | 4331 | |
|
4332 | #: rhodecode/model/pull_request.py:2231 | |
|
4333 | msgid "Source branch will be closed before the merge." | |
|
4334 | msgstr "" | |
|
4335 | ||
|
4336 | 4332 | #: rhodecode/model/pull_request.py:2233 |
|
4333 | msgid "Source branch will be closed before the merge." | |
|
4334 | msgstr "" | |
|
4335 | ||
|
4336 | #: rhodecode/model/pull_request.py:2235 | |
|
4337 | 4337 | msgid "Source branch will be deleted after the merge." |
|
4338 | 4338 | msgstr "" |
|
4339 | 4339 | |
@@ -4880,129 +4880,133 b' msgstr ""' | |||
|
4880 | 4880 | msgid "Note Comment" |
|
4881 | 4881 | msgstr "" |
|
4882 | 4882 | |
|
4883 |
#: rhodecode/public/js/scripts.js:39599 rhodecode/public/js/scripts.js:3998 |
|
|
4883 | #: rhodecode/public/js/scripts.js:39599 rhodecode/public/js/scripts.js:39985 | |
|
4884 | 4884 | #: rhodecode/public/js/scripts.min.js:1 |
|
4885 | 4885 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:103 |
|
4886 | 4886 | #: rhodecode/public/js/src/rhodecode/codemirror.js:730 |
|
4887 |
#: rhodecode/public/js/src/rhodecode/comments.js:26 |
|
|
4887 | #: rhodecode/public/js/src/rhodecode/comments.js:265 | |
|
4888 | 4888 | msgid "Status Review" |
|
4889 | 4889 | msgstr "" |
|
4890 | 4890 | |
|
4891 |
#: rhodecode/public/js/scripts.js:39614 rhodecode/public/js/scripts.js:4000 |
|
|
4891 | #: rhodecode/public/js/scripts.js:39614 rhodecode/public/js/scripts.js:40002 | |
|
4892 | 4892 | #: rhodecode/public/js/scripts.min.js:1 |
|
4893 | 4893 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:24 |
|
4894 | 4894 | #: rhodecode/public/js/src/rhodecode/codemirror.js:745 |
|
4895 |
#: rhodecode/public/js/src/rhodecode/comments.js:28 |
|
|
4895 | #: rhodecode/public/js/src/rhodecode/comments.js:282 | |
|
4896 | 4896 | msgid "Comment text will be set automatically based on currently selected status ({0}) ..." |
|
4897 | 4897 | msgstr "" |
|
4898 | 4898 | |
|
4899 |
#: rhodecode/public/js/scripts.js:39695 rhodecode/public/js/scripts.js:4021 |
|
|
4900 |
#: rhodecode/public/js/scripts.js:41 |
|
|
4899 | #: rhodecode/public/js/scripts.js:39695 rhodecode/public/js/scripts.js:40211 | |
|
4900 | #: rhodecode/public/js/scripts.js:41883 rhodecode/public/js/scripts.min.js:1 | |
|
4901 | 4901 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:49 |
|
4902 | 4902 | #: rhodecode/public/js/src/rhodecode/codemirror.js:826 |
|
4903 |
#: rhodecode/public/js/src/rhodecode/comments.js:49 |
|
|
4903 | #: rhodecode/public/js/src/rhodecode/comments.js:491 | |
|
4904 | 4904 | #: rhodecode/public/js/src/rhodecode/files.js:499 |
|
4905 | 4905 | #: rhodecode/templates/files/files_browser_tree.mako:57 |
|
4906 | 4906 | msgid "Loading ..." |
|
4907 | 4907 | msgstr "" |
|
4908 | 4908 | |
|
4909 |
#: rhodecode/public/js/scripts.js:398 |
|
|
4909 | #: rhodecode/public/js/scripts.js:39859 rhodecode/public/js/scripts.min.js:1 | |
|
4910 | 4910 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:123 |
|
4911 |
#: rhodecode/public/js/src/rhodecode/comments.js:1 |
|
|
4911 | #: rhodecode/public/js/src/rhodecode/comments.js:139 | |
|
4912 | 4912 | msgid "Update Comment" |
|
4913 | 4913 | msgstr "" |
|
4914 | 4914 | |
|
4915 |
#: rhodecode/public/js/scripts.js:3988 |
|
|
4915 | #: rhodecode/public/js/scripts.js:39883 rhodecode/public/js/scripts.min.js:1 | |
|
4916 | 4916 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:150 |
|
4917 |
#: rhodecode/public/js/src/rhodecode/comments.js:16 |
|
|
4917 | #: rhodecode/public/js/src/rhodecode/comments.js:163 | |
|
4918 | 4918 | msgid "resolve comment" |
|
4919 | 4919 | msgstr "" |
|
4920 | 4920 | |
|
4921 | #: rhodecode/public/js/scripts.js:40155 rhodecode/public/js/scripts.min.js:1 | |
|
4922 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:83 | |
|
4923 | #: rhodecode/public/js/src/rhodecode/comments.js:435 | |
|
4924 | msgid "Saving Draft..." | |
|
4925 | msgstr "" | |
|
4926 | ||
|
4921 | 4927 | #: rhodecode/public/js/scripts.js:40157 rhodecode/public/js/scripts.min.js:1 |
|
4922 |
#: rhodecode/public/js/rhodecode/i18n/js_translations.js:8 |
|
|
4928 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:108 | |
|
4923 | 4929 | #: rhodecode/public/js/src/rhodecode/comments.js:437 |
|
4924 | msgid "Saving Draft..." | |
|
4925 | msgstr "" | |
|
4926 | ||
|
4927 | #: rhodecode/public/js/scripts.js:40159 rhodecode/public/js/scripts.min.js:1 | |
|
4928 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:108 | |
|
4929 | #: rhodecode/public/js/src/rhodecode/comments.js:439 | |
|
4930 | 4930 | msgid "Submitting..." |
|
4931 | 4931 | msgstr "" |
|
4932 | 4932 | |
|
4933 |
#: rhodecode/public/js/scripts.js:404 |
|
|
4933 | #: rhodecode/public/js/scripts.js:40479 rhodecode/public/js/scripts.min.js:1 | |
|
4934 | 4934 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:131 |
|
4935 |
#: rhodecode/public/js/src/rhodecode/comments.js:7 |
|
|
4935 | #: rhodecode/public/js/src/rhodecode/comments.js:759 | |
|
4936 | 4936 | msgid "Yes, delete comment #{0}!" |
|
4937 | 4937 | msgstr "" |
|
4938 | 4938 | |
|
4939 |
#: rhodecode/public/js/scripts.js:4052 |
|
|
4939 | #: rhodecode/public/js/scripts.js:40524 rhodecode/public/js/scripts.min.js:1 | |
|
4940 | 4940 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:106 |
|
4941 |
#: rhodecode/public/js/src/rhodecode/comments.js:80 |
|
|
4941 | #: rhodecode/public/js/src/rhodecode/comments.js:804 | |
|
4942 | 4942 | msgid "Submit {0} draft comment." |
|
4943 | 4943 | msgstr "" |
|
4944 | 4944 | |
|
4945 |
#: rhodecode/public/js/scripts.js:4052 |
|
|
4945 | #: rhodecode/public/js/scripts.js:40527 rhodecode/public/js/scripts.js:41225 | |
|
4946 | #: rhodecode/public/js/scripts.min.js:1 | |
|
4946 | 4947 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:130 |
|
4947 |
#: rhodecode/public/js/src/rhodecode/comments.js:80 |
|
|
4948 | #: rhodecode/public/js/src/rhodecode/comments.js:807 | |
|
4949 | #: rhodecode/public/js/src/rhodecode/comments.js:1505 | |
|
4948 | 4950 | msgid "Yes" |
|
4949 | 4951 | msgstr "" |
|
4950 | 4952 | |
|
4951 |
#: rhodecode/public/js/scripts.js:406 |
|
|
4953 | #: rhodecode/public/js/scripts.js:40619 rhodecode/public/js/scripts.min.js:1 | |
|
4952 | 4954 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:47 |
|
4953 |
#: rhodecode/public/js/src/rhodecode/comments.js: |
|
|
4955 | #: rhodecode/public/js/src/rhodecode/comments.js:899 | |
|
4954 | 4956 | msgid "Leave a resolution comment, or click resolve button to resolve TODO comment #{0}" |
|
4955 | 4957 | msgstr "" |
|
4956 | 4958 | |
|
4957 |
#: rhodecode/public/js/scripts.js:4082 |
|
|
4959 | #: rhodecode/public/js/scripts.js:40823 rhodecode/public/js/scripts.min.js:1 | |
|
4958 | 4960 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:23 |
|
4959 |
#: rhodecode/public/js/src/rhodecode/comments.js:110 |
|
|
4961 | #: rhodecode/public/js/src/rhodecode/comments.js:1103 | |
|
4960 | 4962 | msgid "Comment body was not changed." |
|
4961 | 4963 | msgstr "" |
|
4962 | 4964 | |
|
4963 |
#: rhodecode/public/js/scripts.js:4107 |
|
|
4965 | #: rhodecode/public/js/scripts.js:41074 rhodecode/public/js/scripts.min.js:1 | |
|
4964 | 4966 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:44 |
|
4965 |
#: rhodecode/public/js/src/rhodecode/comments.js:135 |
|
|
4967 | #: rhodecode/public/js/src/rhodecode/comments.js:1354 | |
|
4966 | 4968 | msgid "Leave a comment on file {0} line {1}." |
|
4967 | 4969 | msgstr "" |
|
4968 | 4970 | |
|
4969 |
#: rhodecode/public/js/scripts.js:4121 |
|
|
4971 | #: rhodecode/public/js/scripts.js:41214 rhodecode/public/js/scripts.js:41267 | |
|
4972 | #: rhodecode/public/js/scripts.min.js:1 | |
|
4970 | 4973 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:113 |
|
4971 |
#: rhodecode/public/js/src/rhodecode/comments.js:149 |
|
|
4974 | #: rhodecode/public/js/src/rhodecode/comments.js:1494 | |
|
4975 | #: rhodecode/public/js/src/rhodecode/comments.js:1547 | |
|
4972 | 4976 | msgid "TODO from comment {0} was fixed." |
|
4973 | 4977 | msgstr "" |
|
4974 | 4978 | |
|
4975 |
#: rhodecode/public/js/scripts.js:41 |
|
|
4979 | #: rhodecode/public/js/scripts.js:41632 rhodecode/public/js/scripts.min.js:1 | |
|
4976 | 4980 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:154 |
|
4977 | 4981 | #: rhodecode/public/js/src/rhodecode/files.js:248 |
|
4978 | 4982 | msgid "truncated result" |
|
4979 | 4983 | msgstr "" |
|
4980 | 4984 | |
|
4981 |
#: rhodecode/public/js/scripts.js:41 |
|
|
4985 | #: rhodecode/public/js/scripts.js:41634 rhodecode/public/js/scripts.min.js:1 | |
|
4982 | 4986 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:155 |
|
4983 | 4987 | #: rhodecode/public/js/src/rhodecode/files.js:250 |
|
4984 | 4988 | msgid "truncated results" |
|
4985 | 4989 | msgstr "" |
|
4986 | 4990 | |
|
4987 |
#: rhodecode/public/js/scripts.js:41 |
|
|
4991 | #: rhodecode/public/js/scripts.js:41643 rhodecode/public/js/scripts.min.js:1 | |
|
4988 | 4992 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:60 |
|
4989 | 4993 | #: rhodecode/public/js/src/rhodecode/files.js:259 |
|
4990 | 4994 | msgid "No matching files" |
|
4991 | 4995 | msgstr "" |
|
4992 | 4996 | |
|
4993 |
#: rhodecode/public/js/scripts.js:41 |
|
|
4997 | #: rhodecode/public/js/scripts.js:41701 rhodecode/public/js/scripts.min.js:1 | |
|
4994 | 4998 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:86 |
|
4995 | 4999 | #: rhodecode/public/js/src/rhodecode/files.js:317 |
|
4996 | 5000 | msgid "Selection link" |
|
4997 | 5001 | msgstr "" |
|
4998 | 5002 | |
|
4999 |
#: rhodecode/public/js/scripts.js:41 |
|
|
5003 | #: rhodecode/public/js/scripts.js:41798 rhodecode/public/js/scripts.min.js:1 | |
|
5000 | 5004 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:10 |
|
5001 | 5005 | #: rhodecode/public/js/src/rhodecode/files.js:414 |
|
5002 | 5006 | msgid "All Authors" |
|
5003 | 5007 | msgstr "" |
|
5004 | 5008 | |
|
5005 |
#: rhodecode/public/js/scripts.js:418 |
|
|
5009 | #: rhodecode/public/js/scripts.js:41948 rhodecode/public/js/scripts.js:41951 | |
|
5006 | 5010 | #: rhodecode/public/js/scripts.min.js:1 |
|
5007 | 5011 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:38 |
|
5008 | 5012 | #: rhodecode/public/js/src/rhodecode/files.js:564 |
@@ -5010,141 +5014,141 b' msgstr ""' | |||
|
5010 | 5014 | msgid "File `{0}` has a newer version available, or has been removed. Click {1} to see the latest version." |
|
5011 | 5015 | msgstr "" |
|
5012 | 5016 | |
|
5013 |
#: rhodecode/public/js/scripts.js:41 |
|
|
5017 | #: rhodecode/public/js/scripts.js:41954 rhodecode/public/js/scripts.min.js:1 | |
|
5014 | 5018 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:117 |
|
5015 | 5019 | #: rhodecode/public/js/src/rhodecode/files.js:570 |
|
5016 | 5020 | msgid "There is an existing path `{0}` at this commit." |
|
5017 | 5021 | msgstr "" |
|
5018 | 5022 | |
|
5019 |
#: rhodecode/public/js/scripts.js:41 |
|
|
5023 | #: rhodecode/public/js/scripts.js:41957 rhodecode/public/js/scripts.min.js:1 | |
|
5020 | 5024 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:116 |
|
5021 | 5025 | #: rhodecode/public/js/src/rhodecode/files.js:573 |
|
5022 | 5026 | msgid "There is a later version of file tree available. Click {0} to create a file at the latest tree." |
|
5023 | 5027 | msgstr "" |
|
5024 | 5028 | |
|
5025 |
#: rhodecode/public/js/scripts.js:4 |
|
|
5029 | #: rhodecode/public/js/scripts.js:42011 rhodecode/public/js/scripts.min.js:1 | |
|
5026 | 5030 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:105 |
|
5027 | 5031 | #: rhodecode/public/js/src/rhodecode/followers.js:26 |
|
5028 | 5032 | msgid "Stopped watching this repository" |
|
5029 | 5033 | msgstr "" |
|
5030 | 5034 | |
|
5031 |
#: rhodecode/public/js/scripts.js:4 |
|
|
5035 | #: rhodecode/public/js/scripts.js:42012 rhodecode/public/js/scripts.min.js:1 | |
|
5032 | 5036 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:129 |
|
5033 | 5037 | #: rhodecode/public/js/src/rhodecode/followers.js:27 |
|
5034 |
#: rhodecode/templates/base/base.mako:31 |
|
|
5038 | #: rhodecode/templates/base/base.mako:311 | |
|
5035 | 5039 | msgid "Watch" |
|
5036 | 5040 | msgstr "" |
|
5037 | 5041 | |
|
5038 |
#: rhodecode/public/js/scripts.js:4 |
|
|
5042 | #: rhodecode/public/js/scripts.js:42015 rhodecode/public/js/scripts.min.js:1 | |
|
5039 | 5043 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:102 |
|
5040 | 5044 | #: rhodecode/public/js/src/rhodecode/followers.js:30 |
|
5041 | 5045 | msgid "Started watching this repository" |
|
5042 | 5046 | msgstr "" |
|
5043 | 5047 | |
|
5044 |
#: rhodecode/public/js/scripts.js:4 |
|
|
5048 | #: rhodecode/public/js/scripts.js:42016 rhodecode/public/js/scripts.min.js:1 | |
|
5045 | 5049 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:122 |
|
5046 | 5050 | #: rhodecode/public/js/src/rhodecode/followers.js:31 |
|
5047 |
#: rhodecode/templates/base/base.mako:30 |
|
|
5051 | #: rhodecode/templates/base/base.mako:309 | |
|
5048 | 5052 | msgid "Unwatch" |
|
5049 | 5053 | msgstr "" |
|
5050 | 5054 | |
|
5051 |
#: rhodecode/public/js/scripts.js:42 |
|
|
5055 | #: rhodecode/public/js/scripts.js:42522 rhodecode/public/js/scripts.min.js:1 | |
|
5052 | 5056 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:12 |
|
5053 | 5057 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:185 |
|
5054 | 5058 | msgid "All reviewers must vote." |
|
5055 | 5059 | msgstr "" |
|
5056 | 5060 | |
|
5057 |
#: rhodecode/public/js/scripts.js:42 |
|
|
5061 | #: rhodecode/public/js/scripts.js:42546 rhodecode/public/js/scripts.min.js:1 | |
|
5058 | 5062 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:54 |
|
5059 | 5063 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:209 |
|
5060 | 5064 | msgid "No additional review rules set." |
|
5061 | 5065 | msgstr "" |
|
5062 | 5066 | |
|
5063 |
#: rhodecode/public/js/scripts.js:42 |
|
|
5067 | #: rhodecode/public/js/scripts.js:42592 rhodecode/public/js/scripts.min.js:1 | |
|
5064 | 5068 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:50 |
|
5065 | 5069 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:255 |
|
5066 | 5070 | msgid "Loading diff ..." |
|
5067 | 5071 | msgstr "" |
|
5068 | 5072 | |
|
5069 |
#: rhodecode/public/js/scripts.js:425 |
|
|
5073 | #: rhodecode/public/js/scripts.js:42645 rhodecode/public/js/scripts.min.js:1 | |
|
5070 | 5074 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:115 |
|
5071 | 5075 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:308 |
|
5072 | 5076 | msgid "There are no commits to merge." |
|
5073 | 5077 | msgstr "" |
|
5074 | 5078 | |
|
5075 |
#: rhodecode/public/js/scripts.js:42 |
|
|
5079 | #: rhodecode/public/js/scripts.js:42717 rhodecode/public/js/scripts.min.js:1 | |
|
5076 | 5080 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:128 |
|
5077 | 5081 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:380 |
|
5078 | 5082 | msgid "User `{0}` not allowed to be a reviewer" |
|
5079 | 5083 | msgstr "" |
|
5080 | 5084 | |
|
5081 |
#: rhodecode/public/js/scripts.js:42 |
|
|
5085 | #: rhodecode/public/js/scripts.js:42723 rhodecode/public/js/scripts.min.js:1 | |
|
5082 | 5086 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:127 |
|
5083 | 5087 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:386 |
|
5084 | 5088 | msgid "User `{0}` already in reviewers/observers" |
|
5085 | 5089 | msgstr "" |
|
5086 | 5090 | |
|
5087 |
#: rhodecode/public/js/scripts.js:42 |
|
|
5091 | #: rhodecode/public/js/scripts.js:42838 rhodecode/public/js/scripts.min.js:1 | |
|
5088 | 5092 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:135 |
|
5089 | 5093 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:501 |
|
5090 | 5094 | msgid "added manually by \"{0}\"" |
|
5091 | 5095 | msgstr "" |
|
5092 | 5096 | |
|
5093 |
#: rhodecode/public/js/scripts.js:42 |
|
|
5097 | #: rhodecode/public/js/scripts.js:42843 rhodecode/public/js/scripts.min.js:1 | |
|
5094 | 5098 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:147 |
|
5095 | 5099 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:506 |
|
5096 | 5100 | msgid "member of \"{0}\"" |
|
5097 | 5101 | msgstr "" |
|
5098 | 5102 | |
|
5099 |
#: rhodecode/public/js/scripts.js:4 |
|
|
5103 | #: rhodecode/public/js/scripts.js:43076 rhodecode/public/js/scripts.min.js:1 | |
|
5100 | 5104 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:125 |
|
5101 | 5105 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:739 |
|
5102 | 5106 | msgid "Updating..." |
|
5103 | 5107 | msgstr "" |
|
5104 | 5108 | |
|
5105 |
#: rhodecode/public/js/scripts.js:4 |
|
|
5109 | #: rhodecode/public/js/scripts.js:43086 rhodecode/public/js/scripts.min.js:1 | |
|
5106 | 5110 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:40 |
|
5107 | 5111 | #: rhodecode/public/js/src/rhodecode/pullrequests.js:749 |
|
5108 | 5112 | msgid "Force updating..." |
|
5109 | 5113 | msgstr "" |
|
5110 | 5114 | |
|
5111 |
#: rhodecode/public/js/scripts.js:47 |
|
|
5115 | #: rhodecode/public/js/scripts.js:47953 rhodecode/public/js/scripts.min.js:1 | |
|
5112 | 5116 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:98 |
|
5113 | 5117 | #: rhodecode/public/js/src/rhodecode/users.js:54 |
|
5114 | 5118 | msgid "Show this authentication token?" |
|
5115 | 5119 | msgstr "" |
|
5116 | 5120 | |
|
5117 |
#: rhodecode/public/js/scripts.js:47 |
|
|
5121 | #: rhodecode/public/js/scripts.js:47955 rhodecode/public/js/scripts.min.js:1 | |
|
5118 | 5122 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:90 |
|
5119 | 5123 | #: rhodecode/public/js/src/rhodecode/users.js:56 |
|
5120 | 5124 | msgid "Show" |
|
5121 | 5125 | msgstr "" |
|
5122 | 5126 | |
|
5123 |
#: rhodecode/public/js/scripts.js:47 |
|
|
5127 | #: rhodecode/public/js/scripts.js:47991 rhodecode/public/js/scripts.min.js:1 | |
|
5124 | 5128 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:16 |
|
5125 | 5129 | #: rhodecode/public/js/src/rhodecode/users.js:92 |
|
5126 | 5130 | msgid "Authentication Token" |
|
5127 | 5131 | msgstr "" |
|
5128 | 5132 | |
|
5129 |
#: rhodecode/public/js/scripts.js:480 |
|
|
5133 | #: rhodecode/public/js/scripts.js:48180 rhodecode/public/js/scripts.min.js:1 | |
|
5130 | 5134 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:139 |
|
5131 | 5135 | #: rhodecode/public/js/src/rhodecode.js:144 |
|
5132 | 5136 | msgid "file" |
|
5133 | 5137 | msgstr "" |
|
5134 | 5138 | |
|
5135 |
#: rhodecode/public/js/scripts.js:48 |
|
|
5139 | #: rhodecode/public/js/scripts.js:48324 rhodecode/public/js/scripts.min.js:1 | |
|
5136 | 5140 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:53 |
|
5137 | 5141 | #: rhodecode/public/js/src/rhodecode.js:288 |
|
5138 | 5142 | msgid "Loading..." |
|
5139 | 5143 | msgstr "" |
|
5140 | 5144 | |
|
5141 |
#: rhodecode/public/js/scripts.js:48 |
|
|
5145 | #: rhodecode/public/js/scripts.js:48706 rhodecode/public/js/scripts.min.js:1 | |
|
5142 | 5146 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:136 |
|
5143 | 5147 | #: rhodecode/public/js/src/rhodecode.js:670 |
|
5144 | 5148 | msgid "date not in future" |
|
5145 | 5149 | msgstr "" |
|
5146 | 5150 | |
|
5147 |
#: rhodecode/public/js/scripts.js:48 |
|
|
5151 | #: rhodecode/public/js/scripts.js:48714 rhodecode/public/js/scripts.min.js:1 | |
|
5148 | 5152 | #: rhodecode/public/js/rhodecode/i18n/js_translations.js:100 |
|
5149 | 5153 | #: rhodecode/public/js/src/rhodecode.js:678 |
|
5150 | 5154 | msgid "Specified expiration date" |
@@ -5737,8 +5741,8 b' msgid "%s Repository group dashboard"' | |||
|
5737 | 5741 | msgstr "" |
|
5738 | 5742 | |
|
5739 | 5743 | #: rhodecode/templates/index_repo_group.mako:13 |
|
5740 | #: rhodecode/templates/base/base.mako:810 | |
|
5741 | 5744 | #: rhodecode/templates/base/base.mako:811 |
|
5745 | #: rhodecode/templates/base/base.mako:812 | |
|
5742 | 5746 | msgid "Home" |
|
5743 | 5747 | msgstr "" |
|
5744 | 5748 | |
@@ -5933,9 +5937,9 b' msgstr ""' | |||
|
5933 | 5937 | #: rhodecode/templates/admin/admin_log_base.mako:10 |
|
5934 | 5938 | #: rhodecode/templates/admin/defaults/defaults.mako:32 |
|
5935 | 5939 | #: rhodecode/templates/admin/permissions/permissions_objects.mako:16 |
|
5936 |
#: rhodecode/templates/base/base.mako:65 |
|
|
5937 |
#: rhodecode/templates/base/base.mako:66 |
|
|
5938 |
#: rhodecode/templates/base/base.mako:66 |
|
|
5940 | #: rhodecode/templates/base/base.mako:659 | |
|
5941 | #: rhodecode/templates/base/base.mako:661 | |
|
5942 | #: rhodecode/templates/base/base.mako:663 | |
|
5939 | 5943 | #: rhodecode/templates/search/search_commit.mako:8 |
|
5940 | 5944 | #: rhodecode/templates/search/search_path.mako:7 |
|
5941 | 5945 | msgid "Repository" |
@@ -6261,7 +6265,7 b' msgid "Expires"' | |||
|
6261 | 6265 | msgstr "" |
|
6262 | 6266 | |
|
6263 | 6267 | #: rhodecode/templates/admin/gists/gist_new.mako:5 |
|
6264 |
#: rhodecode/templates/base/base.mako:57 |
|
|
6268 | #: rhodecode/templates/base/base.mako:578 | |
|
6265 | 6269 | msgid "New Gist" |
|
6266 | 6270 | msgstr "" |
|
6267 | 6271 | |
@@ -6353,7 +6357,7 b' msgstr ""' | |||
|
6353 | 6357 | #: rhodecode/templates/admin/integrations/new.mako:15 |
|
6354 | 6358 | #: rhodecode/templates/admin/repo_groups/repo_group_edit.mako:33 |
|
6355 | 6359 | #: rhodecode/templates/admin/repos/repo_edit.mako:74 |
|
6356 |
#: rhodecode/templates/base/base.mako:12 |
|
|
6360 | #: rhodecode/templates/base/base.mako:121 | |
|
6357 | 6361 | msgid "Integrations" |
|
6358 | 6362 | msgstr "" |
|
6359 | 6363 | |
@@ -6368,7 +6372,7 b' msgstr ""' | |||
|
6368 | 6372 | #: rhodecode/templates/admin/settings/settings.mako:14 |
|
6369 | 6373 | #: rhodecode/templates/admin/user_groups/user_group_edit.mako:34 |
|
6370 | 6374 | #: rhodecode/templates/admin/user_groups/user_group_edit_settings.mako:9 |
|
6371 |
#: rhodecode/templates/base/base.mako:12 |
|
|
6375 | #: rhodecode/templates/base/base.mako:123 | |
|
6372 | 6376 | msgid "Settings" |
|
6373 | 6377 | msgstr "" |
|
6374 | 6378 | |
@@ -6469,7 +6473,7 b' msgid "No description available"' | |||
|
6469 | 6473 | msgstr "" |
|
6470 | 6474 | |
|
6471 | 6475 | #: rhodecode/templates/admin/my_account/my_account.mako:5 |
|
6472 |
#: rhodecode/templates/base/base.mako:62 |
|
|
6476 | #: rhodecode/templates/base/base.mako:623 | |
|
6473 | 6477 | msgid "My account" |
|
6474 | 6478 | msgstr "" |
|
6475 | 6479 | |
@@ -6520,15 +6524,15 b' msgstr ""' | |||
|
6520 | 6524 | |
|
6521 | 6525 | #: rhodecode/templates/admin/my_account/my_account.mako:45 |
|
6522 | 6526 | #: rhodecode/templates/admin/notifications/notifications_show_all.mako:42 |
|
6523 |
#: rhodecode/templates/base/base.mako:38 |
|
|
6524 |
#: rhodecode/templates/base/base.mako:62 |
|
|
6527 | #: rhodecode/templates/base/base.mako:386 | |
|
6528 | #: rhodecode/templates/base/base.mako:627 | |
|
6525 | 6529 | msgid "Pull Requests" |
|
6526 | 6530 | msgstr "" |
|
6527 | 6531 | |
|
6528 | 6532 | #: rhodecode/templates/admin/my_account/my_account.mako:46 |
|
6529 | 6533 | #: rhodecode/templates/admin/permissions/permissions.mako:14 |
|
6530 | 6534 | #: rhodecode/templates/admin/user_groups/user_group_edit.mako:35 |
|
6531 |
#: rhodecode/templates/base/base.mako:11 |
|
|
6535 | #: rhodecode/templates/base/base.mako:119 | |
|
6532 | 6536 | msgid "Permissions" |
|
6533 | 6537 | msgstr "" |
|
6534 | 6538 | |
@@ -7047,7 +7051,7 b' msgstr ""' | |||
|
7047 | 7051 | #: rhodecode/templates/admin/repo_groups/repo_group_add.mako:14 |
|
7048 | 7052 | #: rhodecode/templates/admin/users/user_edit_advanced.mako:13 |
|
7049 | 7053 | #: rhodecode/templates/base/base.mako:115 |
|
7050 |
#: rhodecode/templates/base/base.mako:13 |
|
|
7054 | #: rhodecode/templates/base/base.mako:137 | |
|
7051 | 7055 | msgid "Repository groups" |
|
7052 | 7056 | msgstr "" |
|
7053 | 7057 | |
@@ -7062,7 +7066,7 b' msgstr ""' | |||
|
7062 | 7066 | #: rhodecode/templates/admin/repo_groups/repo_group_edit_settings.mako:25 |
|
7063 | 7067 | #: rhodecode/templates/admin/repos/repo_add_base.mako:43 |
|
7064 | 7068 | #: rhodecode/templates/admin/repos/repo_edit_settings.mako:33 |
|
7065 |
#: rhodecode/templates/base/base.mako:67 |
|
|
7069 | #: rhodecode/templates/base/base.mako:672 | |
|
7066 | 7070 | #: rhodecode/templates/data_table/_dt_elements.mako:217 |
|
7067 | 7071 | #: rhodecode/templates/forks/fork.mako:41 |
|
7068 | 7072 | msgid "Repository group" |
@@ -7312,7 +7316,7 b' msgid "Import Existing Repository ?"' | |||
|
7312 | 7316 | msgstr "" |
|
7313 | 7317 | |
|
7314 | 7318 | #: rhodecode/templates/admin/repos/repo_add_base.mako:23 |
|
7315 |
#: rhodecode/templates/base/base.mako:33 |
|
|
7319 | #: rhodecode/templates/base/base.mako:333 | |
|
7316 | 7320 | msgid "Clone from" |
|
7317 | 7321 | msgstr "" |
|
7318 | 7322 | |
@@ -8024,7 +8028,7 b' msgstr ""' | |||
|
8024 | 8028 | #: rhodecode/templates/admin/settings/settings_global.mako:140 |
|
8025 | 8029 | #: rhodecode/templates/admin/settings/settings_labs.mako:48 |
|
8026 | 8030 | #: rhodecode/templates/admin/settings/settings_vcs.mako:13 |
|
8027 |
#: rhodecode/templates/admin/settings/settings_visual.mako:21 |
|
|
8031 | #: rhodecode/templates/admin/settings/settings_visual.mako:217 | |
|
8028 | 8032 | msgid "Save settings" |
|
8029 | 8033 | msgstr "" |
|
8030 | 8034 | |
@@ -8550,7 +8554,7 b' msgstr ""' | |||
|
8550 | 8554 | msgid "Clone URL templates" |
|
8551 | 8555 | msgstr "" |
|
8552 | 8556 | |
|
8553 |
#: rhodecode/templates/admin/settings/settings_visual.mako:18 |
|
|
8557 | #: rhodecode/templates/admin/settings/settings_visual.mako:184 | |
|
8554 | 8558 | msgid "" |
|
8555 | 8559 | "Schema of clone url construction eg. '{scheme}://{user}@{netloc}/{repo}', available vars:\n" |
|
8556 | 8560 | " {scheme} 'http' or 'https' sent from running RhodeCode server,\n" |
@@ -8562,11 +8566,11 b' msgid ""' | |||
|
8562 | 8566 | " {repoid} ID of repository, can be used to contruct clone-by-id" |
|
8563 | 8567 | msgstr "" |
|
8564 | 8568 | |
|
8565 |
#: rhodecode/templates/admin/settings/settings_visual.mako:19 |
|
|
8569 | #: rhodecode/templates/admin/settings/settings_visual.mako:199 | |
|
8566 | 8570 | msgid "Custom Support Link" |
|
8567 | 8571 | msgstr "" |
|
8568 | 8572 | |
|
8569 |
#: rhodecode/templates/admin/settings/settings_visual.mako:20 |
|
|
8573 | #: rhodecode/templates/admin/settings/settings_visual.mako:207 | |
|
8570 | 8574 | #, python-format |
|
8571 | 8575 | msgid "" |
|
8572 | 8576 | "Custom url for the support link located at the bottom.\n" |
@@ -8582,7 +8586,7 b' msgstr ""' | |||
|
8582 | 8586 | #: rhodecode/templates/admin/user_groups/user_group_add.mako:13 |
|
8583 | 8587 | #: rhodecode/templates/admin/users/user_edit_advanced.mako:14 |
|
8584 | 8588 | #: rhodecode/templates/base/base.mako:117 |
|
8585 |
#: rhodecode/templates/base/base.mako:1 |
|
|
8589 | #: rhodecode/templates/base/base.mako:140 | |
|
8586 | 8590 | msgid "User groups" |
|
8587 | 8591 | msgstr "" |
|
8588 | 8592 | |
@@ -9090,16 +9094,21 b' msgstr ""' | |||
|
9090 | 9094 | msgid "Delegated Admin Panel" |
|
9091 | 9095 | msgstr "" |
|
9092 | 9096 | |
|
9093 |
#: rhodecode/templates/base/base.mako:11 |
|
|
9097 | #: rhodecode/templates/base/base.mako:118 | |
|
9098 | #: rhodecode/templates/base/base.mako:395 | |
|
9099 | msgid "Artifacts" | |
|
9100 | msgstr "" | |
|
9101 | ||
|
9102 | #: rhodecode/templates/base/base.mako:120 | |
|
9094 | 9103 | msgid "Authentication" |
|
9095 | 9104 | msgstr "" |
|
9096 | 9105 | |
|
9097 |
#: rhodecode/templates/base/base.mako:12 |
|
|
9106 | #: rhodecode/templates/base/base.mako:122 | |
|
9098 | 9107 | msgid "Defaults" |
|
9099 | 9108 | msgstr "" |
|
9100 | 9109 | |
|
9101 |
#: rhodecode/templates/base/base.mako:16 |
|
|
9102 |
#: rhodecode/templates/base/base.mako:20 |
|
|
9110 | #: rhodecode/templates/base/base.mako:162 | |
|
9111 | #: rhodecode/templates/base/base.mako:202 | |
|
9103 | 9112 | #: rhodecode/templates/changeset/changeset.mako:140 |
|
9104 | 9113 | #: rhodecode/templates/files/files_source_header.mako:57 |
|
9105 | 9114 | #: rhodecode/templates/files/files_tree_header.mako:44 |
@@ -9107,40 +9116,40 b' msgstr ""' | |||
|
9107 | 9116 | msgid "Show More" |
|
9108 | 9117 | msgstr "" |
|
9109 | 9118 | |
|
9110 |
#: rhodecode/templates/base/base.mako:30 |
|
|
9111 |
#: rhodecode/templates/base/base.mako:31 |
|
|
9119 | #: rhodecode/templates/base/base.mako:305 | |
|
9120 | #: rhodecode/templates/base/base.mako:316 | |
|
9112 | 9121 | msgid "RSS Feed" |
|
9113 | 9122 | msgstr "" |
|
9114 | 9123 | |
|
9115 |
#: rhodecode/templates/base/base.mako:30 |
|
|
9124 | #: rhodecode/templates/base/base.mako:307 | |
|
9116 | 9125 | msgid "Watch this Repository and actions on it in your personalized journal" |
|
9117 | 9126 | msgstr "" |
|
9118 | 9127 | |
|
9119 |
#: rhodecode/templates/base/base.mako:32 |
|
|
9128 | #: rhodecode/templates/base/base.mako:325 | |
|
9120 | 9129 | msgid "Fork of" |
|
9121 | 9130 | msgstr "" |
|
9122 | 9131 | |
|
9123 |
#: rhodecode/templates/base/base.mako:34 |
|
|
9132 | #: rhodecode/templates/base/base.mako:342 | |
|
9124 | 9133 | #, python-format |
|
9125 | 9134 | msgid "Repository locked by %(user)s" |
|
9126 | 9135 | msgstr "" |
|
9127 | 9136 | |
|
9128 |
#: rhodecode/templates/base/base.mako:34 |
|
|
9137 | #: rhodecode/templates/base/base.mako:347 | |
|
9129 | 9138 | msgid "Repository not locked. Pull repository to lock it." |
|
9130 | 9139 | msgstr "" |
|
9131 | 9140 | |
|
9132 |
#: rhodecode/templates/base/base.mako:36 |
|
|
9141 | #: rhodecode/templates/base/base.mako:363 | |
|
9133 | 9142 | msgid "This repository has been archived. It is now read-only." |
|
9134 | 9143 | msgstr "" |
|
9135 | 9144 | |
|
9136 |
#: rhodecode/templates/base/base.mako:37 |
|
|
9145 | #: rhodecode/templates/base/base.mako:376 | |
|
9137 | 9146 | #: rhodecode/templates/data_table/_dt_elements.mako:58 |
|
9138 | 9147 | #: rhodecode/templates/data_table/_dt_elements.mako:59 |
|
9139 | 9148 | #: rhodecode/templates/data_table/_dt_elements.mako:207 |
|
9140 | 9149 | msgid "Summary" |
|
9141 | 9150 | msgstr "" |
|
9142 | 9151 | |
|
9143 |
#: rhodecode/templates/base/base.mako:37 |
|
|
9152 | #: rhodecode/templates/base/base.mako:377 | |
|
9144 | 9153 | #: rhodecode/templates/data_table/_dt_elements.mako:63 |
|
9145 | 9154 | #: rhodecode/templates/data_table/_dt_elements.mako:64 |
|
9146 | 9155 | #: rhodecode/templates/files/file_authors_box.mako:30 |
@@ -9150,7 +9159,7 b' msgstr ""' | |||
|
9150 | 9159 | msgid "Commits" |
|
9151 | 9160 | msgstr "" |
|
9152 | 9161 | |
|
9153 |
#: rhodecode/templates/base/base.mako:37 |
|
|
9162 | #: rhodecode/templates/base/base.mako:378 | |
|
9154 | 9163 | #: rhodecode/templates/data_table/_dt_elements.mako:68 |
|
9155 | 9164 | #: rhodecode/templates/data_table/_dt_elements.mako:69 |
|
9156 | 9165 | #: rhodecode/templates/files/files.mako:15 |
@@ -9158,87 +9167,83 b' msgstr ""' | |||
|
9158 | 9167 | msgid "Files" |
|
9159 | 9168 | msgstr "" |
|
9160 | 9169 | |
|
9161 |
#: rhodecode/templates/base/base.mako:37 |
|
|
9170 | #: rhodecode/templates/base/base.mako:379 | |
|
9162 | 9171 | #: rhodecode/templates/bookmarks/bookmarks.mako:78 |
|
9163 | 9172 | #: rhodecode/templates/branches/branches.mako:77 |
|
9164 | 9173 | #: rhodecode/templates/tags/tags.mako:78 |
|
9165 | 9174 | msgid "Compare" |
|
9166 | 9175 | msgstr "" |
|
9167 | 9176 | |
|
9168 |
#: rhodecode/templates/base/base.mako:38 |
|
|
9177 | #: rhodecode/templates/base/base.mako:384 | |
|
9169 | 9178 | #, python-format |
|
9170 | 9179 | msgid "Show Pull Requests for %s" |
|
9171 | 9180 | msgstr "" |
|
9172 | 9181 | |
|
9173 |
#: rhodecode/templates/base/base.mako: |
|
|
9174 | msgid "Artifacts" | |
|
9175 | msgstr "" | |
|
9176 | ||
|
9177 | #: rhodecode/templates/base/base.mako:400 | |
|
9182 | #: rhodecode/templates/base/base.mako:401 | |
|
9178 | 9183 | msgid "Repository Settings" |
|
9179 | 9184 | msgstr "" |
|
9180 | 9185 | |
|
9181 |
#: rhodecode/templates/base/base.mako:40 |
|
|
9186 | #: rhodecode/templates/base/base.mako:407 | |
|
9182 | 9187 | msgid "Options" |
|
9183 | 9188 | msgstr "" |
|
9184 | 9189 | |
|
9185 |
#: rhodecode/templates/base/base.mako:41 |
|
|
9190 | #: rhodecode/templates/base/base.mako:412 | |
|
9186 | 9191 | msgid "Unlock Repository" |
|
9187 | 9192 | msgstr "" |
|
9188 | 9193 | |
|
9189 |
#: rhodecode/templates/base/base.mako:41 |
|
|
9194 | #: rhodecode/templates/base/base.mako:414 | |
|
9190 | 9195 | msgid "Lock Repository" |
|
9191 | 9196 | msgstr "" |
|
9192 | 9197 | |
|
9193 |
#: rhodecode/templates/base/base.mako:46 |
|
|
9198 | #: rhodecode/templates/base/base.mako:467 | |
|
9194 | 9199 | msgid "Group Home" |
|
9195 | 9200 | msgstr "" |
|
9196 | 9201 | |
|
9197 |
#: rhodecode/templates/base/base.mako:47 |
|
|
9202 | #: rhodecode/templates/base/base.mako:471 | |
|
9198 | 9203 | msgid "You have admin right to this group, and can edit it" |
|
9199 | 9204 | msgstr "" |
|
9200 | 9205 | |
|
9201 |
#: rhodecode/templates/base/base.mako:47 |
|
|
9206 | #: rhodecode/templates/base/base.mako:471 | |
|
9202 | 9207 | msgid "Group Settings" |
|
9203 | 9208 | msgstr "" |
|
9204 | 9209 | |
|
9205 |
#: rhodecode/templates/base/base.mako:52 |
|
|
9210 | #: rhodecode/templates/base/base.mako:522 | |
|
9206 | 9211 | msgid "This Repository" |
|
9207 | 9212 | msgstr "" |
|
9208 | 9213 | |
|
9209 |
#: rhodecode/templates/base/base.mako:52 |
|
|
9214 | #: rhodecode/templates/base/base.mako:524 | |
|
9210 | 9215 | msgid "Create Pull Request" |
|
9211 | 9216 | msgstr "" |
|
9212 | 9217 | |
|
9213 |
#: rhodecode/templates/base/base.mako:52 |
|
|
9218 | #: rhodecode/templates/base/base.mako:528 | |
|
9214 | 9219 | msgid "Fork this repository" |
|
9215 | 9220 | msgstr "" |
|
9216 | 9221 | |
|
9217 |
#: rhodecode/templates/base/base.mako:53 |
|
|
9222 | #: rhodecode/templates/base/base.mako:535 | |
|
9218 | 9223 | msgid "This Repository Group" |
|
9219 | 9224 | msgstr "" |
|
9220 | 9225 | |
|
9221 |
#: rhodecode/templates/base/base.mako:53 |
|
|
9222 |
#: rhodecode/templates/base/base.mako:55 |
|
|
9223 |
#: rhodecode/templates/base/base.mako:56 |
|
|
9226 | #: rhodecode/templates/base/base.mako:539 | |
|
9227 | #: rhodecode/templates/base/base.mako:555 | |
|
9228 | #: rhodecode/templates/base/base.mako:567 | |
|
9224 | 9229 | msgid "New Repository" |
|
9225 | 9230 | msgstr "" |
|
9226 | 9231 | |
|
9227 |
#: rhodecode/templates/base/base.mako:54 |
|
|
9228 |
#: rhodecode/templates/base/base.mako:55 |
|
|
9229 |
#: rhodecode/templates/base/base.mako:57 |
|
|
9232 | #: rhodecode/templates/base/base.mako:545 | |
|
9233 | #: rhodecode/templates/base/base.mako:559 | |
|
9234 | #: rhodecode/templates/base/base.mako:573 | |
|
9230 | 9235 | msgid "New Repository Group" |
|
9231 | 9236 | msgstr "" |
|
9232 | 9237 | |
|
9233 |
#: rhodecode/templates/base/base.mako: |
|
|
9238 | #: rhodecode/templates/base/base.mako:600 | |
|
9234 | 9239 | msgid "Sign in" |
|
9235 | 9240 | msgstr "" |
|
9236 | 9241 | |
|
9237 |
#: rhodecode/templates/base/base.mako:62 |
|
|
9242 | #: rhodecode/templates/base/base.mako:625 | |
|
9238 | 9243 | msgid "My personal group" |
|
9239 | 9244 | msgstr "" |
|
9240 | 9245 | |
|
9241 |
#: rhodecode/templates/base/base.mako:63 |
|
|
9246 | #: rhodecode/templates/base/base.mako:631 | |
|
9242 | 9247 | #: rhodecode/templates/debug_style/alerts.html:5 |
|
9243 | 9248 | #: rhodecode/templates/debug_style/buttons.html:5 |
|
9244 | 9249 | #: rhodecode/templates/debug_style/code-block.html:6 |
@@ -9261,62 +9266,62 b' msgstr ""' | |||
|
9261 | 9266 | msgid "Style" |
|
9262 | 9267 | msgstr "" |
|
9263 | 9268 | |
|
9264 |
#: rhodecode/templates/base/base.mako:63 |
|
|
9269 | #: rhodecode/templates/base/base.mako:632 | |
|
9265 | 9270 | msgid "[Style]" |
|
9266 | 9271 | msgstr "" |
|
9267 | 9272 | |
|
9268 |
#: rhodecode/templates/base/base.mako:64 |
|
|
9273 | #: rhodecode/templates/base/base.mako:649 | |
|
9269 | 9274 | msgid "No Bookmarks yet." |
|
9270 | 9275 | msgstr "" |
|
9271 | 9276 | |
|
9272 |
#: rhodecode/templates/base/base.mako:68 |
|
|
9277 | #: rhodecode/templates/base/base.mako:687 | |
|
9273 | 9278 | msgid "Sign Out" |
|
9274 | 9279 | msgstr "" |
|
9275 | 9280 | |
|
9276 |
#: rhodecode/templates/base/base.mako:73 |
|
|
9281 | #: rhodecode/templates/base/base.mako:732 | |
|
9277 | 9282 | #: rhodecode/templates/changeset/changeset_file_comment.mako:538 |
|
9278 | 9283 | msgid "dismiss" |
|
9279 | 9284 | msgstr "" |
|
9280 | 9285 | |
|
9281 |
#: rhodecode/templates/base/base.mako:77 |
|
|
9286 | #: rhodecode/templates/base/base.mako:773 | |
|
9282 | 9287 | msgid "search / go to..." |
|
9283 | 9288 | msgstr "" |
|
9284 | 9289 | |
|
9285 | #: rhodecode/templates/base/base.mako:817 | |
|
9286 | msgid "Show activity journal" | |
|
9287 | msgstr "" | |
|
9288 | ||
|
9289 | 9290 | #: rhodecode/templates/base/base.mako:818 |
|
9291 | msgid "Show activity journal" | |
|
9292 | msgstr "" | |
|
9293 | ||
|
9294 | #: rhodecode/templates/base/base.mako:819 | |
|
9290 | 9295 | #: rhodecode/templates/journal/journal.mako:4 |
|
9291 | 9296 | #: rhodecode/templates/journal/journal.mako:14 |
|
9292 | 9297 | msgid "Journal" |
|
9293 | 9298 | msgstr "" |
|
9294 | 9299 | |
|
9295 | #: rhodecode/templates/base/base.mako:823 | |
|
9296 | msgid "Show Public activity journal" | |
|
9297 | msgstr "" | |
|
9298 | ||
|
9299 | 9300 | #: rhodecode/templates/base/base.mako:824 |
|
9301 | msgid "Show Public activity journal" | |
|
9302 | msgstr "" | |
|
9303 | ||
|
9304 | #: rhodecode/templates/base/base.mako:825 | |
|
9300 | 9305 | msgid "Public journal" |
|
9301 | 9306 | msgstr "" |
|
9302 | 9307 | |
|
9303 | #: rhodecode/templates/base/base.mako:830 | |
|
9304 | msgid "Show Gists" | |
|
9305 | msgstr "" | |
|
9306 | ||
|
9307 | 9308 | #: rhodecode/templates/base/base.mako:831 |
|
9309 | msgid "Show Gists" | |
|
9310 | msgstr "" | |
|
9311 | ||
|
9312 | #: rhodecode/templates/base/base.mako:832 | |
|
9308 | 9313 | msgid "Gists" |
|
9309 | 9314 | msgstr "" |
|
9310 | 9315 | |
|
9311 |
#: rhodecode/templates/base/base.mako:83 |
|
|
9316 | #: rhodecode/templates/base/base.mako:838 | |
|
9312 | 9317 | msgid "Admin settings" |
|
9313 | 9318 | msgstr "" |
|
9314 | 9319 | |
|
9315 |
#: rhodecode/templates/base/base.mako:115 |
|
|
9320 | #: rhodecode/templates/base/base.mako:1155 | |
|
9316 | 9321 | msgid "Keyboard shortcuts" |
|
9317 | 9322 | msgstr "" |
|
9318 | 9323 | |
|
9319 |
#: rhodecode/templates/base/base.mako:116 |
|
|
9324 | #: rhodecode/templates/base/base.mako:1163 | |
|
9320 | 9325 | msgid "Site-wide shortcuts" |
|
9321 | 9326 | msgstr "" |
|
9322 | 9327 | |
@@ -9357,7 +9362,7 b' msgid "Repository Forking"' | |||
|
9357 | 9362 | msgstr "" |
|
9358 | 9363 | |
|
9359 | 9364 | #: rhodecode/templates/base/default_perms_box.mako:65 |
|
9360 |
msgid "Permission to create r |
|
|
9365 | msgid "Permission to create repository forks. Root level forks will only work if repository creation is enabled." | |
|
9361 | 9366 | msgstr "" |
|
9362 | 9367 | |
|
9363 | 9368 | #: rhodecode/templates/base/default_perms_box.mako:70 |
@@ -9418,7 +9423,7 b' msgstr ""' | |||
|
9418 | 9423 | #: rhodecode/templates/base/issue_tracker_settings.mako:300 |
|
9419 | 9424 | #: rhodecode/templates/changeset/changeset_file_comment.mako:395 |
|
9420 | 9425 | #: rhodecode/templates/changeset/changeset_file_comment.mako:446 |
|
9421 |
#: rhodecode/templates/data_table/_dt_elements.mako:4 |
|
|
9426 | #: rhodecode/templates/data_table/_dt_elements.mako:463 | |
|
9422 | 9427 | #: rhodecode/templates/files/files_add.mako:59 |
|
9423 | 9428 | #: rhodecode/templates/files/files_edit.mako:61 |
|
9424 | 9429 | msgid "Preview" |
@@ -10481,11 +10486,11 b' msgstr ""' | |||
|
10481 | 10486 | msgid "Work in progress" |
|
10482 | 10487 | msgstr "" |
|
10483 | 10488 | |
|
10484 |
#: rhodecode/templates/data_table/_dt_elements.mako:43 |
|
|
10489 | #: rhodecode/templates/data_table/_dt_elements.mako:438 | |
|
10485 | 10490 | msgid "Info" |
|
10486 | 10491 | msgstr "" |
|
10487 | 10492 | |
|
10488 |
#: rhodecode/templates/data_table/_dt_elements.mako:4 |
|
|
10493 | #: rhodecode/templates/data_table/_dt_elements.mako:480 | |
|
10489 | 10494 | #, python-format |
|
10490 | 10495 | msgid "Parsed using %s syntax" |
|
10491 | 10496 | msgstr "" |
@@ -10645,7 +10650,7 b' msgid "{mention_prefix}{user} left a {co' | |||
|
10645 | 10650 | msgstr "" |
|
10646 | 10651 | |
|
10647 | 10652 | #: rhodecode/templates/email_templates/commit_comment.mako:54 |
|
10648 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:6 |
|
|
10653 | #: rhodecode/templates/email_templates/pull_request_comment.mako:62 | |
|
10649 | 10654 | msgid "Comment link" |
|
10650 | 10655 | msgstr "" |
|
10651 | 10656 | |
@@ -10662,26 +10667,26 b' msgid "Commit message"' | |||
|
10662 | 10667 | msgstr "" |
|
10663 | 10668 | |
|
10664 | 10669 | #: rhodecode/templates/email_templates/commit_comment.mako:65 |
|
10665 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:7 |
|
|
10670 | #: rhodecode/templates/email_templates/pull_request_comment.mako:76 | |
|
10666 | 10671 | msgid "File: {comment_file} on line {comment_line}" |
|
10667 | 10672 | msgstr "" |
|
10668 | 10673 | |
|
10669 | 10674 | #: rhodecode/templates/email_templates/commit_comment.mako:69 |
|
10670 | 10675 | #: rhodecode/templates/email_templates/commit_comment.mako:161 |
|
10671 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:8 |
|
|
10672 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:19 |
|
|
10676 | #: rhodecode/templates/email_templates/pull_request_comment.mako:80 | |
|
10677 | #: rhodecode/templates/email_templates/pull_request_comment.mako:190 | |
|
10673 | 10678 | msgid "`TODO` number" |
|
10674 | 10679 | msgstr "" |
|
10675 | 10680 | |
|
10676 | 10681 | #: rhodecode/templates/email_templates/commit_comment.mako:71 |
|
10677 | 10682 | #: rhodecode/templates/email_templates/commit_comment.mako:163 |
|
10678 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:8 |
|
|
10679 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:19 |
|
|
10683 | #: rhodecode/templates/email_templates/pull_request_comment.mako:82 | |
|
10684 | #: rhodecode/templates/email_templates/pull_request_comment.mako:192 | |
|
10680 | 10685 | msgid "`Note` number" |
|
10681 | 10686 | msgstr "" |
|
10682 | 10687 | |
|
10683 | 10688 | #: rhodecode/templates/email_templates/commit_comment.mako:104 |
|
10684 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:12 |
|
|
10689 | #: rhodecode/templates/email_templates/pull_request_comment.mako:123 | |
|
10685 | 10690 | msgid "left a" |
|
10686 | 10691 | msgstr "" |
|
10687 | 10692 | |
@@ -10702,18 +10707,18 b' msgid "Commit Status"' | |||
|
10702 | 10707 | msgstr "" |
|
10703 | 10708 | |
|
10704 | 10709 | #: rhodecode/templates/email_templates/commit_comment.mako:153 |
|
10705 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:18 |
|
|
10710 | #: rhodecode/templates/email_templates/pull_request_comment.mako:182 | |
|
10706 | 10711 | #: rhodecode/templates/search/search_path.mako:9 |
|
10707 | 10712 | msgid "File" |
|
10708 | 10713 | msgstr "" |
|
10709 | 10714 | |
|
10710 | 10715 | #: rhodecode/templates/email_templates/commit_comment.mako:154 |
|
10711 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:18 |
|
|
10716 | #: rhodecode/templates/email_templates/pull_request_comment.mako:183 | |
|
10712 | 10717 | msgid "`{comment_file}` on line {comment_line}" |
|
10713 | 10718 | msgstr "" |
|
10714 | 10719 | |
|
10715 | 10720 | #: rhodecode/templates/email_templates/commit_comment.mako:173 |
|
10716 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:20 |
|
|
10721 | #: rhodecode/templates/email_templates/pull_request_comment.mako:202 | |
|
10717 | 10722 | msgid "Reply" |
|
10718 | 10723 | msgstr "" |
|
10719 | 10724 | |
@@ -10729,35 +10734,35 b' msgstr ""' | |||
|
10729 | 10734 | msgid "{mention_prefix}{user} left a {comment_type} on pull request !{pr_id}: \"{pr_title}\"" |
|
10730 | 10735 | msgstr "" |
|
10731 | 10736 | |
|
10732 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:6 |
|
|
10737 | #: rhodecode/templates/email_templates/pull_request_comment.mako:64 | |
|
10733 | 10738 | #: rhodecode/templates/hovercards/hovercard_pull_request.mako:24 |
|
10734 | 10739 | msgid "Pull Request" |
|
10735 | 10740 | msgstr "" |
|
10736 | 10741 | |
|
10737 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:6 |
|
|
10742 | #: rhodecode/templates/email_templates/pull_request_comment.mako:66 | |
|
10738 | 10743 | #: rhodecode/templates/email_templates/pull_request_review.mako:45 |
|
10739 | 10744 | #: rhodecode/templates/email_templates/pull_request_update.mako:41 |
|
10740 | 10745 | msgid "Commit flow: {source_ref_type}:{source_ref_name} of {source_repo_url} into {target_ref_type}:{target_ref_name} of {target_repo_url}" |
|
10741 | 10746 | msgstr "" |
|
10742 | 10747 | |
|
10743 |
#: rhodecode/templates/email_templates/pull_request_comment.mako: |
|
|
10748 | #: rhodecode/templates/email_templates/pull_request_comment.mako:69 | |
|
10744 | 10749 | msgid "{user} submitted pull request !{pr_id} status: *{status}*" |
|
10745 | 10750 | msgstr "" |
|
10746 | 10751 | |
|
10747 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:7 |
|
|
10752 | #: rhodecode/templates/email_templates/pull_request_comment.mako:72 | |
|
10748 | 10753 | msgid "{user} submitted pull request !{pr_id} status: *{status} and closed*" |
|
10749 | 10754 | msgstr "" |
|
10750 | 10755 | |
|
10751 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:12 |
|
|
10756 | #: rhodecode/templates/email_templates/pull_request_comment.mako:126 | |
|
10752 | 10757 | msgid "{comment_type} on file `{comment_file}` in pull request." |
|
10753 | 10758 | msgstr "" |
|
10754 | 10759 | |
|
10755 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:12 |
|
|
10760 | #: rhodecode/templates/email_templates/pull_request_comment.mako:128 | |
|
10756 | 10761 | msgid "{comment_type} on pull request." |
|
10757 | 10762 | msgstr "" |
|
10758 | 10763 | |
|
10759 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:13 |
|
|
10760 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:16 |
|
|
10764 | #: rhodecode/templates/email_templates/pull_request_comment.mako:133 | |
|
10765 | #: rhodecode/templates/email_templates/pull_request_comment.mako:163 | |
|
10761 | 10766 | #: rhodecode/templates/email_templates/pull_request_review.mako:100 |
|
10762 | 10767 | #: rhodecode/templates/email_templates/pull_request_review.mako:116 |
|
10763 | 10768 | #: rhodecode/templates/email_templates/pull_request_update.mako:104 |
@@ -10765,26 +10770,26 b' msgstr ""' | |||
|
10765 | 10770 | msgid "Pull request" |
|
10766 | 10771 | msgstr "" |
|
10767 | 10772 | |
|
10768 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:15 |
|
|
10773 | #: rhodecode/templates/email_templates/pull_request_comment.mako:152 | |
|
10769 | 10774 | msgid "Review Status" |
|
10770 | 10775 | msgstr "" |
|
10771 | 10776 | |
|
10772 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:15 |
|
|
10777 | #: rhodecode/templates/email_templates/pull_request_comment.mako:155 | |
|
10773 | 10778 | msgid "Closed pull request with status" |
|
10774 | 10779 | msgstr "" |
|
10775 | 10780 | |
|
10776 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:15 |
|
|
10781 | #: rhodecode/templates/email_templates/pull_request_comment.mako:157 | |
|
10777 | 10782 | msgid "Submitted review status" |
|
10778 | 10783 | msgstr "" |
|
10779 | 10784 | |
|
10780 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:17 |
|
|
10785 | #: rhodecode/templates/email_templates/pull_request_comment.mako:172 | |
|
10781 | 10786 | #: rhodecode/templates/email_templates/pull_request_review.mako:125 |
|
10782 | 10787 | #: rhodecode/templates/email_templates/pull_request_update.mako:130 |
|
10783 | 10788 | msgid "Commit Flow" |
|
10784 | 10789 | msgstr "" |
|
10785 | 10790 | |
|
10786 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:17 |
|
|
10787 |
#: rhodecode/templates/email_templates/pull_request_comment.mako:17 |
|
|
10791 | #: rhodecode/templates/email_templates/pull_request_comment.mako:174 | |
|
10792 | #: rhodecode/templates/email_templates/pull_request_comment.mako:176 | |
|
10788 | 10793 | #: rhodecode/templates/email_templates/pull_request_review.mako:127 |
|
10789 | 10794 | #: rhodecode/templates/email_templates/pull_request_review.mako:129 |
|
10790 | 10795 | #: rhodecode/templates/email_templates/pull_request_update.mako:132 |
@@ -11447,12 +11452,12 b' msgstr ""' | |||
|
11447 | 11452 | msgid "In pull request description" |
|
11448 | 11453 | msgstr "" |
|
11449 | 11454 | |
|
11450 |
#: rhodecode/templates/pullrequests/pullrequest_show.mako:8 |
|
|
11451 |
#: rhodecode/templates/pullrequests/pullrequest_show.mako:8 |
|
|
11455 | #: rhodecode/templates/pullrequests/pullrequest_show.mako:840 | |
|
11456 | #: rhodecode/templates/pullrequests/pullrequest_show.mako:860 | |
|
11452 | 11457 | msgid "No Ticket data found." |
|
11453 | 11458 | msgstr "" |
|
11454 | 11459 | |
|
11455 |
#: rhodecode/templates/pullrequests/pullrequest_show.mako:84 |
|
|
11460 | #: rhodecode/templates/pullrequests/pullrequest_show.mako:845 | |
|
11456 | 11461 | msgid "In commit messages" |
|
11457 | 11462 | msgstr "" |
|
11458 | 11463 |
@@ -311,6 +311,7 b' class BaseRepository(object):' | |||
|
311 | 311 | DEFAULT_CONTACT = u"Unknown" |
|
312 | 312 | DEFAULT_DESCRIPTION = u"unknown" |
|
313 | 313 | EMPTY_COMMIT_ID = '0' * 40 |
|
314 | COMMIT_ID_PAT = re.compile(r'[0-9a-fA-F]{40}') | |
|
314 | 315 | |
|
315 | 316 | path = None |
|
316 | 317 |
@@ -618,7 +618,7 b' class GitRepository(BaseRepository):' | |||
|
618 | 618 | else: |
|
619 | 619 | output, __ = self.run_git_command( |
|
620 | 620 | ['merge-base', commit_id1, commit_id2]) |
|
621 |
ancestor_id = |
|
|
621 | ancestor_id = self.COMMIT_ID_PAT.findall(output)[0] | |
|
622 | 622 | |
|
623 | 623 | log.debug('Found common ancestor with sha: %s', ancestor_id) |
|
624 | 624 | |
@@ -642,7 +642,7 b' class GitRepository(BaseRepository):' | |||
|
642 | 642 | '%s..%s' % (commit_id1, commit_id2)]) |
|
643 | 643 | commits = [ |
|
644 | 644 | repo1.get_commit(commit_id=commit_id, pre_load=pre_load) |
|
645 |
for commit_id in |
|
|
645 | for commit_id in self.COMMIT_ID_PAT.findall(output)] | |
|
646 | 646 | |
|
647 | 647 | return commits |
|
648 | 648 |
@@ -354,7 +354,7 b' class ChangesetStatusModel(BaseModel):' | |||
|
354 | 354 | Session().add(new_status) |
|
355 | 355 | return new_statuses |
|
356 | 356 | |
|
357 | def aggregate_votes_by_user(self, commit_statuses, reviewers_data): | |
|
357 | def aggregate_votes_by_user(self, commit_statuses, reviewers_data, user=None): | |
|
358 | 358 | |
|
359 | 359 | commit_statuses_map = collections.defaultdict(list) |
|
360 | 360 | for st in commit_statuses: |
@@ -368,6 +368,10 b' class ChangesetStatusModel(BaseModel):' | |||
|
368 | 368 | for obj in reviewers_data: |
|
369 | 369 | if not obj.user: |
|
370 | 370 | continue |
|
371 | if user and obj.user.username != user.username: | |
|
372 | # single user filter | |
|
373 | continue | |
|
374 | ||
|
371 | 375 | statuses = commit_statuses_map.get(obj.user.username, None) |
|
372 | 376 | if statuses: |
|
373 | 377 | status_groups = itertools.groupby( |
@@ -376,16 +380,19 b' class ChangesetStatusModel(BaseModel):' | |||
|
376 | 380 | |
|
377 | 381 | reviewers.append((obj, obj.user, obj.reasons, obj.mandatory, statuses)) |
|
378 | 382 | |
|
379 | return reviewers | |
|
383 | if user: | |
|
384 | return reviewers[0] if reviewers else reviewers | |
|
385 | else: | |
|
386 | return reviewers | |
|
380 | 387 | |
|
381 | def reviewers_statuses(self, pull_request): | |
|
388 | def reviewers_statuses(self, pull_request, user=None): | |
|
382 | 389 | _commit_statuses = self.get_statuses( |
|
383 | 390 | pull_request.source_repo, |
|
384 | 391 | pull_request=pull_request, |
|
385 | 392 | with_revisions=True) |
|
386 | 393 | reviewers = pull_request.get_pull_request_reviewers( |
|
387 | 394 | role=PullRequestReviewers.ROLE_REVIEWER) |
|
388 | return self.aggregate_votes_by_user(_commit_statuses, reviewers) | |
|
395 | return self.aggregate_votes_by_user(_commit_statuses, reviewers, user=user) | |
|
389 | 396 | |
|
390 | 397 | def calculated_review_status(self, pull_request): |
|
391 | 398 | """ |
@@ -41,10 +41,10 b' from sqlalchemy import (' | |||
|
41 | 41 | Index, Sequence, UniqueConstraint, ForeignKey, CheckConstraint, Column, |
|
42 | 42 | Boolean, String, Unicode, UnicodeText, DateTime, Integer, LargeBinary, |
|
43 | 43 | Text, Float, PickleType, BigInteger) |
|
44 | from sqlalchemy.sql.expression import true, false, case | |
|
44 | from sqlalchemy.sql.expression import true, false, case, null | |
|
45 | 45 | from sqlalchemy.sql.functions import coalesce, count # pragma: no cover |
|
46 | 46 | from sqlalchemy.orm import ( |
|
47 | relationship, joinedload, class_mapper, validates, aliased) | |
|
47 | relationship, lazyload, joinedload, class_mapper, validates, aliased) | |
|
48 | 48 | from sqlalchemy.ext.declarative import declared_attr |
|
49 | 49 | from sqlalchemy.ext.hybrid import hybrid_property |
|
50 | 50 | from sqlalchemy.exc import IntegrityError # pragma: no cover |
@@ -911,7 +911,7 b' class User(Base, BaseModel):' | |||
|
911 | 911 | return {} |
|
912 | 912 | |
|
913 | 913 | try: |
|
914 | return json.loads(self._user_data) | |
|
914 | return json.loads(self._user_data) or {} | |
|
915 | 915 | except TypeError: |
|
916 | 916 | return {} |
|
917 | 917 | |
@@ -4479,9 +4479,9 b' class PullRequest(Base, _PullRequestBase' | |||
|
4479 | 4479 | from rhodecode.model.changeset_status import ChangesetStatusModel |
|
4480 | 4480 | return ChangesetStatusModel().calculated_review_status(self) |
|
4481 | 4481 | |
|
4482 | def reviewers_statuses(self): | |
|
4482 | def reviewers_statuses(self, user=None): | |
|
4483 | 4483 | from rhodecode.model.changeset_status import ChangesetStatusModel |
|
4484 | return ChangesetStatusModel().reviewers_statuses(self) | |
|
4484 | return ChangesetStatusModel().reviewers_statuses(self, user=user) | |
|
4485 | 4485 | |
|
4486 | 4486 | def get_pull_request_reviewers(self, role=None): |
|
4487 | 4487 | qry = PullRequestReviewers.query()\ |
@@ -56,7 +56,7 b' from rhodecode.model import BaseModel' | |||
|
56 | 56 | from rhodecode.model.changeset_status import ChangesetStatusModel |
|
57 | 57 | from rhodecode.model.comment import CommentsModel |
|
58 | 58 | from rhodecode.model.db import ( |
|
59 | or_, String, cast, PullRequest, PullRequestReviewers, ChangesetStatus, | |
|
59 | aliased, null, lazyload, and_, or_, func, String, cast, PullRequest, PullRequestReviewers, ChangesetStatus, | |
|
60 | 60 | PullRequestVersion, ChangesetComment, Repository, RepoReviewRule, User) |
|
61 | 61 | from rhodecode.model.meta import Session |
|
62 | 62 | from rhodecode.model.notification import NotificationModel, \ |
@@ -319,7 +319,7 b' class PullRequestModel(BaseModel):' | |||
|
319 | 319 | |
|
320 | 320 | if search_q: |
|
321 | 321 | like_expression = u'%{}%'.format(safe_unicode(search_q)) |
|
322 | q = q.join(User) | |
|
322 | q = q.join(User, User.user_id == PullRequest.user_id) | |
|
323 | 323 | q = q.filter(or_( |
|
324 | 324 | cast(PullRequest.pull_request_id, String).ilike(like_expression), |
|
325 | 325 | User.username.ilike(like_expression), |
@@ -405,36 +405,30 b' class PullRequestModel(BaseModel):' | |||
|
405 | 405 | |
|
406 | 406 | return pull_requests |
|
407 | 407 | |
|
408 |
def count_awaiting_review(self, repo_name, search_q=None, |
|
|
409 | opened_by=None): | |
|
408 | def count_awaiting_review(self, repo_name, search_q=None, statuses=None): | |
|
410 | 409 | """ |
|
411 | 410 | Count the number of pull requests for a specific repository that are |
|
412 | 411 | awaiting review. |
|
413 | 412 | |
|
414 | 413 | :param repo_name: target or source repo |
|
415 | 414 | :param search_q: filter by text |
|
416 | :param source: boolean flag to specify if repo_name refers to source | |
|
417 | 415 | :param statuses: list of pull request statuses |
|
418 | :param opened_by: author user of the pull request | |
|
419 | 416 | :returns: int number of pull requests |
|
420 | 417 | """ |
|
421 | 418 | pull_requests = self.get_awaiting_review( |
|
422 |
repo_name, search_q=search_q, |
|
|
419 | repo_name, search_q=search_q, statuses=statuses) | |
|
423 | 420 | |
|
424 | 421 | return len(pull_requests) |
|
425 | 422 | |
|
426 |
def get_awaiting_review(self, repo_name, search_q=None, |
|
|
427 |
|
|
|
428 | order_by=None, order_dir='desc'): | |
|
423 | def get_awaiting_review(self, repo_name, search_q=None, statuses=None, | |
|
424 | offset=0, length=None, order_by=None, order_dir='desc'): | |
|
429 | 425 | """ |
|
430 | 426 | Get all pull requests for a specific repository that are awaiting |
|
431 | 427 | review. |
|
432 | 428 | |
|
433 | 429 | :param repo_name: target or source repo |
|
434 | 430 | :param search_q: filter by text |
|
435 | :param source: boolean flag to specify if repo_name refers to source | |
|
436 | 431 | :param statuses: list of pull request statuses |
|
437 | :param opened_by: author user of the pull request | |
|
438 | 432 | :param offset: pagination offset |
|
439 | 433 | :param length: length of returned list |
|
440 | 434 | :param order_by: order of the returned list |
@@ -442,8 +436,8 b' class PullRequestModel(BaseModel):' | |||
|
442 | 436 | :returns: list of pull requests |
|
443 | 437 | """ |
|
444 | 438 | pull_requests = self.get_all( |
|
445 |
repo_name, search_q=search_q, |
|
|
446 |
|
|
|
439 | repo_name, search_q=search_q, statuses=statuses, | |
|
440 | order_by=order_by, order_dir=order_dir) | |
|
447 | 441 | |
|
448 | 442 | _filtered_pull_requests = [] |
|
449 | 443 | for pr in pull_requests: |
@@ -456,68 +450,117 b' class PullRequestModel(BaseModel):' | |||
|
456 | 450 | else: |
|
457 | 451 | return _filtered_pull_requests |
|
458 | 452 | |
|
459 | def count_awaiting_my_review(self, repo_name, search_q=None, source=False, statuses=None, | |
|
460 | opened_by=None, user_id=None): | |
|
453 | def _prepare_awaiting_my_review_review_query( | |
|
454 | self, repo_name, user_id, search_q=None, statuses=None, | |
|
455 | order_by=None, order_dir='desc'): | |
|
456 | ||
|
457 | for_review_statuses = [ | |
|
458 | ChangesetStatus.STATUS_UNDER_REVIEW, ChangesetStatus.STATUS_NOT_REVIEWED | |
|
459 | ] | |
|
460 | ||
|
461 | pull_request_alias = aliased(PullRequest) | |
|
462 | status_alias = aliased(ChangesetStatus) | |
|
463 | reviewers_alias = aliased(PullRequestReviewers) | |
|
464 | repo_alias = aliased(Repository) | |
|
465 | ||
|
466 | last_ver_subq = Session()\ | |
|
467 | .query(func.min(ChangesetStatus.version)) \ | |
|
468 | .filter(ChangesetStatus.pull_request_id == reviewers_alias.pull_request_id)\ | |
|
469 | .filter(ChangesetStatus.user_id == reviewers_alias.user_id) \ | |
|
470 | .subquery() | |
|
471 | ||
|
472 | q = Session().query(pull_request_alias) \ | |
|
473 | .options(lazyload(pull_request_alias.author)) \ | |
|
474 | .join(reviewers_alias, | |
|
475 | reviewers_alias.pull_request_id == pull_request_alias.pull_request_id) \ | |
|
476 | .join(repo_alias, | |
|
477 | repo_alias.repo_id == pull_request_alias.target_repo_id) \ | |
|
478 | .outerjoin(status_alias, | |
|
479 | and_(status_alias.user_id == reviewers_alias.user_id, | |
|
480 | status_alias.pull_request_id == reviewers_alias.pull_request_id)) \ | |
|
481 | .filter(or_(status_alias.version == null(), | |
|
482 | status_alias.version == last_ver_subq)) \ | |
|
483 | .filter(reviewers_alias.user_id == user_id) \ | |
|
484 | .filter(repo_alias.repo_name == repo_name) \ | |
|
485 | .filter(or_(status_alias.status == null(), status_alias.status.in_(for_review_statuses))) \ | |
|
486 | .group_by(pull_request_alias) | |
|
487 | ||
|
488 | # closed,opened | |
|
489 | if statuses: | |
|
490 | q = q.filter(pull_request_alias.status.in_(statuses)) | |
|
491 | ||
|
492 | if search_q: | |
|
493 | like_expression = u'%{}%'.format(safe_unicode(search_q)) | |
|
494 | q = q.join(User, User.user_id == pull_request_alias.user_id) | |
|
495 | q = q.filter(or_( | |
|
496 | cast(pull_request_alias.pull_request_id, String).ilike(like_expression), | |
|
497 | User.username.ilike(like_expression), | |
|
498 | pull_request_alias.title.ilike(like_expression), | |
|
499 | pull_request_alias.description.ilike(like_expression), | |
|
500 | )) | |
|
501 | ||
|
502 | if order_by: | |
|
503 | order_map = { | |
|
504 | 'name_raw': pull_request_alias.pull_request_id, | |
|
505 | 'title': pull_request_alias.title, | |
|
506 | 'updated_on_raw': pull_request_alias.updated_on, | |
|
507 | 'target_repo': pull_request_alias.target_repo_id | |
|
508 | } | |
|
509 | if order_dir == 'asc': | |
|
510 | q = q.order_by(order_map[order_by].asc()) | |
|
511 | else: | |
|
512 | q = q.order_by(order_map[order_by].desc()) | |
|
513 | ||
|
514 | return q | |
|
515 | ||
|
516 | def count_awaiting_my_review(self, repo_name, user_id, search_q=None, statuses=None): | |
|
461 | 517 | """ |
|
462 | 518 | Count the number of pull requests for a specific repository that are |
|
463 | 519 | awaiting review from a specific user. |
|
464 | 520 | |
|
465 | 521 | :param repo_name: target or source repo |
|
522 | :param user_id: reviewer user of the pull request | |
|
466 | 523 | :param search_q: filter by text |
|
467 | :param source: boolean flag to specify if repo_name refers to source | |
|
468 | 524 | :param statuses: list of pull request statuses |
|
469 | :param opened_by: author user of the pull request | |
|
470 | :param user_id: reviewer user of the pull request | |
|
471 | 525 | :returns: int number of pull requests |
|
472 | 526 | """ |
|
473 |
|
|
|
474 |
repo_name, search_q=search_q, |
|
|
475 | opened_by=opened_by, user_id=user_id) | |
|
527 | q = self._prepare_awaiting_my_review_review_query( | |
|
528 | repo_name, user_id, search_q=search_q, statuses=statuses) | |
|
529 | return q.count() | |
|
476 | 530 | |
|
477 | return len(pull_requests) | |
|
478 | ||
|
479 | def get_awaiting_my_review(self, repo_name, search_q=None, source=False, statuses=None, | |
|
480 | opened_by=None, user_id=None, offset=0, | |
|
481 | length=None, order_by=None, order_dir='desc'): | |
|
531 | def get_awaiting_my_review(self, repo_name, user_id, search_q=None, statuses=None, | |
|
532 | offset=0, length=None, order_by=None, order_dir='desc'): | |
|
482 | 533 | """ |
|
483 | 534 | Get all pull requests for a specific repository that are awaiting |
|
484 | 535 | review from a specific user. |
|
485 | 536 | |
|
486 | 537 | :param repo_name: target or source repo |
|
538 | :param user_id: reviewer user of the pull request | |
|
487 | 539 | :param search_q: filter by text |
|
488 | :param source: boolean flag to specify if repo_name refers to source | |
|
489 | 540 | :param statuses: list of pull request statuses |
|
490 | :param opened_by: author user of the pull request | |
|
491 | :param user_id: reviewer user of the pull request | |
|
492 | 541 | :param offset: pagination offset |
|
493 | 542 | :param length: length of returned list |
|
494 | 543 | :param order_by: order of the returned list |
|
495 | 544 | :param order_dir: 'asc' or 'desc' ordering direction |
|
496 | 545 | :returns: list of pull requests |
|
497 | 546 | """ |
|
498 | pull_requests = self.get_all( | |
|
499 | repo_name, search_q=search_q, source=source, statuses=statuses, | |
|
500 | opened_by=opened_by, order_by=order_by, order_dir=order_dir) | |
|
501 | 547 | |
|
502 | _my = PullRequestModel().get_not_reviewed(user_id) | |
|
503 | my_participation = [] | |
|
504 | for pr in pull_requests: | |
|
505 | if pr in _my: | |
|
506 | my_participation.append(pr) | |
|
507 | _filtered_pull_requests = my_participation | |
|
548 | q = self._prepare_awaiting_my_review_review_query( | |
|
549 | repo_name, user_id, search_q=search_q, statuses=statuses, | |
|
550 | order_by=order_by, order_dir=order_dir) | |
|
551 | ||
|
508 | 552 | if length: |
|
509 | return _filtered_pull_requests[offset:offset+length] | |
|
553 | pull_requests = q.limit(length).offset(offset).all() | |
|
510 | 554 | else: |
|
511 |
|
|
|
555 | pull_requests = q.all() | |
|
556 | ||
|
557 | return pull_requests | |
|
512 | 558 | |
|
513 | def get_not_reviewed(self, user_id): | |
|
514 | return [ | |
|
515 | x.pull_request for x in PullRequestReviewers.query().filter( | |
|
516 | PullRequestReviewers.user_id == user_id).all() | |
|
517 |
|
|
|
518 | ||
|
519 | def _prepare_participating_query(self, user_id=None, statuses=None, query='', | |
|
520 | order_by=None, order_dir='desc'): | |
|
559 | def _prepare_im_participating_query(self, user_id=None, statuses=None, query='', | |
|
560 | order_by=None, order_dir='desc'): | |
|
561 | """ | |
|
562 | return a query of pull-requests user is an creator, or he's added as a reviewer | |
|
563 | """ | |
|
521 | 564 | q = PullRequest.query() |
|
522 | 565 | if user_id: |
|
523 | 566 | reviewers_subquery = Session().query( |
@@ -535,7 +578,7 b' class PullRequestModel(BaseModel):' | |||
|
535 | 578 | |
|
536 | 579 | if query: |
|
537 | 580 | like_expression = u'%{}%'.format(safe_unicode(query)) |
|
538 | q = q.join(User) | |
|
581 | q = q.join(User, User.user_id == PullRequest.user_id) | |
|
539 | 582 | q = q.filter(or_( |
|
540 | 583 | cast(PullRequest.pull_request_id, String).ilike(like_expression), |
|
541 | 584 | User.username.ilike(like_expression), |
@@ -557,17 +600,97 b' class PullRequestModel(BaseModel):' | |||
|
557 | 600 | return q |
|
558 | 601 | |
|
559 | 602 | def count_im_participating_in(self, user_id=None, statuses=None, query=''): |
|
560 | q = self._prepare_participating_query(user_id, statuses=statuses, query=query) | |
|
603 | q = self._prepare_im_participating_query(user_id, statuses=statuses, query=query) | |
|
561 | 604 | return q.count() |
|
562 | 605 | |
|
563 | 606 | def get_im_participating_in( |
|
564 | 607 | self, user_id=None, statuses=None, query='', offset=0, |
|
565 | 608 | length=None, order_by=None, order_dir='desc'): |
|
566 | 609 | """ |
|
567 | Get all Pull requests that i'm participating in, or i have opened | |
|
610 | Get all Pull requests that i'm participating in as a reviewer, or i have opened | |
|
568 | 611 | """ |
|
569 | 612 | |
|
570 | q = self._prepare_participating_query( | |
|
613 | q = self._prepare_im_participating_query( | |
|
614 | user_id, statuses=statuses, query=query, order_by=order_by, | |
|
615 | order_dir=order_dir) | |
|
616 | ||
|
617 | if length: | |
|
618 | pull_requests = q.limit(length).offset(offset).all() | |
|
619 | else: | |
|
620 | pull_requests = q.all() | |
|
621 | ||
|
622 | return pull_requests | |
|
623 | ||
|
624 | def _prepare_participating_in_for_review_query( | |
|
625 | self, user_id, statuses=None, query='', order_by=None, order_dir='desc'): | |
|
626 | ||
|
627 | for_review_statuses = [ | |
|
628 | ChangesetStatus.STATUS_UNDER_REVIEW, ChangesetStatus.STATUS_NOT_REVIEWED | |
|
629 | ] | |
|
630 | ||
|
631 | pull_request_alias = aliased(PullRequest) | |
|
632 | status_alias = aliased(ChangesetStatus) | |
|
633 | reviewers_alias = aliased(PullRequestReviewers) | |
|
634 | ||
|
635 | last_ver_subq = Session()\ | |
|
636 | .query(func.min(ChangesetStatus.version)) \ | |
|
637 | .filter(ChangesetStatus.pull_request_id == reviewers_alias.pull_request_id)\ | |
|
638 | .filter(ChangesetStatus.user_id == reviewers_alias.user_id) \ | |
|
639 | .subquery() | |
|
640 | ||
|
641 | q = Session().query(pull_request_alias) \ | |
|
642 | .options(lazyload(pull_request_alias.author)) \ | |
|
643 | .join(reviewers_alias, | |
|
644 | reviewers_alias.pull_request_id == pull_request_alias.pull_request_id) \ | |
|
645 | .outerjoin(status_alias, | |
|
646 | and_(status_alias.user_id == reviewers_alias.user_id, | |
|
647 | status_alias.pull_request_id == reviewers_alias.pull_request_id)) \ | |
|
648 | .filter(or_(status_alias.version == null(), | |
|
649 | status_alias.version == last_ver_subq)) \ | |
|
650 | .filter(reviewers_alias.user_id == user_id) \ | |
|
651 | .filter(or_(status_alias.status == null(), status_alias.status.in_(for_review_statuses))) \ | |
|
652 | .group_by(pull_request_alias) | |
|
653 | ||
|
654 | # closed,opened | |
|
655 | if statuses: | |
|
656 | q = q.filter(pull_request_alias.status.in_(statuses)) | |
|
657 | ||
|
658 | if query: | |
|
659 | like_expression = u'%{}%'.format(safe_unicode(query)) | |
|
660 | q = q.join(User, User.user_id == pull_request_alias.user_id) | |
|
661 | q = q.filter(or_( | |
|
662 | cast(pull_request_alias.pull_request_id, String).ilike(like_expression), | |
|
663 | User.username.ilike(like_expression), | |
|
664 | pull_request_alias.title.ilike(like_expression), | |
|
665 | pull_request_alias.description.ilike(like_expression), | |
|
666 | )) | |
|
667 | ||
|
668 | if order_by: | |
|
669 | order_map = { | |
|
670 | 'name_raw': pull_request_alias.pull_request_id, | |
|
671 | 'title': pull_request_alias.title, | |
|
672 | 'updated_on_raw': pull_request_alias.updated_on, | |
|
673 | 'target_repo': pull_request_alias.target_repo_id | |
|
674 | } | |
|
675 | if order_dir == 'asc': | |
|
676 | q = q.order_by(order_map[order_by].asc()) | |
|
677 | else: | |
|
678 | q = q.order_by(order_map[order_by].desc()) | |
|
679 | ||
|
680 | return q | |
|
681 | ||
|
682 | def count_im_participating_in_for_review(self, user_id, statuses=None, query=''): | |
|
683 | q = self._prepare_participating_in_for_review_query(user_id, statuses=statuses, query=query) | |
|
684 | return q.count() | |
|
685 | ||
|
686 | def get_im_participating_in_for_review( | |
|
687 | self, user_id, statuses=None, query='', offset=0, | |
|
688 | length=None, order_by=None, order_dir='desc'): | |
|
689 | """ | |
|
690 | Get all Pull requests that needs user approval or rejection | |
|
691 | """ | |
|
692 | ||
|
693 | q = self._prepare_participating_in_for_review_query( | |
|
571 | 694 | user_id, statuses=statuses, query=query, order_by=order_by, |
|
572 | 695 | order_dir=order_dir) |
|
573 | 696 |
@@ -618,13 +618,13 b' input[type="reset"] {' | |||
|
618 | 618 | text-align: right; |
|
619 | 619 | |
|
620 | 620 | li { |
|
621 | ||
|
622 | ||
|
621 | list-style: none; | |
|
622 | text-align: right; | |
|
623 | display: inline-block; | |
|
623 | 624 | } |
|
624 | 625 | |
|
625 |
|
|
|
626 | background-color: @grey6; | |
|
627 | .border ( @border-thickness, @grey4 ); | |
|
626 | a.active { | |
|
627 | border: 2px solid @rcblue; | |
|
628 | 628 | } |
|
629 | 629 | |
|
630 | 630 | } |
@@ -44,7 +44,7 b'' | |||
|
44 | 44 | padding: @panel-padding; |
|
45 | 45 | |
|
46 | 46 | &.panel-body-min-height { |
|
47 |
min-height: |
|
|
47 | min-height: 200px | |
|
48 | 48 | } |
|
49 | 49 | } |
|
50 | 50 |
@@ -791,6 +791,11 b' var CommentsController = function() {' | |||
|
791 | 791 | refreshDraftComments() |
|
792 | 792 | } |
|
793 | 793 | |
|
794 | if (window.refreshAllComments !== undefined) { | |
|
795 | // if we have this handler, run it, and refresh all comments boxes | |
|
796 | refreshAllComments() | |
|
797 | } | |
|
798 | ||
|
794 | 799 | return false; |
|
795 | 800 | }; |
|
796 | 801 |
@@ -27,13 +27,13 b'' | |||
|
27 | 27 | |
|
28 | 28 | <ul class="button-links"> |
|
29 | 29 | % if c.is_super_admin: |
|
30 |
<li class="btn ${h.is_active('all', c.active)}" |
|
|
30 | <li><a class="btn ${h.is_active('all', c.active)}" href="${h.route_path('gists_show', _query={'all': 1})}">${_('All gists')}</a></li> | |
|
31 | 31 | %endif |
|
32 |
<li class="btn ${h.is_active('public', c.active)}" |
|
|
32 | <li><a class="btn ${h.is_active('public', c.active)}" href="${h.route_path('gists_show')}">${_('All public')}</a></li> | |
|
33 | 33 | %if c.rhodecode_user.username != h.DEFAULT_USER: |
|
34 |
<li class="btn ${h.is_active('my_all', c.active)}" |
|
|
35 |
<li class="btn ${h.is_active('my_private', c.active)}" |
|
|
36 |
<li class="btn ${h.is_active('my_public', c.active)}" |
|
|
34 | <li><a class="btn ${h.is_active('my_all', c.active)}" href="${h.route_path('gists_show', _query={'public':1, 'private': 1})}">${_('My gists')}</a></li> | |
|
35 | <li><a class="btn ${h.is_active('my_private', c.active)}" href="${h.route_path('gists_show', _query={'private': 1})}">${_('My private')}</a></li> | |
|
36 | <li><a class="btn ${h.is_active('my_public', c.active)}" href="${h.route_path('gists_show', _query={'public': 1})}">${_('My public')}</a></li> | |
|
37 | 37 | %endif |
|
38 | 38 | </ul> |
|
39 | 39 |
@@ -65,11 +65,11 b'' | |||
|
65 | 65 | <fieldset> |
|
66 | 66 | <div class="gist-type-fields-wrapper"> |
|
67 | 67 | |
|
68 | <input type="radio" id="private_gist" checked="" name="gist_type" value="private"> | |
|
68 | <input type="radio" id="private_gist" checked="" name="gist_type" value="private" onchange="setGistId('private')"> | |
|
69 | 69 | <label for="private_gist">${_('Private Gist')}</label> |
|
70 | 70 | <span class="tooltip label" title="${_('Private Gists are not listed and only accessible through their secret url.')}">${_('Private Gist')}</span> |
|
71 | 71 | |
|
72 | <input type="radio" id="public_gist" name="gist_type" value="public"> | |
|
72 | <input type="radio" id="public_gist" name="gist_type" value="public" onchange="setGistId('public')"> | |
|
73 | 73 | <label for="public_gist">${_('Public Gist')}</label> |
|
74 | 74 | <span class="tooltip label" title="${_('Public Gists are accessible to anyone and listed in Gists page.')}">${_('Public Gist')}</span> |
|
75 | 75 | </div> |
@@ -99,5 +99,14 b'' | |||
|
99 | 99 | setCodeMirrorModeFromInput( |
|
100 | 100 | modes_select, filename_selector, myCodeMirror, null); |
|
101 | 101 | |
|
102 | setGistId = function(gistType) { | |
|
103 | if (gistType === 'private') { | |
|
104 | $('#gistid').removeAttr('disabled'); | |
|
105 | } | |
|
106 | else { | |
|
107 | $('#gistid').val(''); | |
|
108 | $('#gistid').attr('disabled', 'disabled') | |
|
109 | } | |
|
110 | } | |
|
102 | 111 | </script> |
|
103 | 112 | </%def> |
@@ -26,50 +26,41 b'' | |||
|
26 | 26 | </div> |
|
27 | 27 | </div> |
|
28 | 28 | </div> |
|
29 | <p class="help-block help-block-inline" > | |
|
30 | ${_('Server URL is available as ${server_url} variable. E.g. Redirect url: ${server_url}/_admin/exception_tracker')} | |
|
31 | </p> | |
|
32 | 29 | |
|
33 | <div class="label"> | |
|
30 | <div class="label" style="margin-top:10px"> | |
|
34 | 31 | <label for="redirect_url">${_('Redirect URL')}:</label> |
|
35 | 32 | </div> |
|
36 | 33 | <div class="input"> |
|
37 | 34 | <input type="text" name="redirect_url" value="${redirect_url}" style="width: 600px"/> |
|
38 | 35 | </div> |
|
39 | ||
|
36 | <p class="help-block help-block-inline"> | |
|
37 | ${_('Server URL is available as ${server_url} variable. E.g. Redirect url: ${server_url}/_admin/exception_tracker')} | |
|
38 | </p> | |
|
40 | 39 | |
|
41 | <div class="select"> | |
|
40 | <div class="select" style="margin-top:5px"> | |
|
41 | <div class="label"> | |
|
42 | <label for="redirect_url">${_('Templates')}:</label> | |
|
43 | </div> | |
|
44 | ||
|
42 | 45 |
|
|
43 | <div class="label"> | |
|
44 | <label for="redirect_url">${_('Repository template')}:</label> | |
|
45 | </div> | |
|
46 | 46 | ${dt.repo_name(name=repo.repo_name, rtype=repo.repo_type,rstate=None,private=None,archived=False,fork_of=False)} |
|
47 | 47 | ${h.hidden('bookmark_repo', repo.repo_id)} |
|
48 | 48 | % elif repo_group: |
|
49 | <div class="label"> | |
|
50 | <label for="redirect_url">${_('Repository group template')}:</label> | |
|
51 | </div> | |
|
52 | 49 | ${dt.repo_group_name(repo_group.group_name)} |
|
53 | 50 | ${h.hidden('bookmark_repo_group', repo_group.group_id)} |
|
54 | 51 | % else: |
|
55 |
<div |
|
|
56 | <label for="redirect_url">${_('Template Repository or Repository group')}:</label> | |
|
52 | <div> | |
|
53 | ${h.hidden('bookmark_repo', class_='bookmark_repo')} | |
|
54 | <p class="help-block help-block-inline">${_('Available as ${repo_url} e.g. Redirect url: ${repo_url}/changelog')}</p> | |
|
57 | 55 | </div> |
|
58 | ${h.hidden('bookmark_repo', class_='bookmark_repo')} | |
|
59 | <span style="padding-right:15px">OR</span> | |
|
60 | ${h.hidden('bookmark_repo_group', class_='bookmark_repo_group')} | |
|
56 | <div style="margin-top:5px"> | |
|
57 | ${h.hidden('bookmark_repo_group', class_='bookmark_repo_group')} | |
|
58 | <p class="help-block help-block-inline">${_('Available as ${repo_group_url} e.g. Redirect url: ${repo_group_url}')}</p> | |
|
59 | </div> | |
|
60 | ||
|
61 | 61 | % endif |
|
62 | 62 | </div> |
|
63 | 63 | |
|
64 | <p class="help-block help-block-inline" > | |
|
65 | % if repo: | |
|
66 | ${_('Available as ${repo_url} e.g. Redirect url: ${repo_url}/changelog')} | |
|
67 | % elif repo_group: | |
|
68 | ${_('Available as ${repo_group_url} e.g. Redirect url: ${repo_group_url}')} | |
|
69 | % else: | |
|
70 | ${_('Available as full url variables in redirect url. i.e: ${repo_url}, ${repo_group_url}.')} | |
|
71 | % endif | |
|
72 | </p> | |
|
73 | 64 | </td> |
|
74 | 65 | |
|
75 | 66 | </tr> |
@@ -1,17 +1,29 b'' | |||
|
1 | 1 | <%namespace name="base" file="/base/base.mako"/> |
|
2 | 2 | |
|
3 | 3 | <div class="panel panel-default"> |
|
4 |
<div class="panel- |
|
|
5 | <div style="height: 35px"> | |
|
6 | <% | |
|
7 | selected_filter = 'all' | |
|
8 | if c.closed: | |
|
9 | selected_filter = 'all_closed' | |
|
10 | %> | |
|
4 | <div class="panel-heading"> | |
|
5 | <h3 class="panel-title">${_('Pull Requests You Participate In')}</h3> | |
|
6 | </div> | |
|
11 | 7 | |
|
8 | <div class="panel-body panel-body-min-height"> | |
|
9 | <div class="title"> | |
|
12 | 10 | <ul class="button-links"> |
|
13 |
<li class="btn ${h.is_active('all', selected_filter)}" |
|
|
14 | <li class="btn ${h.is_active('all_closed', selected_filter)}"><a href="${h.route_path('my_account_pullrequests', _query={'pr_show_closed':1})}">${_('All + Closed')}</a></li> | |
|
11 | <li><a class="btn ${h.is_active('all', c.selected_filter)}" | |
|
12 | href="${h.route_path('my_account_pullrequests', _query={})}"> | |
|
13 | ${_('Open')} | |
|
14 | </a> | |
|
15 | </li> | |
|
16 | <li><a class="btn ${h.is_active('all_closed', c.selected_filter)}" | |
|
17 | href="${h.route_path('my_account_pullrequests', _query={'closed':1})}"> | |
|
18 | ${_('All + Closed')} | |
|
19 | </a> | |
|
20 | </li> | |
|
21 | <li><a class="btn ${h.is_active('awaiting_my_review', c.selected_filter)}" | |
|
22 | href="${h.route_path('my_account_pullrequests', _query={'awaiting_my_review':1})}"> | |
|
23 | ||
|
24 | ${_('Awaiting my review')} | |
|
25 | </a> | |
|
26 | </li> | |
|
15 | 27 | </ul> |
|
16 | 28 | |
|
17 | 29 | <div class="grid-quick-filter"> |
@@ -20,19 +32,13 b'' | |||
|
20 | 32 | <i class="icon-search"></i> |
|
21 | 33 | </li> |
|
22 | 34 | <li class="grid-filter-box-input"> |
|
23 |
<input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" |
|
|
35 | <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" | |
|
36 | placeholder="${_('quick filter...')}" value=""/> | |
|
24 | 37 | </li> |
|
25 | 38 | </ul> |
|
26 | 39 | </div> |
|
27 | </div> | |
|
28 | </div> | |
|
29 | </div> | |
|
40 | </div> | |
|
30 | 41 | |
|
31 | <div class="panel panel-default"> | |
|
32 | <div class="panel-heading"> | |
|
33 | <h3 class="panel-title">${_('Pull Requests You Participate In')}</h3> | |
|
34 | </div> | |
|
35 | <div class="panel-body panel-body-min-height"> | |
|
36 | 42 | <table id="pull_request_list_table" class="rctable table-bordered"></table> |
|
37 | 43 | </div> |
|
38 | 44 | </div> |
@@ -52,6 +58,7 b'' | |||
|
52 | 58 | "url": "${h.route_path('my_account_pullrequests_data')}", |
|
53 | 59 | "data": function (d) { |
|
54 | 60 | d.closed = "${c.closed}"; |
|
61 | d.awaiting_my_review = "${c.awaiting_my_review}"; | |
|
55 | 62 | }, |
|
56 | 63 | "dataSrc": function (json) { |
|
57 | 64 | return json.data; |
@@ -60,13 +67,19 b'' | |||
|
60 | 67 | |
|
61 | 68 | dom: 'rtp', |
|
62 | 69 | pageLength: ${c.visual.dashboard_items}, |
|
63 |
order: [[ |
|
|
70 | order: [[2, "desc"]], | |
|
64 | 71 | columns: [ |
|
65 | 72 | { |
|
66 | 73 | data: { |
|
67 | 74 | "_": "status", |
|
68 | 75 | "sort": "status" |
|
69 | }, title: "", className: "td-status", orderable: false | |
|
76 | }, title: "PR", className: "td-status", orderable: false | |
|
77 | }, | |
|
78 | { | |
|
79 | data: { | |
|
80 | "_": "my_status", | |
|
81 | "sort": "status" | |
|
82 | }, title: "You", className: "td-status", orderable: false | |
|
70 | 83 | }, |
|
71 | 84 | { |
|
72 | 85 | data: { |
@@ -171,7 +171,7 b'' | |||
|
171 | 171 | This repository is already archived. Only super-admin users can un-archive this repository. |
|
172 | 172 | % else: |
|
173 | 173 | <button class="btn btn-small btn-warning" type="submit" |
|
174 | onclick="submitConfirm(event, this, _gettext('Confirm to archive this repository'), _gettext('Archive'), '${c.rhodecode_db_repo.repo_name}')" | |
|
174 | onclick="submitConfirm(event, this, _gettext('Confirm to archive this repository. <br/>This action is irreversible !'), _gettext('Archive'), '${c.rhodecode_db_repo.repo_name}')" | |
|
175 | 175 | > |
|
176 | 176 | ${_('Archive this repository')} |
|
177 | 177 | </button> |
@@ -180,6 +180,9 b'' | |||
|
180 | 180 | </div> |
|
181 | 181 | <div class="field"> |
|
182 | 182 | <span class="help-block"> |
|
183 | <strong> | |
|
184 | ${_('This action is irreversible')} ! | |
|
185 | </strong><br/> | |
|
183 | 186 | ${_('Archiving the repository will make it entirely read-only. The repository cannot be committed to.' |
|
184 | 187 | 'It is hidden from the search results and dashboard. ')} |
|
185 | 188 | </span> |
@@ -63,7 +63,7 b'' | |||
|
63 | 63 | </tr> |
|
64 | 64 | %endfor |
|
65 | 65 | <tr class="compare_select_hidden" style="${('' if c.collapse_all_commits else 'display: none')}"> |
|
66 |
<td colspan=" |
|
|
66 | <td colspan="7"> | |
|
67 | 67 | ${_ungettext('{} commit hidden, click expand to show them.', '{} commits hidden, click expand to show them.', len(c.commit_ranges)).format(len(c.commit_ranges))} |
|
68 | 68 | </td> |
|
69 | 69 | </tr> |
@@ -171,9 +171,9 b' data = {' | |||
|
171 | 171 | <tr> |
|
172 | 172 | <td style="padding-right:20px;line-height:20px;">${_('Commit Flow')}:</td> |
|
173 | 173 | <td style="line-height:20px;"> |
|
174 |
<code>${' |
|
|
174 | <code>${data['source_ref_type']}:${pull_request.source_ref_parts.name}</code> ${_('of')} ${data['source_repo_url']} | |
|
175 | 175 | → |
|
176 |
<code>${' |
|
|
176 | <code>${data['target_ref_type']}:${pull_request.target_ref_parts.name}</code> ${_('of')} ${data['target_repo_url']} | |
|
177 | 177 | </td> |
|
178 | 178 | </tr> |
|
179 | 179 |
@@ -124,9 +124,9 b' data = {' | |||
|
124 | 124 | <tr> |
|
125 | 125 | <td style="padding-right:20px;line-height:20px;">${_('Commit Flow')}:</td> |
|
126 | 126 | <td style="line-height:20px;"> |
|
127 |
<code>${' |
|
|
127 | <code>${data['source_ref_type']}:${pull_request.source_ref_parts.name}</code> ${_('of')} ${data['source_repo_url']} | |
|
128 | 128 | → |
|
129 |
<code>${' |
|
|
129 | <code>${data['target_ref_type']}:${pull_request.target_ref_parts.name}</code> ${_('of')} ${data['target_repo_url']} | |
|
130 | 130 | </td> |
|
131 | 131 | </tr> |
|
132 | 132 |
@@ -129,9 +129,9 b' data = {' | |||
|
129 | 129 | <tr> |
|
130 | 130 | <td style="padding-right:20px;line-height:20px;">${_('Commit Flow')}:</td> |
|
131 | 131 | <td style="line-height:20px;"> |
|
132 |
<code>${' |
|
|
132 | <code>${data['source_ref_type']}:${pull_request.source_ref_parts.name}</code> ${_('of')} ${data['source_repo_url']} | |
|
133 | 133 | → |
|
134 |
<code>${' |
|
|
134 | <code>${data['target_ref_type']}:${pull_request.target_ref_parts.name}</code> ${_('of')} ${data['target_repo_url']} | |
|
135 | 135 | </td> |
|
136 | 136 | </tr> |
|
137 | 137 |
@@ -143,9 +143,9 b'' | |||
|
143 | 143 | ## pull url |
|
144 | 144 | <li> |
|
145 | 145 | %if h.is_hg(c.pull_request.source_repo): |
|
146 | <% clone_url = 'hg pull -r {} {}'.format(h.short_id(c.source_ref), c.pull_request.source_repo.clone_url()) %> | |
|
146 | <% clone_url = u'hg pull -r {} {}'.format(h.short_id(c.source_ref), c.pull_request.source_repo.clone_url()) %> | |
|
147 | 147 | %elif h.is_git(c.pull_request.source_repo): |
|
148 | <% clone_url = 'git pull {} {}'.format(c.pull_request.source_repo.clone_url(), c.pull_request.source_ref_parts.name) %> | |
|
148 | <% clone_url = u'git pull {} {}'.format(c.pull_request.source_repo.clone_url(), c.pull_request.source_ref_parts.name) %> | |
|
149 | 149 | %endif |
|
150 | 150 | |
|
151 | 151 | <span>${_('Pull changes from source')}</span>: <input type="text" class="input-monospace pr-pullinfo" value="${clone_url}" readonly="readonly"> |
@@ -560,7 +560,7 b'' | |||
|
560 | 560 | |
|
561 | 561 | <div class="right-sidebar-expanded-state pr-details-title"> |
|
562 | 562 | <span style="padding-left: 2px"> |
|
563 |
<input name="select_all_drafts" type="checkbox" onclick=" |
|
|
563 | <input name="select_all_drafts" type="checkbox" onclick="selectDraftComments(event)"> | |
|
564 | 564 | </span> |
|
565 | 565 | <span class="sidebar-heading noselect" onclick="refreshDraftComments(); return false"> |
|
566 | 566 | <i class="icon-comment icon-draft"></i> |
@@ -942,6 +942,11 b' window.setObserversData = ${c.pull_reque' | |||
|
942 | 942 | } |
|
943 | 943 | } |
|
944 | 944 | |
|
945 | window.selectDraftComments = function (event) { | |
|
946 | var $target = $(event.currentTarget); | |
|
947 | $('[name=submit_draft]').prop('checked', $target.prop('checked')) | |
|
948 | } | |
|
949 | ||
|
945 | 950 | window.closePullRequest = function (status) { |
|
946 | 951 | if (!confirm(_gettext('Are you sure to close this pull request without merging?'))) { |
|
947 | 952 | return false; |
@@ -23,13 +23,14 b'' | |||
|
23 | 23 | |
|
24 | 24 | <div class="box"> |
|
25 | 25 | <div class="title"> |
|
26 | ||
|
26 | 27 | <ul class="button-links"> |
|
27 |
<li class="btn ${h.is_active('open', c.active)}" |
|
|
28 |
<li class="btn ${h.is_active('my', c.active)}" |
|
|
29 |
<li class="btn ${h.is_active('awaiting', c.active)}" |
|
|
30 |
<li class="btn ${h.is_active('awaiting_my', c.active)}" |
|
|
31 |
<li class="btn ${h.is_active('closed', c.active)}" |
|
|
32 |
<li class="btn ${h.is_active('source', c.active)}" |
|
|
28 | <li><a class="btn ${h.is_active('open', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'open':1})}">${_('Open')}</a></li> | |
|
29 | <li><a class="btn ${h.is_active('my', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'my':1})}">${_('Created by me')}</a></li> | |
|
30 | <li><a class="btn ${h.is_active('awaiting', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_review':1})}">${_('Awaiting review')}</a></li> | |
|
31 | <li><a class="btn ${h.is_active('awaiting_my', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_my_review':1})}">${_('Awaiting my review')}</a></li> | |
|
32 | <li><a class="btn ${h.is_active('closed', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'closed':1})}">${_('Closed')}</a></li> | |
|
33 | <li><a class="btn ${h.is_active('source', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':1})}">${_('From this repo')}</a></li> | |
|
33 | 34 | </ul> |
|
34 | 35 | |
|
35 | 36 | <ul class="links"> |
@@ -88,20 +89,50 b'' | |||
|
88 | 89 | }, |
|
89 | 90 | dom: 'rtp', |
|
90 | 91 | pageLength: ${c.visual.dashboard_items}, |
|
91 |
order: [[ |
|
|
92 | order: [[ 2, "desc" ]], | |
|
92 | 93 | columns: [ |
|
93 | { data: {"_": "status", | |
|
94 | "sort": "status"}, title: "", className: "td-status", orderable: false}, | |
|
95 |
|
|
|
96 | "sort": "name_raw"}, title: "${_('Id')}", className: "td-componentname", "type": "num" }, | |
|
97 | { data: {"_": "title", | |
|
98 | "sort": "title"}, title: "${_('Title')}", className: "td-description" }, | |
|
99 | { data: {"_": "author", | |
|
100 | "sort": "author_raw"}, title: "${_('Author')}", className: "td-user", orderable: false }, | |
|
101 |
|
|
|
102 | "sort": "comments_raw"}, title: "", className: "td-comments", orderable: false}, | |
|
103 | { data: {"_": "updated_on", | |
|
104 | "sort": "updated_on_raw"}, title: "${_('Last Update')}", className: "td-time" } | |
|
94 | { | |
|
95 | data: { | |
|
96 | "_": "status", | |
|
97 | "sort": "status" | |
|
98 | }, title: "PR", className: "td-status", orderable: false | |
|
99 | }, | |
|
100 | { | |
|
101 | data: { | |
|
102 | "_": "my_status", | |
|
103 | "sort": "status" | |
|
104 | }, title: "You", className: "td-status", orderable: false | |
|
105 | }, | |
|
106 | { | |
|
107 | data: { | |
|
108 | "_": "name", | |
|
109 | "sort": "name_raw" | |
|
110 | }, title: "${_('Id')}", className: "td-componentname", "type": "num" | |
|
111 | }, | |
|
112 | { | |
|
113 | data: { | |
|
114 | "_": "title", | |
|
115 | "sort": "title" | |
|
116 | }, title: "${_('Title')}", className: "td-description" | |
|
117 | }, | |
|
118 | { | |
|
119 | data: { | |
|
120 | "_": "author", | |
|
121 | "sort": "author_raw" | |
|
122 | }, title: "${_('Author')}", className: "td-user", orderable: false | |
|
123 | }, | |
|
124 | { | |
|
125 | data: { | |
|
126 | "_": "comments", | |
|
127 | "sort": "comments_raw" | |
|
128 | }, title: "", className: "td-comments", orderable: false | |
|
129 | }, | |
|
130 | { | |
|
131 | data: { | |
|
132 | "_": "updated_on", | |
|
133 | "sort": "updated_on_raw" | |
|
134 | }, title: "${_('Last Update')}", className: "td-time" | |
|
135 | } | |
|
105 | 136 | ], |
|
106 | 137 | language: { |
|
107 | 138 | paginate: DEFAULT_GRID_PAGINATION, |
@@ -111,9 +111,10 b'' | |||
|
111 | 111 | </div> |
|
112 | 112 | %else: |
|
113 | 113 |
|
|
114 | %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name): | |
|
114 | ||
|
115 | 115 | <div class="quick_start"> |
|
116 | 116 | <div class="fieldset"> |
|
117 | %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name): | |
|
117 | 118 | <p><b>${_('Add or upload files directly via RhodeCode:')}</b></p> |
|
118 | 119 | <div class="pull-left"> |
|
119 | 120 | <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='')}" class="btn btn-default">${_('Add New File')}</a> |
@@ -124,6 +125,7 b'' | |||
|
124 | 125 | %endif |
|
125 | 126 | </div> |
|
126 | 127 | |
|
128 | ||
|
127 | 129 | <div class="fieldset"> |
|
128 | 130 | <p><b>${_('Push new repo:')}</b></p> |
|
129 | 131 | <pre> |
General Comments 1
You need to be logged in to leave comments.
Login now