Ir al contenido
Odoo Menú
  • Iniciar sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • PdV para tiendas
    • PdV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en vivo
    • eLearning
    Cadena de suministro
    • Inventario
    • Manufactura
    • PLM
    • Compras
    • Mantenimiento
    • Calidad
    Recursos humanos
    • Empleados
    • Reclutamiento
    • Vacaciones
    • Evaluaciones
    • Referencias
    • Flotilla
    Marketing
    • Redes sociales
    • Marketing por correo
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyectos
    • Registro de horas
    • Servicio externo
    • Soporte al cliente
    • Planeación
    • Citas
    Productividad
    • Conversaciones
    • Aprobaciones
    • IoT
    • VoIP
    • Artículos
    • WhatsApp
    Aplicaciones externas Studio de Odoo Plataforma de Odoo en la nube
  • Industrias
    Venta minorista
    • Librería
    • Tienda de ropa
    • Mueblería
    • Tienda de abarrotes
    • Ferretería
    • Juguetería
    Alimentos y hospitalidad
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidora de bebidas
    • Hotel
    Bienes inmuebles
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión de bienes inmuebles
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Firma contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Manufactura
    • Textil
    • Metal
    • Muebles
    • Comida
    • Cervecería
    • Regalos corporativos
    Salud y ejercicio
    • Club deportivo
    • Óptica
    • Gimnasio
    • Especialistas en bienestar
    • Farmacia
    • Peluquería
    Trades
    • Personal de mantenimiento
    • Hardware y soporte de TI
    • Sistemas de energía solar
    • Zapateros y fabricantes de calzado
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin fines de lucro
    • Agencia para la protección del medio ambiente
    • Alquiler de anuncios publicitarios
    • Fotografía
    • Alquiler de bicicletas
    • Distribuidor de software
    Descubre todas las industrias
  • Odoo Community
    Aprende
    • Tutoriales
    • Documentación
    • Certificaciones
    • Capacitación
    • Blog
    • Podcast
    Fortalece la educación
    • Programa educativo
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtén el software
    • Descargar
    • Compara ediciones
    • Versiones
    Colabora
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Conviértete en partner
    • Servicios para partners
    • Registra tu firma contable
    Obtén servicios
    • Encuentra un partner
    • Encuentra un contador
    • Contacta a un consultor
    • Servicios de implementación
    • Referencias de clientes
    • Soporte
    • Actualizaciones
    GitHub YouTube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicita una demostración
  • Precios
  • Ayuda

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Contabilidad
  • Inventario
  • PoS
  • Proyectos
  • MRP
All apps
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

how to count on selection value

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
selectioncountodoo
2 Respuestas
1996 Vistas
Avatar
mmd

I making a module for student's to select their lunch in a day and it's a selection .
how i can see how many student's select food1 and how many select food2 ?


this is my food class :

class Lunch(models.Model):
_name = "food.foods"

name = fields.Char(string="نام غذا", required=True)
food_type = fields.Selection([('withrice','WithRice'),('whitoutrice' , 'WithoutRice')] , string="select" )

and this is my days class :

class DayOfWeek(models.Model):
_name = 'food.days'
_description = 'days of week'

name = fields.Char(string='day' , compute='_complite_name')
date = fields.Date(string='date', required=True)
week_id = fields.Many2one('food.weeks', string='week')
food_id = fields.Many2many('food.foods', string='food name')






0
Avatar
Descartar
Avatar
Jainesh Shah(Aktiv Software)
Mejor respuesta

Hello mmd,


To see how many students selected Food 1 and Food 2, you can add two counters in your "food.days" model.

Based on your Many2many relationship with food_ids, you can count the selections as follows:


Add compute fields:

//Code in Comment//

Hope this Helps,

If you need any help in customization feel free to contact us.


Thanks & Regards,

Email:  odoo@aktivsoftware.com           

Skype: kalpeshmaheshwari

0
Avatar
Descartar
Jainesh Shah(Aktiv Software)

Code :
with_rice_count = fields.Integer(string='With Rice Count',
compute='_compute_food_counts',
store=True)

without_rice_count = fields.Integer(string='Without Rice Count',
compute='_compute_food_counts',
store=True)

