def case_open(self): res = self.write({'state': 'open'}) for (event_id, name) in self.name_get(): message = _("The Event '%s' has been opened.") % name event_id = calendar.calendar_id2real_id(event_id) self.log(event_id, message) return res
def case_close(self, cr, uid, ids, *args): for (id, name) in self.name_get(cr, uid, ids): message = _("The task '%s' has been closed.") % name id=calendar.calendar_id2real_id(id) self.log(cr, uid, id, message) self.write(cr, uid, ids, {'date_closed': \ time.strftime('%Y-%m-%d %H:%M:%S')}) cases = self.browse(cr, uid, ids) for case in cases: data = {'state': 'done', 'active': True} if not case.user_id: data['user_id'] = uid self.write(cr, uid, case.id, data) return True
def add_attendees(self): # Method for adding attendees to a session real_event_id = calendar_id2real_id(self.id) new_attendance_rec = [] for enrollment in self.course_id.enrollment_ids: self.env.cr.execute("SELECT count(1) from menora_attendance" " WHERE partner_id = %s and session_id = %s", (enrollment.partner_id.id, real_event_id)) res = self.env.cr.fetchone()[0] if res == 0: vals = { 'partner_id': enrollment.partner_id.id, 'session_id': real_event_id, } attendance_rec = self.env['menora.attendance'].create(vals) new_attendance_rec.append(attendance_rec) return new_attendance_rec
def write(self, values): ret = super(course_session,self).write(values) if values.get('count', self.count) or values.get('final_date', self.final_date) and values.get('active', self.active) : real_event_id = calendar_id2real_id(self.id) sessions = self.search([('course_id', '=', self.course_id.id), ('id', '=', real_event_id)]) rsessions = self.search([('course_id', '=', self.course_id.id), ('id', '!=', real_event_id)]) for ses in sessions: start = ses.start_date if ses.allday else ses.start_datetime start = fields.Datetime.from_string(start).replace(hour=0, minute=0, second=0, microsecond=0) stop = start.replace(hour=23, minute=59, second=59, microsecond=999) for rses in rsessions: rstart = fields.Datetime.from_string(rses.start) if start <= rstart and rstart <= stop: start = fields.Datetime.to_string(start) raise except_orm('Error','There is a Course Session with date %s' % (start)) return ret
def case_open(self, cr, uid, ids, *args): """Confirms task @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @param ids: List of task Ids @param *args: Tuple Value for additional Params """ if ids: for (id, name) in self.name_get(cr, uid, ids): message = _("The task '%s' has been confirmed.") % name id=calendar.calendar_id2real_id(id) self.log(cr, uid, id, message) cases = self.browse(cr, uid, ids) for case in cases: data = {'state': 'open', 'active': True} if not case.user_id: data['user_id'] = uid self.write(cr, uid, case.id, data) return True
def detach_one_event(self): real_event_id = calendar_id2real_id(self.id) data = dict() data['start_date' if self.allday else 'start_datetime'] = self.start data['stop_date' if self.allday else 'stop_datetime'] = self.stop if self.rrule: data.update( recurrent_id=real_event_id, recurrent_id_date=self.start, rrule_type=False, rrule='', recurrency=False, final_date=datetime.strptime(self.start, DEFAULT_SERVER_DATE_FORMAT if self.allday else DEFAULT_SERVER_DATETIME_FORMAT) + timedelta(hours=self.duration) ) new_session = self.copy(default=data) return new_session else: return self