diff --git a/awesome_clicker/__init__.py b/awesome_clicker/__init__.py index 40a96afc6ff..8b137891791 100644 --- a/awesome_clicker/__init__.py +++ b/awesome_clicker/__init__.py @@ -1 +1 @@ -# -*- coding: utf-8 -*- + diff --git a/awesome_clicker/__manifest__.py b/awesome_clicker/__manifest__.py index f2a57dd1b46..e58879caff9 100644 --- a/awesome_clicker/__manifest__.py +++ b/awesome_clicker/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- { 'name': "Awesome Clicker", diff --git a/awesome_dashboard/__init__.py b/awesome_dashboard/__init__.py index b0f26a9a602..f705942f8f1 100644 --- a/awesome_dashboard/__init__.py +++ b/awesome_dashboard/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import controllers diff --git a/awesome_dashboard/__manifest__.py b/awesome_dashboard/__manifest__.py index b575bf4f1be..0101949ecb9 100644 --- a/awesome_dashboard/__manifest__.py +++ b/awesome_dashboard/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- { 'name': "Awesome Dashboard", diff --git a/awesome_dashboard/controllers/__init__.py b/awesome_dashboard/controllers/__init__.py index 457bae27e11..f705942f8f1 100644 --- a/awesome_dashboard/controllers/__init__.py +++ b/awesome_dashboard/controllers/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- -from . import controllers \ No newline at end of file +from . import controllers diff --git a/awesome_dashboard/controllers/controllers.py b/awesome_dashboard/controllers/controllers.py index c46cfc63bfa..0481b488306 100644 --- a/awesome_dashboard/controllers/controllers.py +++ b/awesome_dashboard/controllers/controllers.py @@ -1,13 +1,11 @@ -# -*- coding: utf-8 -*- - import logging import random from odoo import http -from odoo.http import request logger = logging.getLogger(__name__) + class AwesomeDashboard(http.Controller): @http.route('/awesome_dashboard/statistics', type='jsonrpc', auth='user') def get_statistics(self): diff --git a/awesome_owl/__init__.py b/awesome_owl/__init__.py index 457bae27e11..f705942f8f1 100644 --- a/awesome_owl/__init__.py +++ b/awesome_owl/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- -from . import controllers \ No newline at end of file +from . import controllers diff --git a/awesome_owl/__manifest__.py b/awesome_owl/__manifest__.py index 242e53ddeb7..d39d7ea3594 100644 --- a/awesome_owl/__manifest__.py +++ b/awesome_owl/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- { 'name': "Awesome Owl", diff --git a/awesome_owl/controllers/__init__.py b/awesome_owl/controllers/__init__.py index 457bae27e11..f705942f8f1 100644 --- a/awesome_owl/controllers/__init__.py +++ b/awesome_owl/controllers/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- -from . import controllers \ No newline at end of file +from . import controllers diff --git a/awesome_shelter/__manifest__.py b/awesome_shelter/__manifest__.py index 5a7af98f925..64e255b1ffe 100644 --- a/awesome_shelter/__manifest__.py +++ b/awesome_shelter/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- { "name": "Awesome Shelter", "summary": """ diff --git a/awesome_shelter/models/animal.py b/awesome_shelter/models/animal.py index aa836ca34f7..3223927282d 100644 --- a/awesome_shelter/models/animal.py +++ b/awesome_shelter/models/animal.py @@ -39,5 +39,5 @@ class Animal(models.Model): def _compute_is_present_for_six_month(self): for record in self: record.is_present_for_six_month = ( - fields.Date.today() + relativedelta(months=-6) < record.drop_date + fields.Date.today() + relativedelta(months=-6) > record.drop_date ) diff --git a/awesome_shelter/static/src/adopted_status_field/adopted_status_field.js b/awesome_shelter/static/src/adopted_status_field/adopted_status_field.js new file mode 100644 index 00000000000..24440c149b9 --- /dev/null +++ b/awesome_shelter/static/src/adopted_status_field/adopted_status_field.js @@ -0,0 +1,40 @@ +import { registry } from "@web/core/registry"; +import { statusBarField } from "@web/views/fields/statusbar/statusbar_field"; +import { useService } from "@web/core/utils/hooks"; + + +class AdoptedStatusBar extends statusBarField.component +{ + static props = {...statusBarField.component.props, activationStage:{type : String}} + static template = statusBarField.component.template; + + setup() + { + super.setup(); + this.effect = useService("effect"); + } + async selectItem(item) + { + super.selectItem(item); + if(item.value == this.props.activationStage) + { + this.effect.add({message : "A new happy life on the makeing !!"}); + } + + } + +} + +export const adoptedStatusBar = + { + ...statusBarField, + component: AdoptedStatusBar, + extractProps({options}) + { + const props = statusBarField.extractProps(...arguments); + props.activationStage = options.activationStage + return props; + } + } + +registry.category("fields").add("adopt_status_bar",adoptedStatusBar); diff --git a/awesome_shelter/static/src/char_generator_field/char_generator_field.js b/awesome_shelter/static/src/char_generator_field/char_generator_field.js new file mode 100644 index 00000000000..cbaf0237a8c --- /dev/null +++ b/awesome_shelter/static/src/char_generator_field/char_generator_field.js @@ -0,0 +1,50 @@ +import { registry } from "@web/core/registry"; +import {charField } from "@web/views/fields/char/char_field"; + + +class CharGeneratorField extends charField.component +{ + static template = "shelter.char_generator_field"; + static props = {...charField.component.props} + static names = [ + "Charlie", + "Daisy", + "Bella", + "Lola", + "Luna", + "Milo", + "Teddy", + "Cooper", + "Max", + "Bailey", + "Buddy", + "Coco", + "Leo", + "Loki", + "Lucy", + "ChloƩ", + "Oscar", + "Rocky", + "Sadie", + "Bonnie", + "Poppy", + ] + + generate() + { + const name = CharGeneratorField.names[Math.floor(Math.random() * CharGeneratorField.names.length)]; + console.log(name) + this.props.record.update({[this.props.name]: name}); + } + get isShow() + { + return !this.props.record.data[this.props.name]; + } +} +export const charFieldGenerator= +{ + ...charField, + component: CharGeneratorField, +} +registry.category("fields").add("char_generator",charFieldGenerator); + diff --git a/awesome_shelter/static/src/char_generator_field/char_generator_field.xml b/awesome_shelter/static/src/char_generator_field/char_generator_field.xml new file mode 100644 index 00000000000..adf6fa197f1 --- /dev/null +++ b/awesome_shelter/static/src/char_generator_field/char_generator_field.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/awesome_shelter/static/src/long_stay_banner/long_stay_banner.js b/awesome_shelter/static/src/long_stay_banner/long_stay_banner.js new file mode 100644 index 00000000000..a595b03ea2b --- /dev/null +++ b/awesome_shelter/static/src/long_stay_banner/long_stay_banner.js @@ -0,0 +1,16 @@ +import { Component } from "@odoo/owl"; +import { standardWidgetProps } from "@web/views/widgets/standard_widget_props"; +import { registry } from "@web/core/registry"; + +class LongStayBanner extends Component { + static template = "shelter.long_stay_banner"; + static props = { + ...standardWidgetProps + }; +} +export const longStayBanner= +{ + component: LongStayBanner, +} +registry.category("view_widgets").add("long_stay_banner",longStayBanner); + diff --git a/awesome_shelter/static/src/long_stay_banner/long_stay_banner.xml b/awesome_shelter/static/src/long_stay_banner/long_stay_banner.xml new file mode 100644 index 00000000000..0b80013d8c6 --- /dev/null +++ b/awesome_shelter/static/src/long_stay_banner/long_stay_banner.xml @@ -0,0 +1,11 @@ + + + +
+

