@ -0,0 +1,49 @@ |
|||
.. image:: https://img.shields.io/badge/license-LGPL--3-blue.svg |
|||
:target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html |
|||
:alt: License: LGPL-3 |
|||
|
|||
Warranty Management |
|||
=================== |
|||
Warranty management used to manage warranty of product |
|||
|
|||
Configuration |
|||
============= |
|||
- Additional configuration not required |
|||
|
|||
License |
|||
------- |
|||
General Public License, Version 3 (LGPL v3). |
|||
(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) |
|||
|
|||
Company |
|||
------- |
|||
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ |
|||
|
|||
Credits |
|||
------- |
|||
* Developers: |
|||
(V16) Subina P, |
|||
(V17) Dhanya |
|||
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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from . import controllers |
|||
from . import models |
@ -0,0 +1,57 @@ |
|||
# -*- 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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
{ |
|||
'name': 'Website Warranty Management', |
|||
'version': '18.0.1.0.0', |
|||
'category': 'Sale', |
|||
'summary': 'Warranty management used to manage warranty of product', |
|||
'description': """The "Warranty Management" module enables businesses to |
|||
efficiently track product warranties, including expiration dates and |
|||
associated customer details. Seamlessly integrated with sales processes, |
|||
it facilitates easy warranty claim creation from sales orders and enhances |
|||
customer experience with website warranty registration.""", |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'maintainer': 'Cybrosys Techno Solutions', |
|||
'website': "https://www.cybrosys.com", |
|||
'depends': ['sale_management', 'website'], |
|||
'data': [ |
|||
'data/website_menu_data.xml', |
|||
'security/ir.model.access.csv', |
|||
'views/product_template_views.xml', |
|||
'views/sale_order_views.xml', |
|||
'views/website_registration_templates.xml', |
|||
'views/warranty_claim_views.xml', |
|||
'views/portal_templates.xml', |
|||
], |
|||
'assets': { |
|||
'web.assets_frontend': [ |
|||
'website_warranty_management/static/src/js/website_registration.js', |
|||
'website_warranty_management/static/src/css/warranty.css', |
|||
], |
|||
}, |
|||
'images': ['static/description/banner.jpg'], |
|||
'license': 'LGPL-3', |
|||
'installable': True, |
|||
'application': False, |
|||
'auto_install': 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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from . import portal |
|||
from . import website_warranty_management |
@ -0,0 +1,54 @@ |
|||
# -*- 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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from odoo import http |
|||
from odoo.addons.portal.controllers.portal import CustomerPortal |
|||
from odoo.http import request |
|||
|
|||
|
|||
class PortalAccount(CustomerPortal): |
|||
"""Inherited class to add portal menu for warranty claims""" |
|||
|
|||
def _prepare_home_portal_values(self, counters): |
|||
""" Super the function to add the warranty claim menu""" |
|||
values = super()._prepare_home_portal_values(counters) |
|||
user = request.env.user.partner_id.id |
|||
claim_count = (request.env['warranty.claim']. |
|||
search_count([('customer_id', '=', user)])) |
|||
values['claim_count'] = claim_count |
|||
return values |
|||
|
|||
@http.route('/my/claims', type='http', auth="user", website=True) |
|||
def my_claims(self): |
|||
""" Define the action to open the warranty claim tree view""" |
|||
user = request.env.user.partner_id.id |
|||
claims = (request.env['warranty.claim'].sudo(). |
|||
search([('customer_id', '=', user)])) |
|||
# Extract the required fields and store them in a list of dictionaries |
|||
claim_data = [{ |
|||
'customer_id': claim.customer_id.name, |
|||
'product_id': claim.product_id.name, |
|||
'sale_order_id': claim.sale_order_id.name, |
|||
'status': claim.state, |
|||
} for claim in claims] |
|||
# Pass the claim_data to the template |
|||
return http.request.render('website_warranty_management.portal_warranty_claims', |
|||
{'claim_data': claim_data}) |
@ -0,0 +1,48 @@ |
|||
# -*- 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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from odoo import http |
|||
from odoo.http import request |
|||
|
|||
|
|||
class WarrantyClaimController(http.Controller): |
|||
""" Class for Warranty claim controller""" |
|||
|
|||
@http.route('/warranty', type='http', auth="public", website=True) |
|||
def warranty_claim(self): |
|||
""" Function to pass the warranty claim details to the warranty |
|||
claim page""" |
|||
customers = request.env['res.partner'].sudo().search([]) |
|||
sale_orders = request.env['sale.order'].sudo().search([]) |
|||
products = request.env['product.template'].sudo().search([]) |
|||
return request.render('website_warranty_management.warranty_claim_page', |
|||
{'sale_orders': sale_orders, |
|||
'customers': customers, |
|||
'products': products}) |
|||
|
|||
@http.route('/warranty/claim/submit', type="http", |
|||
auth="public", |
|||
methods=["POST"], |
|||
website=True, |
|||
csrf=False) |
|||
def warranty_claim_submit(self,**kwrgs): |
|||
"""Function to render the claim thanks view""" |
|||
return request.render('website_warranty_management.claim_thanks_view') |
@ -0,0 +1,13 @@ |
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<odoo> |
|||
<!--This XML configuration defines a new menu item for the Odoo website with |
|||
the name "Warranty".--> |
|||
<data noupdate="1"> |
|||
<record id="menu_warranty" model="website.menu"> |
|||
<field name="name">Warranty</field> |
|||
<field name="url">/warranty</field> |
|||
<field name="parent_id" ref="website.main_menu"/> |
|||
<field name="sequence" type="int">50</field> |
|||
</record> |
|||
</data> |
|||
</odoo> |
@ -0,0 +1,6 @@ |
|||
## Module <warranty_management> |
|||
|
|||
#### 25.10.2024 |
|||
#### Version 18.0.1.0.0 |
|||
#### ADD |
|||
- Initial Commit for Warranty Management |
@ -0,0 +1,24 @@ |
|||
# -*- 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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from . import product_template |
|||
from . import sale_order |
|||
from . import warranty_claim |
@ -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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from odoo import fields, models |
|||
|
|||
|
|||
class ProductTemplate(models.Model): |
|||
"""Inherited product template to add fields""" |
|||
_inherit = 'product.template' |
|||
|
|||
is_warranty_available = fields.Boolean(string="Warranty Available", |
|||
help="Boolean field to check" |
|||
"the warranty availability") |
|||
warranty_duration = fields.Integer(string="Warranty Duration (months)", |
|||
help="Warranty duration") |
|||
warranty_expiry = fields.Date(string="Warranty Expiry Date", |
|||
help="Warranty expiry date") |
@ -0,0 +1,76 @@ |
|||
# -*- 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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from dateutil.relativedelta import relativedelta |
|||
from odoo import fields, models |
|||
|
|||
|
|||
class SaleOrder(models.Model): |
|||
"""Inherited sale order to super functions to add additional |
|||
functionalities""" |
|||
_inherit = 'sale.order' |
|||
|
|||
is_warranty_check = fields.Boolean(string='Warranty Check', |
|||
help='Check this box if the item has' |
|||
' warranty.') |
|||
|
|||
def action_confirm(self): |
|||
"""Call the super method to perform the default confirmation |
|||
behavior""" |
|||
super(SaleOrder, self).action_confirm() |
|||
# Loop through the order lines and check warranty for each product |
|||
for order in self: |
|||
for line in order.order_line: |
|||
product = line.product_id |
|||
if product.is_warranty_available: |
|||
self.is_warranty_check = True |
|||
else: |
|||
self.is_warranty_check = False |
|||
if (self.order_line. |
|||
filtered(lambda x: x.product_id.is_warranty_available)): |
|||
self.is_warranty_check = True |
|||
else: |
|||
self.is_warranty_check = False |
|||
|
|||
def action_open_smart_tab(self): |
|||
""" To open warranty smart tab""" |
|||
domain = [ |
|||
('id', 'in', |
|||
self.order_line.mapped('product_id.product_tmpl_id.id')), |
|||
('is_warranty_available', '=', True), |
|||
] |
|||
products_with_warranty = self.env['product.template'].search(domain) |
|||
for product in products_with_warranty: |
|||
# Calculate the warranty expiry date based on the sale order date |
|||
warranty_expiry_date = self.date_order + relativedelta( |
|||
months=product.warranty_duration) |
|||
product.write({'warranty_expiry': warranty_expiry_date}) |
|||
return { |
|||
'type': 'ir.actions.act_window', |
|||
'name': 'Warranty Details', |
|||
'view_mode': 'list,form', |
|||
'res_model': 'product.template', |
|||
'views': [(self.env.ref('website_warranty_management.' |
|||
'product_template_view_tree').id, 'list'), |
|||
(self.env.ref('website_warranty_management.' |
|||
'product_template_view_form').id, 'form')], |
|||
'domain': domain |
|||
} |
@ -0,0 +1,60 @@ |
|||
# -*- 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 LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. |
|||
# |
|||
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE |
|||
# (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################# |
|||
from odoo import fields, models |
|||
|
|||
|
|||
class WarrantyClaim(models.Model): |
|||
""" Warranty claim class to add fields for warranty claim""" |
|||
_name = 'warranty.claim' |
|||
_rec_name = "sale_order_id" |
|||
_description = 'Warranty Claim' |
|||
|
|||
customer_id = fields.Many2one('res.partner', |
|||
string='Customer Name', |
|||
help="Customer selection", |
|||
required=True) |
|||
sale_order_id = fields.Many2one('sale.order', |
|||
help="To select the sale order", |
|||
string='Sale Order') |
|||
product_id = fields.Many2one('product.product', |
|||
string='Product', |
|||
help="To select the product", |
|||
required=True) |
|||
partner_id = fields.Many2one('res.users', string='User', |
|||
help="To select the partner", |
|||
default=lambda self: self.env.user) |
|||
state = fields.Selection( |
|||
[('draft', 'Draft'), ('approved', 'Approved'), |
|||
('rejected', 'Rejected')], default='draft', String="Status", |
|||
help="To select the state") |
|||
product_expiry_date = fields.Date( |
|||
string='Product Expiry Date', help="To get the product expiry date", |
|||
related='product_id.product_tmpl_id.warranty_expiry', |
|||
store=True, readonly=True) |
|||
|
|||
def change_status_approved(self): |
|||
""" Function to change the status of the claim to approved""" |
|||
self.state = 'approved' |
|||
|
|||
def change_status_rejected(self): |
|||
""" Function to change the status of the claim to rejected""" |
|||
self.state = 'rejected' |
|
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 628 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: 153 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: 1.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 589 B |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 967 B |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 1.6 KiB |