Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

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

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

[v18] multiple report sheets for one project

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
developmentconfigurationservicev18
1 Odpowiedz
816 Widoki
Awatar
hzlh

Hello!

I'm taking over this already started project which has v18, I'm pretty new to Odoo and would love some help figuring out how to do what I have in mind:

We have a modified on field module which creates on site projects linked to a sales (one sale one project). It has the client, dates, etc, and then a tab component with a couple useful things like timesheets and notes. Among those tabs, we have one to file a report that the client can sign and where you can put details on what you've done and seen on site, and add pictures.

The issue is: we need to be able to file several reports, one for each day, for cases when the project lasts more than one day.

Right now, when you click on the tab, it directly shows a form which you can file and edit.

I thought of adding a button on top to create a new report if needed:

  • if there's only one, keep the current display
  • if there are multiples, display them in a list which you can toggle (date, who went, is the report signed or not) to avoid having a very long page

Another point is that we need to be able to print those individually, so having the option to choose which ones to print is needed.

Is this something I can do? If yes, how can I go about it?

I've read documentation about the in field module and have a good general understanding of the tool, and a web dev background.

Thanks a lot!

0
Awatar
Odrzuć
Awatar
Cybrosys Techno Solutions Pvt.Ltd
Najlepsza odpowiedź

Hi,


In Odoo 18, your current setup allows only a single on-site report per project, which makes it hard to handle projects lasting multiple days. The clean solution is to create a dedicated Daily Report model and link it to your project with a one-to-many relation. This lets you add as many daily reports as needed, display them in a list if there are several, and still print each report individually.


The first step is to define a new model for daily reports. This model will store the project reference, date, technician, signed status, notes, and any attached photos:


class OnFieldReport(models.Model):

    _name = 'onfield.report'

    _description = 'On Field Daily Report'


    project_id = fields.Many2one('onfield.project', string="Project", required=True, ondelete='cascade')

    date = fields.Date(default=fields.Date.context_today, required=True)

    user_id = fields.Many2one('res.users', string="Technician", default=lambda self: self.env.user)

    signed = fields.Boolean("Signed by Client")

    notes = fields.Text("Report Notes")

    image_ids = fields.Many2many('ir.attachment', string="Photos")


Next, you extend your existing project model with a one-to-many field pointing to the reports:


class OnFieldProject(models.Model):

    _inherit = 'onfield.project'


    report_ids = fields.One2many('onfield.report', 'project_id', string="Daily Reports")



On the project form view, you add a new tab that displays the reports in both list and form view. This allows users to create new reports, quickly see existing ones, and open them individually:


<page string="Daily Reports">

    <field name="report_ids" context="{'default_project_id': active_id}">

        <tree editable="bottom">

            <field name="date"/>

            <field name="user_id"/>

            <field name="signed"/>

        </tree>

        <form>

            <sheet>

                <group>

                    <field name="date"/>

                    <field name="user_id"/>

                    <field name="signed"/>

                </group>

                <group>

                    <field name="notes"/>

                    <field name="image_ids" widget="many2many_binary"/>

                </group>

            </sheet>

        </form>

    </field>

</page>


Finally, you add a QWeb report definition so each daily report can be printed individually:


<report

    id="action_report_onfield_report"

    model="onfield.report"

    string="Daily Report"

    report_type="qweb-pdf"

    name="your_module.onfield_report_template"

    file="your_module.onfield_report_template"

/>



By moving the daily report into its own model and linking it to projects with a one-to-many relation, you can easily support multiple reports per project, keep the project form neat, and allow reports to be printed individually. This design scales well, stays user-friendly, and aligns with Odoo’s best practices for modularity and extensibility.


Hope it helps

0
Awatar
Odrzuć
Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
Override price list with quote
development configuration v18
Awatar
Awatar
Awatar
Awatar
3
maj 25
1351
Dynamic Dashboard Background and Text on Dark/Light Theme Switch in Odoo 16 sh
development configuration
Awatar
Awatar
1
lis 25
245
Bulk PDF download error
development configuration
Awatar
0
paź 25
521
I am trying to set up a mass BOM edit. My Python code is giving forbidden opcode(s) error. Odoo 18
development configuration
Awatar
Awatar
Awatar
2
wrz 25
1049
Google Calendar Sync - Odoo Calendar
development configuration
Awatar
Awatar
Awatar
3
sie 25
1978
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة 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 to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

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