Commit fb7ddece50f690b437b2a22474003dcdc8d3695d
1 parent
b853d6c3
Exists in
master
and in
21 other branches
[publish] Fixes last cucumber tests
Now all tests pass.
A couple aditional changes:
- Replacing flash notice for session notice;
- Cancel a task if it fails. A task can fail for many reasons,
including for validation, so I thought it would make sense to cancel
a task to publish an article if it fails. For example if the title
is too big validation will fail, the task will fail and the user
will get a message saying publish request couldn't be sent, so
naturally the user will try to publish again, hopefully this time
succeding.
Showing
1 changed file
with
9 additions
and
3 deletions
Show diff stats
app/controllers/my_profile/cms_controller.rb
| ... | ... | @@ -274,6 +274,7 @@ class CmsController < MyProfileController |
| 274 | 274 | task.finish |
| 275 | 275 | rescue Exception => ex |
| 276 | 276 | @failed[ex.message] ? @failed[ex.message] << @article.name : @failed[ex.message] = [@article.name] |
| 277 | + task.cancel | |
| 277 | 278 | end |
| 278 | 279 | if @failed.blank? |
| 279 | 280 | session[:notice] = _("Your publish request was sent successfully") |
| ... | ... | @@ -304,6 +305,7 @@ class CmsController < MyProfileController |
| 304 | 305 | task.finish unless item.moderated_articles? |
| 305 | 306 | rescue Exception => ex |
| 306 | 307 | @failed[ex.message] ? @failed[ex.message] << item.name : @failed[ex.message] = [item.name] |
| 308 | + task.cancel | |
| 307 | 309 | end |
| 308 | 310 | end |
| 309 | 311 | if @failed.blank? |
| ... | ... | @@ -313,6 +315,9 @@ class CmsController < MyProfileController |
| 313 | 315 | else |
| 314 | 316 | redirect_to @article.view_url |
| 315 | 317 | end |
| 318 | + else | |
| 319 | + session[:notice] = _("Some of your publish requests couldn't be sent.") | |
| 320 | + render :action => 'publish' | |
| 316 | 321 | end |
| 317 | 322 | end |
| 318 | 323 | end |
| ... | ... | @@ -324,12 +329,13 @@ class CmsController < MyProfileController |
| 324 | 329 | task = ApproveArticle.create!(:article => @article, :name => params[:name], :target => environment.portal_community, :requestor => user) |
| 325 | 330 | begin |
| 326 | 331 | task.finish unless environment.portal_community.moderated_articles? |
| 327 | - flash[:notice] = _("Your publish request was sent successfully") | |
| 332 | + session[:notice] = _("Your publish request was sent successfully") | |
| 328 | 333 | rescue |
| 329 | - flash[:error] = _("Your publish request couldn't be sent.") | |
| 334 | + session[:notice] = _("Your publish request couldn't be sent.") | |
| 335 | + task.cancel | |
| 330 | 336 | end |
| 331 | 337 | else |
| 332 | - flash[:notice] = _("There is no portal community to publish your article.") | |
| 338 | + session[:notice] = _("There is no portal community to publish your article.") | |
| 333 | 339 | end |
| 334 | 340 | |
| 335 | 341 | if @back_to | ... | ... |