Compute method:
@api.depends('food_id')
def _compute_food_counts(self):
for record in self:
with_rice = record.food_id.filtered(
lambda f: f.food_type == 'withrice')
without_rice = record.food_id.filtered(
lambda f: f.food_type == 'whitoutrice')
record.with_rice_count = len(with_rice)
record.without_rice_count = len(without_rice)

Avatar
CodeWasher
Mejor respuesta

To achieve the functionality where you can see how many students have selected food1 and how many have selected food2, you need to create a relation between the DayOfWeek and the students' selection of a specific lunch. You can create an additional model to capture each student's food selection on a particular day.


Here's an overview of what you need to add:


Create a new model to track student food selection.

Link the new model to the DayOfWeek and Lunch models, as well as to the student.



Updated Models:

Add Student Food Selection Model: This new model will track each student's food choice for a given day.



from odoo import models, fields


class Student(models.Model):

    _name = 'food.student'

    _description = 'Student'


    name = fields.Char(string='Student Name', required=True)

    student_id = fields.Char(string='Student ID', required=True)


class Lunch(models.Model):

    _name = "food.foods"


    name = fields.Char(string="Food Name", required=True)

    food_type = fields.Selection([('withrice', 'WithRice'), ('whitoutrice', 'WithoutRice')], string="Select")


class DayOfWeek(models.Model):

    _name = 'food.days'

    _description = 'Days of the Week'


    name = fields.Char(string='Day', compute='_compute_name')

    date = fields.Date(string='Date', required=True)

    week_id = fields.Many2one('food.weeks', string='Week')

    food_ids = fields.Many2many('food.foods', string='Food Name')


class StudentFoodSelection(models.Model):

    _name = 'food.student.selection'

    _description = 'Student Food Selection'


    student_id = fields.Many2one('food.student', string='Student', required=True)

    day_id = fields.Many2one('food.days', string='Day', required=True)

    food_id = fields.Many2one('food.foods', string='Selected Food', required=True)






Explanation:

Student model:


Added a Student model to represent each student. You might already have a similar student model, in which case, you can skip this one.

Lunch model (food.foods):


This is your existing Lunch model. No changes here.

DayOfWeek model (food.days):


This is also your existing model for representing each day. The only change is a change in the field name from food_id to food_ids to make it clear it's a list of options.

StudentFoodSelection model (food.student.selection):


This new model captures each student's food choice on a given day. It has three fields:

student_id: A reference to the student.

day_id: A reference to the day for which the selection is made.

food_id: A reference to the food selected by the student




Computing the Selection Count

To calculate how many students have selected food1 or food2, you can add a computed field on the DayOfWeek model or create a method to run the calculation:



class DayOfWeek(models.Model):

    _inherit = 'food.days'


    food_selection_summary = fields.Text(string='Food Selection Summary', compute='_compute_food_selection_summary')


    def _compute_food_selection_summary(self):

        for record in self:

            summary = ""

            food_counts = {}

            selections = self.env['food.student.selection'].search([('day_id', '=', record.id)])

            for selection in selections:

                if selection.food_id.name not in food_counts:

                    food_counts[selection.food_id.name] = 0

                food_counts[selection.food_id.name] += 1


            summary = "\n".join(f"{food_name}: {count} students" for food_name, count in food_counts.items())

            record.food_selection_summary = summary





0
Avatar
Descartar
¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Registrarse
Publicaciones relacionadas Respuestas Vistas Actividad
I want to count total no. of bills done by a biller...But always shows 1 from the "highest_biller"...
count odoo
Avatar
0
jul 21
3129
Add value to selection field without coding
selection odoo
Avatar
Avatar
Avatar
3
dic 19
4998
How do I get the value of a selection field - widget=radio ?
selection odoo odoo12
Avatar
0
abr 22
5220
How to add new value in Selection in Settings Resuelto
settings selection odoo
Avatar
Avatar
1
may 21
4594
Odoo Selection field issue Resuelto
selection odoo odoo12 odoo12.0
Avatar
Avatar
Avatar
Avatar
3
mar 24
8000
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento en Odoo.sh
  • Soporte
  • Actualizaciones del software
  • Desarrollos personalizados
  • Educación
  • Encuentra un contador
  • Encuentra un partner
  • Conviértete en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contáctanos
  • Empleos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidad
  • Seguridad
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now