... | ... |
@@ -202,6 +202,29 @@ sub startup { |
202 | 202 |
'left join project as __project on collaboration.project = __project.row_id', |
203 | 203 |
] |
204 | 204 |
}, |
205 |
+ { |
|
206 |
+ table => 'issue', |
|
207 |
+ join => [ |
|
208 |
+ 'left join pull_request as __pull_request on issue.pull_request = __pull_request.row_id', |
|
209 |
+ |
|
210 |
+ 'left join user as __open_user on issue.open_user = __open_user.row_id', |
|
211 |
+ 'left join project as __pull_request__base_project on __pull_request.base_project = __pull_request__base_project.row_id', |
|
212 |
+ 'left join user as __pull_request__base_project__user' |
|
213 |
+ . ' on __pull_request__base_project.user = __pull_request__base_project__user.row_id', |
|
214 |
+ 'left join project as __pull_request__target_project on __pull_request.target_project = __pull_request__target_project.row_id', |
|
215 |
+ 'left join user as __pull_request__target_project__user' |
|
216 |
+ . ' on __pull_request__target_project.user = __pull_request__target_project__user.row_id' |
|
217 |
+ |
|
218 |
+ ] |
|
219 |
+ }, |
|
220 |
+ { |
|
221 |
+ table => 'issue_message', |
|
222 |
+ primary_key => 'row_id', |
|
223 |
+ join => [ |
|
224 |
+ 'left join user as __user on issue_message.user = __user.row_id', |
|
225 |
+ 'left join issue as __issue on issue_message.issue = __issue.row_id' |
|
226 |
+ ] |
|
227 |
+ }, |
|
205 | 228 |
{ |
206 | 229 |
table => 'pull_request', |
207 | 230 |
primary_key => 'row_id', |
... | ... |
@@ -215,14 +238,6 @@ sub startup { |
215 | 238 |
. ' on __target_project.user = __target_project__user.row_id' |
216 | 239 |
] |
217 | 240 |
}, |
218 |
- { |
|
219 |
- table => 'pull_request_message', |
|
220 |
- primary_key => 'row_id', |
|
221 |
- join => [ |
|
222 |
- 'left join user as __user on pull_request_message.user = __user.row_id', |
|
223 |
- 'left join pull_request as __pull_request on pull_request_message.pull_request = __pull_request.row_id' |
|
224 |
- ] |
|
225 |
- } |
|
226 | 241 |
]; |
227 | 242 |
$dbi->create_model($_) for @$models; |
228 | 243 |
$dbi->setup_model; |
... | ... |
@@ -98,7 +98,7 @@ |
98 | 98 |
where => {id => $base_user_id} |
99 | 99 |
)->value; |
100 | 100 |
|
101 |
- my $new_pull_request_row_id; |
|
101 |
+ my $new_issue_row_id; |
|
102 | 102 |
my $session_user_row_id = $api->session_user_row_id; |
103 | 103 |
app->dbi->connector->txn(sub { |
104 | 104 |
# New pull request |
... | ... |
@@ -115,20 +115,20 @@ |
115 | 115 |
|
116 | 116 |
app->dbi->model('pull_request')->insert($new_pull_request_params); |
117 | 117 |
|
118 |
- $new_pull_request_row_id = app->dbi->model('pull_request')->select( |
|
118 |
+ $new_issue_row_id = app->dbi->model('issue')->select( |
|
119 | 119 |
'row_id', |
120 | 120 |
where => { |
121 |
- base_project => $project_row_id, |
|
122 |
- base_branch => $base_branch, |
|
123 |
- target_project => $target_project->{row_id}, |
|
124 |
- target_branch => $target_branch |
|
121 |
+ '__pull_request.base_project' => $project_row_id, |
|
122 |
+ '__pull_request.base_branch' => $base_branch, |
|
123 |
+ '__pull_request.target_project' => $target_project->{row_id}, |
|
124 |
+ '__pull_request.target_branch' => $target_branch |
|
125 | 125 |
} |
126 | 126 |
)->value; |
127 | 127 |
|
128 | 128 |
# Get pull request message number |
129 |
- my $number = app->dbi->model('pull_request_message')->select( |
|
129 |
+ my $number = app->dbi->model('issue_message')->select( |
|
130 | 130 |
'max(number)', |
131 |
- where => {pull_request => $new_pull_request_row_id}, |
|
131 |
+ where => {issue => $new_issue_row_id}, |
|
132 | 132 |
append => 'group by number' |
133 | 133 |
)->value; |
134 | 134 |
|
... | ... |
@@ -137,8 +137,8 @@ |
137 | 137 |
my $new_number = $number + 1; |
138 | 138 |
|
139 | 139 |
# New pull request message |
140 |
- my $new_pull_request_message_params = { |
|
141 |
- pull_request => $new_pull_request_row_id, |
|
140 |
+ my $new_issue_message_params = { |
|
141 |
+ issue => $new_issue_row_id, |
|
142 | 142 |
number => $new_number, |
143 | 143 |
message => $message, |
144 | 144 |
create_time => $now_epoch, |
... | ... |
@@ -146,10 +146,10 @@ |
146 | 146 |
user => $session_user_row_id |
147 | 147 |
}; |
148 | 148 |
|
149 |
- app->dbi->model('pull_request_message')->insert($new_pull_request_message_params); |
|
149 |
+ app->dbi->model('issue_message')->insert($new_issue_message_params); |
|
150 | 150 |
}); |
151 | 151 |
|
152 |
- $self->redirect_to("/$base_user_id/$base_project_id/pull/$new_pull_request_row_id"); |
|
152 |
+ $self->redirect_to("/$base_user_id/$base_project_id/pull/$new_issue_row_id"); |
|
153 | 153 |
return; |
154 | 154 |
} |
155 | 155 |
} |
... | ... |
@@ -180,7 +180,7 @@ |
180 | 180 |
my $end_commit = $git->get_commit($target_rep_info, $target_branch); |
181 | 181 |
|
182 | 182 |
# Pull request first message |
183 |
- my $pull_request_message_first = app->dbi->model('pull_request_message')->select( |
|
183 |
+ my $issue_message_first = app->dbi->model('issue_message')->select( |
|
184 | 184 |
[ |
185 | 185 |
{__MY__ => '*'}, |
186 | 186 |
{__user => ['id']} |
... | ... |
@@ -308,14 +308,14 @@ |
308 | 308 |
</ul> |
309 | 309 |
<div class="pull-comment"> |
310 | 310 |
<div class="pull-comment-header"> |
311 |
- <b><%= $pull_request_message_first->{'__open_user.id'} %></b> |
|
311 |
+ <b><%= $issue_message_first->{'__open_user.id'} %></b> |
|
312 | 312 |
<span style="color:#767676"> |
313 | 313 |
commented |
314 |
- <%= $api->age_string($pull_request_message_first->{update_time}) %> |
|
314 |
+ <%= $api->age_string($issue_message_first->{update_time}) %> |
|
315 | 315 |
</span> |
316 | 316 |
</div> |
317 | 317 |
<div class="pull-comment-body"> |
318 |
- <%= $pull_request_message_first->{message} %> |
|
318 |
+ <%= $issue_message_first->{message} %> |
|
319 | 319 |
</div> |
320 | 320 |
</div> |
321 | 321 |
|
... | ... |
@@ -13,20 +13,36 @@ |
13 | 13 |
# Git |
14 | 14 |
my $git = $self->app->git; |
15 | 15 |
|
16 |
- # Pull requests |
|
17 |
- my $pull_requests = app->dbi->model('pull_request')->select( |
|
16 |
+ # Issues which have pull request |
|
17 |
+ my $issues = app->dbi->model('issue')->select( |
|
18 | 18 |
[ |
19 | 19 |
{__MY__ => '*'}, |
20 |
- {__open_user => ['id']} |
|
20 |
+ {__open_user => ['id']}, |
|
21 |
+ {__pull_request => ['target_branch']} |
|
21 | 22 |
], |
22 |
- where => {open => $open} |
|
23 |
+ where => [ |
|
24 |
+ ['and', ':issue.open{=}', ':pull_request{<>}'], |
|
25 |
+ {'issue.open' => $open, pull_request => 0} |
|
26 |
+ ] |
|
23 | 27 |
)->all; |
24 | 28 |
|
25 | 29 |
# Open count |
26 |
- my $open_count = app->dbi->model('pull_request')->select('count(*)', where => {open => 1})->value; |
|
30 |
+ my $open_count = app->dbi->model('issue')->select( |
|
31 |
+ 'count(*)', |
|
32 |
+ where => [ |
|
33 |
+ ['and', ':issue.open{=}', ':pull_request{<>}'], |
|
34 |
+ {'issue.open' => 1, pull_request => 0} |
|
35 |
+ ] |
|
36 |
+ )->value; |
|
27 | 37 |
|
28 | 38 |
# Close count |
29 |
- my $close_count = app->dbi->model('pull_request')->select('count(*)', where => {open => 0})->value; |
|
39 |
+ my $close_count = app->dbi->model('issue')->select( |
|
40 |
+ 'count(*)', |
|
41 |
+ where => [ |
|
42 |
+ ['and', ':issue.open{=}', ':pull_request{<>}'], |
|
43 |
+ {'issue.open' => 0, pull_request => 0} |
|
44 |
+ ] |
|
45 |
+ )->value; |
|
30 | 46 |
%> |
31 | 47 |
|
32 | 48 |
% layout 'common', title => "Pull Requests Tags \x{30fb} $user_id/$project_id"; |
... | ... |
@@ -50,26 +66,26 @@ |
50 | 66 |
% } |
51 | 67 |
</div> |
52 | 68 |
<div class="pulls-body"> |
53 |
- % if (@$pull_requests) { |
|
69 |
+ % if (@$issues) { |
|
54 | 70 |
<ul> |
55 |
- % for my $pull_request (@$pull_requests) { |
|
71 |
+ % for my $issue (@$issues) { |
|
56 | 72 |
<% |
57 |
- my $target_branch = $pull_request->{target_branch}; |
|
73 |
+ my $target_branch = $issue->{'__pull_request.target_branch'}; |
|
58 | 74 |
my $commit = app->git->get_commit(app->rep_info($user_id, $project_id), $target_branch); |
59 |
- my $open_time = $pull_request->{open_time}; |
|
75 |
+ my $open_time = $issue->{open_time}; |
|
60 | 76 |
my $open_time_age = Time::Moment->now->epoch - $open_time; |
61 | 77 |
my $open_time_age_string = $self->app->git->_age_string($open_time_age); |
62 | 78 |
%> |
63 | 79 |
<li> |
64 | 80 |
<div class="pulls-title"> |
65 |
- <a href="<%= "/$user_id/$project_id/pull/$pull_request->{row_id}" %>"> |
|
66 |
- <b><%= $pull_request->{title} %></b> |
|
81 |
+ <a href="<%= "/$user_id/$project_id/pull/$issue->{row_id}" %>"> |
|
82 |
+ <b><%= $issue->{title} %></b> |
|
67 | 83 |
</a> |
68 | 84 |
</div> |
69 | 85 |
<div class="pulls-description"> |
70 |
- #<%= $pull_request->{row_id} %> <%= $pull_request->{open} ? 'opened' : 'closed' %> |
|
86 |
+ #<%= $issue->{row_id} %> <%= $issue->{open} ? 'opened' : 'closed' %> |
|
71 | 87 |
<%= $open_time_age_string %> |
72 |
- by <%= $pull_request->{'__open_user.id'} %> |
|
88 |
+ by <%= $issue->{'__open_user.id'} %> |
|
73 | 89 |
</div> |
74 | 90 |
</li> |
75 | 91 |
% } |