move_standards.py
1.75 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
# See LICENSE file for full copyright and licensing details.
from odoo import models, fields
class MoveStandards(models.TransientModel):
"""Defining TransientModel to move standard."""
_name = 'move.standards'
_description = "Move Standards"
academic_year_id = fields.Many2one('academic.year', 'Academic Year',
required=True)
def move_start(self):
'''Code for moving student to next standard'''
academic_obj = self.env['academic.year']
school_stand_obj = self.env['school.standard']
standard_obj = self.env["standard.standard"]
student_obj = self.env['student.student']
done_rec = student_obj.search([('state', '=', 'done')])
for stud in done_rec:
year_id = academic_obj.next_year(stud.year.sequence)
academic_year = academic_obj.search([('id', '=', year_id)],
limit=1)
standard_seq = stud.standard_id.standard_id.sequence
next_class_id = standard_obj.next_standard(standard_seq)
# Assign the academic year
if next_class_id:
division = (stud.standard_id.division_id.id or False)
next_stand = school_stand_obj.search([
('standard_id', '=', next_class_id),
('division_id', '=', division),
('school_id', '=', stud.school_id.id),
('medium_id', '=', stud.medium_id.id)])
if next_stand:
std_vals = {'year': academic_year.id,
'standard_id': next_stand.id}
# Move student to next standard
stud.write(std_vals)