video_log
cxt 5 years ago
parent 6ef7ff36b2
commit 81380ea879

@ -0,0 +1,38 @@
class AttendancesController < ApplicationController
before_action :require_login
before_action :find_course, only: [:create, :index]
def create
ActiveRecord::Base.transaction do
attendance = @course.course_attendances.create!(create_params)
unless params[:group_ids].blank?
params[:group_ids].each do |group_id|
@course.course_attendance_groups.create!(course_group_id: group_id, course_attendance: attendance)
end
else
end
end
end
def index
end
def show
end
def update
end
def destroy
end
private
def create_params
params.permit(:name, :mode, :attendance_date, :start_time, :end_time)
end
end

@ -90,6 +90,10 @@ class Course < ApplicationRecord
# 直播
has_many :live_links, dependent: :destroy
# 签到
has_many :course_attendances, dependent: :destroy
has_many :course_attendance_groups, dependent: :destroy
validate :validate_sensitive_string
scope :hidden, ->(is_hidden = true) { where(is_hidden: is_hidden) }

@ -0,0 +1,13 @@
class CourseAttendance < ApplicationRecord
belongs_to :course
belongs_to :user
has_many :course_attendance_groups, dependent: :destroy
validates :name, presence: true
validates :mode, presence: true
validates :attendance_date, presence: true
validates :start_time, presence: true
validates :end_time, presence: true
end

@ -0,0 +1,5 @@
class CourseAttendanceGroup < ApplicationRecord
belongs_to :course
belongs_to :course_attendance
belongs_to :course_group
end

@ -554,6 +554,8 @@ Rails.application.routes.draw do
end
end
resources :attendances, only: [:index, :update, :create, :show, :destroy], shallow: true
resources :live_links, only: [:index, :update, :create, :edit, :destroy], shallow: true
resources :homework_commons, shallow: true do

@ -0,0 +1,15 @@
class CreateCourseAttendances < ActiveRecord::Migration[5.2]
def change
create_table :course_attendances do |t|
t.references :course, index: true
t.references :user, index: true
t.string :name
t.integer :mode, limit: 1, default: 0
t.date :attendance_date
t.time :start_time
t.time :end_time
t.timestamps
end
end
end

@ -0,0 +1,13 @@
class CreateCourseAttendanceGroups < ActiveRecord::Migration[5.2]
def change
create_table :course_attendance_groups do |t|
t.references :course, index: true
t.references :course_attendance
t.references :course_group, index: true
t.timestamps
add_index :course_attendances, [:course_attendance_id, :course_group_id, :course_id], name: "course_group_attendance", unique: true
end
end
end

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe CourseAttendanceGroup, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe CourseAttendance, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end
Loading…
Cancel
Save