dashboar, Academics, configuration save issue fixed
This commit is contained in:
parent
2794ebcb22
commit
3855ed06bb
@ -28,7 +28,7 @@
|
||||
<field name="faculty_id"/>
|
||||
<field name="state"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<t t-name="card">
|
||||
<div class="oe_kanban_global_click o_kanban_card">
|
||||
<div class="oe_kanban_content">
|
||||
<div class="o_kanban_record_title font-weight-bold">
|
||||
@ -144,9 +144,9 @@
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="activity_ids" widget="mail_activity"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -49,11 +49,12 @@ class AcademicYear(models.Model):
|
||||
if existing:
|
||||
raise ValidationError('Only one academic year can be marked as current for a company.')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if vals.get('state') == 'active':
|
||||
vals['current_year'] = True
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def action_activate(self):
|
||||
for rec in self:
|
||||
|
||||
@ -40,11 +40,12 @@ class EducationCampus(models.Model):
|
||||
if similar:
|
||||
raise ValidationError('Campus name must be unique within a company.')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if vals.get('code'):
|
||||
vals['code'] = vals['code'].strip().upper()
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
if 'code' in vals and vals.get('code'):
|
||||
|
||||
@ -4,10 +4,10 @@ import { registry } from "@web/core/registry";
|
||||
import { Component, onWillStart, onMounted, useState, useRef } from "@odoo/owl";
|
||||
import { useService } from "@web/core/utils/hooks";
|
||||
import { loadJS } from "@web/core/assets";
|
||||
import { rpc } from "@web/core/network/rpc";
|
||||
|
||||
class EducationDashboard extends Component {
|
||||
setup() {
|
||||
this.rpc = useService("rpc");
|
||||
this.actionService = useService("action");
|
||||
this.state = useState({
|
||||
kpis: {},
|
||||
@ -38,7 +38,7 @@ class EducationDashboard extends Component {
|
||||
for (const [k, v] of Object.entries(this.state.filters)) {
|
||||
params[k] = v ? parseInt(v) : null;
|
||||
}
|
||||
const data = await this.rpc("/web/education/dashboard/kpis", params);
|
||||
const data = await rpc("/web/education/dashboard/kpis", params);
|
||||
this.state.kpis = data;
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -36,11 +36,12 @@ class EducationFeeCategory(models.Model):
|
||||
if similar:
|
||||
raise ValidationError('Fee category name must be unique within a company.')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if vals.get('code'):
|
||||
vals['code'] = vals['code'].strip().upper()
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
if 'code' in vals and vals.get('code'):
|
||||
|
||||
@ -89,8 +89,9 @@ class EducationStudentPayment(models.Model):
|
||||
ledger_entries.unlink()
|
||||
rec.status = 'cancelled'
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if not vals.get('receipt_number') or vals.get('receipt_number') == '/':
|
||||
vals['receipt_number'] = self.env['ir.sequence'].next_by_code('education.student.payment') or '/'
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
@ -76,9 +76,9 @@
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="activity_ids" widget="mail_activity"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -35,11 +35,12 @@ class EducationBatch(models.Model):
|
||||
if similar:
|
||||
raise ValidationError('Batch name must be unique within a company.')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if vals.get('code'):
|
||||
vals['code'] = vals['code'].strip().upper()
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
if 'code' in vals and vals.get('code'):
|
||||
@ -78,11 +79,12 @@ class EducationSemester(models.Model):
|
||||
if similar:
|
||||
raise ValidationError('Semester name must be unique within a company.')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if vals.get('code'):
|
||||
vals['code'] = vals['code'].strip().upper()
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
if 'code' in vals and vals.get('code'):
|
||||
@ -121,11 +123,12 @@ class EducationSection(models.Model):
|
||||
if similar:
|
||||
raise ValidationError('Section name must be unique within a company.')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if vals.get('code'):
|
||||
vals['code'] = vals['code'].strip().upper()
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
if 'code' in vals and vals.get('code'):
|
||||
|
||||
@ -249,15 +249,16 @@ class EducationStudent(models.Model):
|
||||
def action_cancel(self):
|
||||
self.write({'status': 'cancelled', 'leave_date': fields.Date.today()})
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
if not vals.get('admission_number') or vals.get('admission_number') == '/':
|
||||
vals['admission_number'] = self.env['ir.sequence'].next_by_code('education.student.admission') or '/'
|
||||
if not vals.get('student_id') or vals.get('student_id') == '/':
|
||||
vals['student_id'] = self.env['ir.sequence'].next_by_code('education.student.id') or '/'
|
||||
if vals.get('student_id'):
|
||||
vals['student_id'] = vals['student_id'].strip().upper()
|
||||
return super().create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
if 'student_id' in vals and vals.get('student_id'):
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<field name="status"/>
|
||||
<field name="image"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<t t-name="card">
|
||||
<div class="oe_kanban_global_click o_kanban_record_has_image_fill">
|
||||
<t t-if="record.image.raw_value">
|
||||
<div class="o_kanban_image_fill_left d-none d-md-block" t-attf-style="background-image:url('#{kanban_image('education.student', 'image', record.id.raw_value)}')"/>
|
||||
@ -278,9 +278,9 @@
|
||||
</sheet>
|
||||
<!-- Chatter -->
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="activity_ids" widget="mail_activity"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user