Class: Mumuki::Classroom::GuideProgress

Inherits:
Document
  • Object
show all
Includes:
Mongoid::Timestamps
Defined in:
lib/mumuki/classroom/models/guide_progress.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Document

inherited, whitelist_attributes

Class Method Details

.attach_all_by!(query) ⇒ Object



28
29
30
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 28

def attach_all_by!(query)
  where(query).unset(:detached)
end

.destroy_all_by!(query) ⇒ Object



32
33
34
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 32

def destroy_all_by!(query)
  where(query).destroy
end

.detach_all_by!(query) ⇒ Object



24
25
26
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 24

def detach_all_by!(query)
  where(query).set(detached: true)
end

.last_assignment_by(query) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 40

def last_assignment_by(query)
  where(query).order_by('last_assignment.submission.created_at': :desc).first.try do |it|
    Mumuki::Classroom::LastAssignment.new(guide: it.guide,
                                          exercise: it.last_assignment.exercise,
                                          submission: {
                                            sid: it.last_assignment.submission.sid,
                                            status: it.last_assignment.submission.status,
                                            created_at: it.last_assignment.submission.created_at,
                                          })
  end
end

.progresses_for(progress_item, student) ⇒ Object



56
57
58
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 56

def progresses_for(progress_item, student)
  where(organization: progress_item.organization, course: student.course, slug: progress_item.content.slug, 'student.uid': student.uid)
end

.transfer_all_by!(query, new_organization, new_course) ⇒ Object



36
37
38
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 36

def transfer_all_by!(query, new_organization, new_course)
  where(query).set(organization: new_organization, course: new_course)
end

.uid_fieldObject



52
53
54
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 52

def uid_field
  'student.uid'.to_sym
end

Instance Method Details

#slugObject



19
20
21
# File 'lib/mumuki/classroom/models/guide_progress.rb', line 19

def slug
  guide[:slug]
end