proposals_discussion_plugin_myprofile_controller.rb
1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class ProposalsDiscussionPluginMyprofileController < MyProfileController
before_filter :check_edit_permission_to_proposal, :only => :publish_proposal
before_filter :set_discussion, :only => [:select_topic, :new_proposal_with_topic, :new_proposal]
def select_topic
end
def new_proposal_with_topic
if params[:parent_id].blank?
session[:notice] = _('Please select a topic')
render :file => 'proposals_discussion_plugin_myprofile/select_topic'
else
new_proposal
end
end
def new_proposal
if @discussion.allow_create?(current_person)
redirect_to :controller => 'cms', :action => 'new', :type => "ProposalsDiscussionPlugin::Proposal", :parent_id => params[:parent_id]
else
render 'proposals_discussion_plugin_myprofile/suggest_proposal'
end
end
def publish_proposal
if @proposal.update_attribute(:published, true)
session[:notice] = _('Proposal published!')
else
session[:notice] = _('Failed to publish your proposal.')
end
redirect_to @proposal.topic.view_url
end
protected
def check_edit_permission_to_proposal
@proposal = profile.articles.find(params[:proposal_id])
render_access_denied unless @proposal.allow_edit?(user)
end
def set_discussion
@discussion = profile.articles.find(params[:discussion_id]) if params[:discussion_id].present?
end
end