@ -0,0 +1,48 @@ |
|||||
|
.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg |
||||
|
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html |
||||
|
:alt: License: AGPL-3 |
||||
|
|
||||
|
Website pre booking |
||||
|
=================== |
||||
|
This module will help you to managing prebooking management in website. |
||||
|
|
||||
|
Configuration |
||||
|
============= |
||||
|
* No additional configurations needed |
||||
|
|
||||
|
Company |
||||
|
------- |
||||
|
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ |
||||
|
|
||||
|
License |
||||
|
------- |
||||
|
Affero General Public License v3.0 (AGPL v3) |
||||
|
(https://www.odoo.com/documentation/16.0/legal/licenses.html) |
||||
|
|
||||
|
Credits |
||||
|
------- |
||||
|
Developer: (V17) Vishnu KP |
||||
|
(V18) Gayathri V |
||||
|
Contact : odoo@cybrosys.com |
||||
|
|
||||
|
Contacts |
||||
|
-------- |
||||
|
* Mail Contact : odoo@cybrosys.com |
||||
|
* Website : https://cybrosys.com |
||||
|
|
||||
|
Bug Tracker |
||||
|
----------- |
||||
|
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. |
||||
|
|
||||
|
Maintainer |
||||
|
========== |
||||
|
.. image:: https://cybrosys.com/images/logo.png |
||||
|
:target: https://cybrosys.com |
||||
|
|
||||
|
This module is maintained by Cybrosys Technologies. |
||||
|
|
||||
|
For support and more information, please visit `Our Website <https://cybrosys.com/>`__ |
||||
|
|
||||
|
Further information |
||||
|
=================== |
||||
|
HTML Description: `<static/description/index.html>`__ |
@ -0,0 +1,23 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from . import controllers |
||||
|
from . import models |
@ -0,0 +1,55 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
{ |
||||
|
'name': 'Website Pre Booking', |
||||
|
'version': '18.0.1.0.0', |
||||
|
'category': 'Website', |
||||
|
'summary': 'Allows pre booking option for website', |
||||
|
'description': """This module will help you to managing prebooking of |
||||
|
product management in website""", |
||||
|
'author': 'Cybrosys Techno Solutions', |
||||
|
'company': 'Cybrosys Techno Solutions', |
||||
|
'maintainer': 'Cybrosys Techno Solutions', |
||||
|
'website': "https://www.cybrosys.com", |
||||
|
'depends': ['portal', 'website_sale'], |
||||
|
'data': [ |
||||
|
'security/ir.model.access.csv', |
||||
|
'data/ir_sequence_data.xml', |
||||
|
'views/portal_views.xml', |
||||
|
'views/website_prebook_views.xml', |
||||
|
'views/website_sale_inherit.xml', |
||||
|
'views/prebook_details_template.xml', |
||||
|
'views/pre_booking_template.xml', |
||||
|
'views/product_template_views.xml', |
||||
|
], |
||||
|
'assets': { |
||||
|
'web.assets_frontend': [ |
||||
|
'/website_pre_booking/static/src/css/prebooking.css', |
||||
|
'/website_pre_booking/static/src/js/pre_booking.js' |
||||
|
], |
||||
|
}, |
||||
|
'images': ['static/description/banner.png'], |
||||
|
'license': 'AGPL-3', |
||||
|
'installable': True, |
||||
|
'auto_install': False, |
||||
|
'application': False, |
||||
|
} |
@ -0,0 +1,23 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from . import pre_booking_portal |
||||
|
from . import website_pre_booking |
@ -0,0 +1,47 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from odoo import http, _ |
||||
|
from odoo.http import request |
||||
|
from odoo.addons.portal.controllers import portal |
||||
|
|
||||
|
|
||||
|
class CustomerPortal(portal.CustomerPortal): |
||||
|
"""Used to manage a customer portal""" |
||||
|
def _prepare_home_portal_values(self, counters): |
||||
|
"""Super the function to add new button in the home portal""" |
||||
|
values = super()._prepare_home_portal_values(counters) |
||||
|
if 'pre_bookings_count' in counters: |
||||
|
current_user = request.env['res.users'].sudo().browse( |
||||
|
request.env.uid) |
||||
|
pre_bookings_count = request.env['website.prebook'].search_count([('partner_id', '=', current_user.partner_id.id)]) |
||||
|
values['pre_bookings_count'] = pre_bookings_count |
||||
|
return values |
||||
|
|
||||
|
@http.route(['/my/pre_bookings'], type='http', auth="user", website=True) |
||||
|
def portal_my_pre_bookings(self, **kwargs): |
||||
|
"""Function to view the logined user pre bookings in the account.""" |
||||
|
current_user = request.env['res.users'].sudo().browse(request.env.uid) |
||||
|
pre_booking = request.env['website.prebook'].sudo().search( |
||||
|
[('partner_id', '=', current_user.partner_id.id)]) |
||||
|
return request.render("website_pre_booking.portal_my_pre_bookings", |
||||
|
{'pre_bookings': pre_booking, |
||||
|
'page_name': 'pre_booking'}) |
@ -0,0 +1,124 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from odoo import fields, http, _ |
||||
|
from odoo.http import request |
||||
|
|
||||
|
|
||||
|
class CustomerPortal(http.Controller): |
||||
|
"""Used to manage a customer portal""" |
||||
|
|
||||
|
@http.route(['/my/prebook_request/<model("product.template"):product>'], |
||||
|
type='http', auth="public", website=True) |
||||
|
def portal_my_employee_request(self, product, **kwargs): |
||||
|
"""Pre-book button to pre-book the product""" |
||||
|
if kwargs.get('prod_qty'): |
||||
|
vals = { |
||||
|
'product': product.id, |
||||
|
'quantity': int(kwargs.get('prod_qty')) |
||||
|
} |
||||
|
current_user = request.env['res.users'].sudo().browse( |
||||
|
request.session.uid) |
||||
|
partner = current_user.partner_id |
||||
|
if kwargs.get('category'): |
||||
|
product_qty = int(kwargs['category'].split('=')[1]) |
||||
|
else: |
||||
|
product_qty = int(kwargs.get('prod_qty')) |
||||
|
if request.session.uid: |
||||
|
pre_booking = request.env['website.prebook'].sudo().create({ |
||||
|
'partner_id': partner.id, |
||||
|
'booking_date': fields.datetime.today(), |
||||
|
'product_id': product.id, |
||||
|
'quantity': product_qty, |
||||
|
'website_id': request.website.id, |
||||
|
}) |
||||
|
if pre_booking: |
||||
|
max_quantity = product.pre_max_quantity |
||||
|
product.sudo().write({'pre_max_quantity': int(max_quantity - product_qty)}) |
||||
|
|
||||
|
return request.render("website_pre_booking.pre_booking_done", |
||||
|
{'ref': pre_booking.reference}) |
||||
|
|
||||
|
else: |
||||
|
return request.render("website_pre_booking.prebook_address", vals) |
||||
|
|
||||
|
@http.route(['/prebook/address'], type='http', methods=['GET', 'POST'], |
||||
|
auth="public", website=True, sitemap=False) |
||||
|
def pre_address(self, **kw): |
||||
|
"""If not login, create a new user""" |
||||
|
product = request.env['product.template'].sudo().browse( |
||||
|
int(kw.get('product'))) |
||||
|
partner = request.env['res.partner'].sudo().create({ |
||||
|
'name': kw.get('name'), |
||||
|
'email': kw.get('email'), |
||||
|
'phone': kw.get('phone'), |
||||
|
}) |
||||
|
pre_booking = request.env['website.prebook'].sudo().create({ |
||||
|
'partner_id': partner.id, |
||||
|
'booking_date': fields.datetime.today(), |
||||
|
'product_id': product.id, |
||||
|
'quantity': int(kw.get('quantity')) |
||||
|
}) |
||||
|
if pre_booking: |
||||
|
max_quantity = product.pre_max_quantity |
||||
|
product.pre_max_quantity = max_quantity - 1 |
||||
|
return request.render("website_pre_booking.pre_booking_done", |
||||
|
{'ref': pre_booking.reference}) |
||||
|
|
||||
|
@http.route('/track/prebooking', website=True, auth='user', csrf=False) |
||||
|
def submit_booking(self, **kwargs): |
||||
|
"""For tracking the specific pre-orders using refernce code""" |
||||
|
bookings = request.env['website.prebook'].sudo().search( |
||||
|
[('reference', '=', kwargs.get('reference'))]) |
||||
|
if bookings and bookings.sale_id: |
||||
|
if bookings.sale_id.state == 'draft': |
||||
|
state = 'Quotation' |
||||
|
elif bookings.sale_id.state == 'sent': |
||||
|
state = 'Quotation Sent' |
||||
|
elif bookings.sale_id.state == 'sale': |
||||
|
state = 'Sales Order' |
||||
|
elif bookings.sale_id.state == 'done': |
||||
|
state = 'Locked' |
||||
|
elif bookings.sale_id.state == 'cancel': |
||||
|
state = 'Cancelled' |
||||
|
else: |
||||
|
state = 'Draft' |
||||
|
vals = { |
||||
|
'reference': bookings.reference, |
||||
|
'product': bookings.product_id.name, |
||||
|
'status': state if bookings.sale_id else bookings.state, |
||||
|
'date': bookings.booking_date, |
||||
|
} |
||||
|
return request.render("website_pre_booking.my_booking_template", |
||||
|
vals) |
||||
|
|
||||
|
@http.route(['/my/prebookings', '/my/prebookings/page/<int:page>'], |
||||
|
type='http', auth="user", website=True) |
||||
|
def my_prebookings(self): |
||||
|
"""Can track the pre bookings from the website""" |
||||
|
value = [] |
||||
|
values = {'value': value} |
||||
|
return request.render("website_pre_booking.my_booking_template", values) |
||||
|
|
||||
|
@http.route(['/sale/fail'], type='http', auth="user", website=True) |
||||
|
def my_prebookings_fail(self): |
||||
|
"""Can track the pre bookings from the website""" |
||||
|
return request.render("website_pre_booking.pre_booking_failed") |
@ -0,0 +1,13 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<data> |
||||
|
<!-- Sequences for prebooking --> |
||||
|
<record id="seq_booking" model="ir.sequence"> |
||||
|
<field name="name">Pre Booking</field> |
||||
|
<field name="code">prebook.sequence</field> |
||||
|
<field name="prefix">PB</field> |
||||
|
<field name="padding">4</field> |
||||
|
<field name="company_id" eval="False"/> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,6 @@ |
|||||
|
## Module <website_pre_booking> |
||||
|
|
||||
|
#### 30.10.2024 |
||||
|
#### Version 18.0.1.0.0 |
||||
|
##### ADD |
||||
|
- Initial commit for Website Pre Booking |
@ -0,0 +1,23 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from . import product_template |
||||
|
from . import website_prebook |
@ -0,0 +1,35 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from odoo import fields, models |
||||
|
|
||||
|
|
||||
|
class ProductTemplate(models.Model): |
||||
|
""" Class for inheriting product.template model to adding new fields""" |
||||
|
_inherit = 'product.template' |
||||
|
|
||||
|
pre_book = fields.Boolean(string='Pre Booking Available', |
||||
|
help='Enabling this field to identify the prebook') |
||||
|
from_date = fields.Date(string='From Date', |
||||
|
help='Prebook available from date') |
||||
|
to_date = fields.Date(string='To Date',help='Prebook available to date') |
||||
|
pre_max_quantity = fields.Integer(string="Pre Book Maximum Quantity", |
||||
|
help='Maximum quantity to pre book') |
@ -0,0 +1,86 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################# |
||||
|
# |
||||
|
# Cybrosys Technologies Pvt. Ltd. |
||||
|
# |
||||
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
||||
|
# Author: Gayathri V(<https://www.cybrosys.com>) |
||||
|
# |
||||
|
# You can modify it under the terms of the GNU AFFERO |
||||
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
|
# (AGPL v3) along with this program. |
||||
|
# If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################# |
||||
|
from odoo import api, fields, models, _ |
||||
|
|
||||
|
|
||||
|
class WebsitePrebook(models.Model): |
||||
|
""" Class for defining website. Prebook model""" |
||||
|
_name = 'website.prebook' |
||||
|
_rec_name = 'reference' |
||||
|
|
||||
|
partner_id = fields.Many2one('res.partner', string="Customer", |
||||
|
help="Add the customer name") |
||||
|
booking_date = fields.Date('Booking Date', help="Pre booking date") |
||||
|
product_id = fields.Many2one('product.template', string="Product", |
||||
|
help="Add the product") |
||||
|
state = fields.Selection([ |
||||
|
('draft', 'Draft'), |
||||
|
('confirm', 'Confirmed'), |
||||
|
], string='Status', default='draft', help="state of pre-booking" |
||||
|
) |
||||
|
website_id = fields.Many2one( |
||||
|
"website", |
||||
|
string="Website", |
||||
|
ondelete="restrict", |
||||
|
index=True, |
||||
|
readonly=True, help="name of the website" |
||||
|
) |
||||
|
reference = fields.Char(string='Reference', required=True, copy=False, |
||||
|
readonly=True, |
||||
|
default=lambda self: _('New')) |
||||
|
sale_id = fields.Many2one('sale.order', string='Sale order', |
||||
|
help="sale order") |
||||
|
quantity = fields.Integer(string='Quantity') |
||||
|
|
||||
|
@api.model |
||||
|
def create(self, vals): |
||||
|
"""Supering create function for creating sequence""" |
||||
|
if vals.get('reference', _('New')) == _('New'): |
||||
|
vals['reference'] = self.env['ir.sequence'].next_by_code('prebook.sequence') or _('New') |
||||
|
return super(WebsitePrebook, self).create(vals) |
||||
|
|
||||
|
def action_confirm(self): |
||||
|
"""Sale order creation while confirming the button""" |
||||
|
sale_order = self.env['sale.order'].create({ |
||||
|
'partner_id': self.partner_id.id, |
||||
|
'website_id': self.website_id.id, |
||||
|
'order_line': [(0, 0, { |
||||
|
'product_template_id': self.product_id.id, |
||||
|
'product_id': self.product_id.product_variant_id.id, |
||||
|
'name': self.product_id.product_variant_id.name, |
||||
|
'product_uom_qty': self.quantity, |
||||
|
})], |
||||
|
}) |
||||
|
self.sale_id = sale_order.id |
||||
|
self.state = 'confirm' |
||||
|
|
||||
|
def action_view_sale_order(self): |
||||
|
"""Smart button view function""" |
||||
|
return { |
||||
|
'name': 'Sale Order', |
||||
|
'view_mode': 'form', |
||||
|
'view_type': 'form', |
||||
|
'view_id': self.env.ref('sale.view_order_form').id, |
||||
|
'res_id': self.sale_id.id, |
||||
|
'res_model': 'sale.order', |
||||
|
'type': 'ir.actions.act_window', |
||||
|
} |
|
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 210 KiB |
After Width: | Height: | Size: 209 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 495 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 624 B |
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 214 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 310 B |
After Width: | Height: | Size: 929 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 542 B |
After Width: | Height: | Size: 576 B |
After Width: | Height: | Size: 733 B |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 182 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 911 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 600 B |
After Width: | Height: | Size: 673 B |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 462 B |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 926 B |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 878 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 653 B |
After Width: | Height: | Size: 800 B |
After Width: | Height: | Size: 905 B |
After Width: | Height: | Size: 189 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 839 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 427 B |
After Width: | Height: | Size: 627 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 988 B |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 875 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 912 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 164 KiB |