Oh no, has stayed here for very long. + Quick find them a home +

+ +
+
+
diff --git a/awesome_shelter/static/src/pictogram_many2one/pictogram_many2one.js b/awesome_shelter/static/src/pictogram_many2one/pictogram_many2one.js new file mode 100644 index 00000000000..83a01b57d8a --- /dev/null +++ b/awesome_shelter/static/src/pictogram_many2one/pictogram_many2one.js @@ -0,0 +1,43 @@ +import { registry } from "@web/core/registry"; +import {Many2OneField, buildM2OFieldDescription } from "@web/views/fields/many2one/many2one_field"; +import { imageUrl } from "@web/core/utils/urls"; + + +const field = buildM2OFieldDescription(Many2OneField); + +class PictoMany2One extends Many2OneField +{ + static template = "shelter.picto_many2one"; + static props = { + ...Many2OneField.props, + image: {optional : true, type: String} + }; + + get pictoUrl() + { + console.log(this.props.record.resModel) + console.log(this.props.record.resId) + console.log(this.props.image) + console.log(imageUrl(this.props.record.resModel, this.props.record.resId, this.props.image)); + return imageUrl(this.props.record.resModel, this.props.record.resId, this.props.image); + } + get hasImage() + { + return Boolean(this.props.record.data[this.props.image]); + } + +} + + +const pictoMany2One = { + ...field, + component: PictoMany2One, + fieldDependencies: [...field.fieldDependencies || [], {name: "pictogram", type:"image"}], + extractProps({options}) + { + const props = field.extractProps(...arguments) + props.image = options.image; + return props; + }, +} +registry.category("fields").add("picto_many2one",pictoMany2One); diff --git a/awesome_shelter/static/src/pictogram_many2one/pictogram_many2one.xml b/awesome_shelter/static/src/pictogram_many2one/pictogram_many2one.xml new file mode 100644 index 00000000000..ecb7df7daa1 --- /dev/null +++ b/awesome_shelter/static/src/pictogram_many2one/pictogram_many2one.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/awesome_shelter/static/src/updated_kanban/updated_kanban.js b/awesome_shelter/static/src/updated_kanban/updated_kanban.js new file mode 100644 index 00000000000..5e2cf87df6c --- /dev/null +++ b/awesome_shelter/static/src/updated_kanban/updated_kanban.js @@ -0,0 +1,29 @@ +import { registry } from "@web/core/registry"; +import { kanbanView } from "@web/views/kanban/kanban_view"; +import { useInterval } from "../utlis/utils"; + + + + +class UpdatedKanban extends kanbanView.Controller +{ + setup() + { + super.setup(); + useInterval(this.reload.bind(this),10000); + } + reload() + { + console.log("reloaded"); + this.model.load(); + } + +} +const updatedKanban = +{ + ...kanbanView, + Controller: UpdatedKanban, + +}; + +registry.category("views").add("updated_kanban",updatedKanban); diff --git a/awesome_shelter/static/src/utlis/utils.js b/awesome_shelter/static/src/utlis/utils.js new file mode 100644 index 00000000000..7145b5902cd --- /dev/null +++ b/awesome_shelter/static/src/utlis/utils.js @@ -0,0 +1,9 @@ + +import { browser } from "@web/core/browser/browser"; +import { onMounted, onWillUnmount } from "@odoo/owl"; +export function useInterval(callback , duration) +{ + let interval; + onMounted(() => (interval = browser.setInterval(callback, duration))); + onWillUnmount(() => (browser.clearInterval(interval))); +} diff --git a/awesome_shelter/views/views.xml b/awesome_shelter/views/views.xml index cb2529c7fec..2b7e3894718 100644 --- a/awesome_shelter/views/views.xml +++ b/awesome_shelter/views/views.xml @@ -13,7 +13,7 @@ - + @@ -25,9 +25,10 @@ awesome_shelter.animal.kanban awesome_shelter.animal - + +