11from flask import Blueprint , render_template , flash , redirect , url_for , request , abort , current_app
22from flask_login import login_required , current_user
3- from jobplus .forms import CompanyProfileForm
3+ from jobplus .forms import CompanyProfileForm , JobForm
44from jobplus .models import User , Job , Delivery , db
55
66company = Blueprint ('company' , __name__ , url_prefix = '/company' )
@@ -99,7 +99,7 @@ def admin_apply_reject(company_id, delivery_id):
9999 return redirect (url_for ('company.admin_apply' , company_id = company_id ))
100100
101101
102- @company .route ('/<int:company_id>/admin/apply/<int:delivery_id>/accept' )
102+ @company .route ('/<int:company_id>/admin/apply/<int:delivery_id>/accept/ ' )
103103@login_required
104104def admin_apply_accept (company_id , delivery_id ):
105105 d = Delivery .query .get_or_404 (delivery_id )
@@ -109,3 +109,46 @@ def admin_apply_accept(company_id, delivery_id):
109109 db .session .add (d )
110110 db .session .commit ()
111111 return redirect (url_for ('company.admin_apply' , company_id = company_id ))
112+
113+
114+ @company .route ('/<int:company_id>/admin/publish_job/' , methods = ['GET' , 'POST' ])
115+ @login_required
116+ def admin_publish_job (company_id ):
117+ if current_user .id != company_id :
118+ abort (404 )
119+ form = JobForm ()
120+ if form .validate_on_submit ():
121+ form .create_job (current_user )
122+ flash ('职位创建成功' , 'success' )
123+ return redirect (url_for ('company.admin_index' , company_id = current_user .id ))
124+ return render_template ('company/publish_job.html' , form = form , company_id = company_id )
125+
126+
127+ @company .route ('/<int:company_id>/admin/edit_job/<int:job_id>/' , methods = ['GET' , 'POST' ])
128+ @login_required
129+ def admin_edit_job (company_id , job_id ):
130+ if current_user .id != company_id :
131+ abort (404 )
132+ job = Job .query .get_or_404 (job_id )
133+ if job .company_id != current_user .id :
134+ abort (404 )
135+ form = JobForm (obj = job )
136+ if form .validate_on_submit ():
137+ form .update_job (job )
138+ flash ('职位更新成功' , 'success' )
139+ return redirect (url_for ('company.admin_index' , company_id = current_user .id ))
140+ return render_template ('company/edit_job.html' , form = form , company_id = company_id , job = job )
141+
142+
143+ @company .route ('/<int:company_id>/admin/jobs/<int:job_id>/delete' )
144+ @login_required
145+ def admin_delete_job (company_id , job_id ):
146+ if current_user .id != company_id :
147+ abort (404 )
148+ job = Job .query .get_or_404 (job_id )
149+ if job .company_id != current_user .id :
150+ abort (404 )
151+ db .session .delete (job )
152+ db .session .commit ()
153+ flash ('职位更新成功' , 'success' )
154+ return redirect (url_for ('company.admin_index' , company_id = current_user .id ))
0 commit comments