parent
3c295ba5a1
commit
60367415fa
@ -1 +1 @@
|
|||||||
{"access_token":"0wlw4Hi6bX0ifpmwJ9iO4tOED-8ekIYplhlPcG9vFSQLYC0iW8tPE0MBfuWWnr5SRDVoSQwAmMbeU40QeHXdK7NkBruRSVT9hhFwWef01do3OkFwMr2M3atVCGjRDY_hFUSbAFAMBZ","expires_in":7200,"got_token_at":1467531769}
|
{"access_token":"vEA6yE7AclWpSWvnRngP7PHl7t8xOexEJS73mWtpEYCCtT6otLnxGV71YQIACEChH5jTZteXhgeuqfbVNB_f0HOYyF0yZpVmiMHANI2BqFVyKqqDOppujvyzF7JHk6TMEGLfAFAHJO","expires_in":7200,"got_token_at":1467618773}
|
@ -0,0 +1,50 @@
|
|||||||
|
#coding=utf-8
|
||||||
|
|
||||||
|
module Mobile
|
||||||
|
module Apis
|
||||||
|
class Syllabuses < Grape::API
|
||||||
|
|
||||||
|
resources :syllabuses do
|
||||||
|
desc "获取大纲列表"
|
||||||
|
params do
|
||||||
|
requires :token, type: String
|
||||||
|
end
|
||||||
|
get do
|
||||||
|
authenticate!
|
||||||
|
|
||||||
|
cs = SyllabusesService.new
|
||||||
|
courses = cs.user_syllabus(current_user)
|
||||||
|
present :data, courses, with: Mobile::Entities::Syllabus
|
||||||
|
present :status, 0
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "新建大纲"
|
||||||
|
params do
|
||||||
|
requires :token, type: String
|
||||||
|
requires :title, type: String, desc: '大纲标题'
|
||||||
|
requires :courses, type: Array[String], desc: '课程名'
|
||||||
|
end
|
||||||
|
post do
|
||||||
|
authenticate!
|
||||||
|
|
||||||
|
ss = SyllabusesService.new
|
||||||
|
|
||||||
|
sy = ss.create(current_user, params[:title],
|
||||||
|
params[:courses].map{|c| {name: c} })
|
||||||
|
|
||||||
|
if sy.new_record?
|
||||||
|
{status:-1, message: '创建大纲失败' }
|
||||||
|
else
|
||||||
|
present :data, sy, with: Mobile::Entities::Syllabus
|
||||||
|
present :status, 0
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,12 @@
|
|||||||
|
module Mobile
|
||||||
|
module Entities
|
||||||
|
class Syllabus < Grape::Entity
|
||||||
|
include ApplicationHelper
|
||||||
|
|
||||||
|
expose :title
|
||||||
|
expose :id
|
||||||
|
|
||||||
|
expose :courses, using: Mobile::Entities::Course
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,59 @@
|
|||||||
|
#coding=utf-8
|
||||||
|
|
||||||
|
class SyllabusesService
|
||||||
|
|
||||||
|
include ApplicationHelper
|
||||||
|
include CoursesHelper
|
||||||
|
|
||||||
|
#获取指定用户的课程大纲
|
||||||
|
def user_syllabus(user)
|
||||||
|
courses = CoursesService.new.user_courses_list(user)
|
||||||
|
|
||||||
|
other = Syllabus.new(title: '未命名课程')
|
||||||
|
|
||||||
|
courses.each do |c|
|
||||||
|
other.courses << c[:course] unless c[:course].syllabus
|
||||||
|
end
|
||||||
|
|
||||||
|
user.syllabuses.to_a << other
|
||||||
|
end
|
||||||
|
|
||||||
|
def after_create_course(course, user)
|
||||||
|
#unless User.current.admin?
|
||||||
|
r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first
|
||||||
|
m = Member.new(:user => user, :roles => [r])
|
||||||
|
m.project_id = -1
|
||||||
|
course_info = CourseInfos.new(:user_id => user.id, :course_id => course.id)
|
||||||
|
#user_grades = UserGrade.create(:user_id => User.current.id, :course_id => @course.id)
|
||||||
|
course.members << m
|
||||||
|
course.course_infos << course_info
|
||||||
|
end
|
||||||
|
|
||||||
|
#创建大纲
|
||||||
|
# params {title: '大纲名称', [{course}, {course}]}
|
||||||
|
def create(user, title, courses = [])
|
||||||
|
sy = Syllabus.new(title: title, user_id: user.id)
|
||||||
|
ActiveRecord::Base.transaction() do
|
||||||
|
sy.save!
|
||||||
|
|
||||||
|
courses.each do |course|
|
||||||
|
if ::Course === course
|
||||||
|
course.syllabus_id = sy.id
|
||||||
|
course.save!
|
||||||
|
elsif Hash === course
|
||||||
|
c = ::Course.new(course)
|
||||||
|
c.tea_id = user.id
|
||||||
|
c.syllabus_id = sy.id
|
||||||
|
c.update_default_value
|
||||||
|
c.save!
|
||||||
|
after_create_course(c, user)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
sy
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
end
|
@ -1,10 +1,14 @@
|
|||||||
<div class="post-container">
|
<div class="post-container">
|
||||||
|
<div loading-spinner></div>
|
||||||
|
|
||||||
<div class="blue-title">新建课程</div>
|
<div class="blue-title">新建课程</div>
|
||||||
<div class="course-list-row f13 c-grey3 mt30"><span class="fl ml15 c-grey3">课程</span><input class="new-class-input ml25" placeholder="请输入课程名" /></div>
|
<form novalidate name="classForm">
|
||||||
<div class="course-list-row f13 c-grey3 mt10"><span class="fl ml15 c-grey3">班级</span><input class="new-class-input ml25" placeholder="请输入班级名" /></div>
|
<div class="course-list-row f13 c-grey3 mt30"><span class="fl ml15 c-grey3">课程</span><input class="new-class-input ml25" ng-model="syllabus.title" required placeholder="请输入课程名" /></div>
|
||||||
<div class="tac"><a herf="javascript:void(0);" class="link-blue2 f13 mt15 inline-block add-class-link">+新增班级</a></div>
|
|
||||||
<a ng-click="newClass()" class="finish-btn">完成</a>
|
|
||||||
|
|
||||||
|
<div class="course-list-row f13 c-grey3 mt10" ng-repeat="course in syllabus.courses"><span class="fl ml15 c-grey3">班级</span><input required class="new-class-input ml25" ng-model="course.name" placeholder="请输入班级名" /><a ng-click="deleteClass($index)" ng-show="!$first" class="fr mr10 c-grey6 delete-class-link">删除</a></div>
|
||||||
|
<div class="tac"><a ng-click="addClass()" class="link-blue2 f13 mt15 inline-block add-class-link">+新增班级</a></div>
|
||||||
|
<a ng-click="newClass(classForm, syllabus)" ng-class="['finish-btn', {'btn-disabled':!classForm.$valid} ]" >完成</a>
|
||||||
|
</form>
|
||||||
|
|
||||||
<my-alert message="alertService.message" title="alertService.title" visible="alertService.visible" cb="alertService.cb"></my-alert>
|
<my-alert message="alertService.message" title="alertService.title" visible="alertService.visible" cb="alertService.cb"></my-alert>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,12 +1,51 @@
|
|||||||
|
|
||||||
|
|
||||||
app.controller('NewClassController', ['$scope', '$http', 'auth', 'config', 'alertService', function($scope, $http, auth, config, alertService){
|
app.controller('NewClassController', ['$scope', '$http', 'auth', 'config', 'alertService','$location', function($scope, $http, auth, config, alertService, $location){
|
||||||
var vm = $scope;
|
var vm = $scope;
|
||||||
|
|
||||||
vm.alertService = alertService.create();
|
vm.alertService = alertService.create();
|
||||||
|
|
||||||
vm.newClass = function () {
|
vm.syllabus = {
|
||||||
vm.alertService.showMessage('提示', '此功能正在开发中');
|
courses: [{name: ''}],
|
||||||
|
};
|
||||||
|
|
||||||
|
vm.addClass = function(){
|
||||||
|
vm.syllabus.courses.push({});
|
||||||
|
};
|
||||||
|
|
||||||
|
vm.deleteClass = function(index){
|
||||||
|
vm.syllabus.courses.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
vm.newClass = function (frm, syllabus) {
|
||||||
|
frm.$setSubmitted();
|
||||||
|
console.log(syllabus);
|
||||||
|
|
||||||
|
if(!frm.$valid){
|
||||||
|
console.log(frm.$error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var courses = [];
|
||||||
|
for(var i in vm.syllabus.courses){
|
||||||
|
courses .push(vm.syllabus.courses[i].name);
|
||||||
|
}
|
||||||
|
|
||||||
|
$http.post(config.apiUrl+"syllabuses", {
|
||||||
|
token: auth.token(),
|
||||||
|
title: syllabus.title,
|
||||||
|
courses: courses
|
||||||
|
}).then(function(response){
|
||||||
|
if(response.data.status!=0){
|
||||||
|
vm.alertService.showMessage('出错了', response.data.message);
|
||||||
|
} else {
|
||||||
|
vm.alertService.showMessage('提示', '新建课程成功', function(){
|
||||||
|
window.history.back();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
console.log(response.data.data);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}] );
|
}] );
|
Loading…
Reference in new issue