mirror of
https://github.com/bryangerlach/rdgen.git
synced 2025-11-29 00:23:27 +00:00
force icon dimensions to be square
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
class GenerateForm(forms.Form):
|
class GenerateForm(forms.Form):
|
||||||
#Platform
|
#Platform
|
||||||
@@ -76,4 +77,28 @@ class GenerateForm(forms.Form):
|
|||||||
xOffline = forms.BooleanField(initial=False, required=False)
|
xOffline = forms.BooleanField(initial=False, required=False)
|
||||||
hidecm = forms.BooleanField(initial=False, required=False)
|
hidecm = forms.BooleanField(initial=False, required=False)
|
||||||
statussort = forms.BooleanField(initial=False, required=False)
|
statussort = forms.BooleanField(initial=False, required=False)
|
||||||
removeNewVersionNotif = forms.BooleanField(initial=False, required=False)
|
removeNewVersionNotif = forms.BooleanField(initial=False, required=False)
|
||||||
|
|
||||||
|
def clean_iconfile(self):
|
||||||
|
print("checking icon")
|
||||||
|
image = self.cleaned_data['iconfile']
|
||||||
|
try:
|
||||||
|
# Open the image using Pillow
|
||||||
|
img = Image.open(image)
|
||||||
|
|
||||||
|
# Check if the image is a PNG (optional, but good practice)
|
||||||
|
if img.format != 'PNG':
|
||||||
|
raise forms.ValidationError("Only PNG images are allowed.")
|
||||||
|
|
||||||
|
# Get image dimensions
|
||||||
|
width, height = img.size
|
||||||
|
|
||||||
|
# Check for square dimensions
|
||||||
|
if width != height:
|
||||||
|
raise forms.ValidationError("Custom App Icon dimensions must be square.")
|
||||||
|
|
||||||
|
return image
|
||||||
|
except OSError: # Handle cases where the uploaded file is not a valid image
|
||||||
|
raise forms.ValidationError("Invalid icon file.")
|
||||||
|
except Exception as e: # Catch any other image processing errors
|
||||||
|
raise forms.ValidationError(f"Error processing icon: {e}")
|
||||||
@@ -122,6 +122,20 @@
|
|||||||
.error {
|
.error {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
.errorlist {
|
||||||
|
color: red;
|
||||||
|
display: flex; /* Enable flexbox for centering */
|
||||||
|
justify-content: center; /* Center horizontally */
|
||||||
|
align-items: center; /* Center vertically (if needed) */
|
||||||
|
list-style: none; /* Remove bullet points if it's a list */
|
||||||
|
padding: 0; /* Remove default padding */
|
||||||
|
margin: 10px auto; /* Center the list itself, add some top/bottom margin */
|
||||||
|
width: fit-content; /* Make the width fit the content */
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorlist li {
|
||||||
|
margin: 5px; /* Add some spacing between list items */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -137,6 +151,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% if form.iconfile.errors %}
|
||||||
|
<ul class="errorlist">
|
||||||
|
{% for error in form.iconfile.errors %}
|
||||||
|
<li>{{ error }}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
<div class="platform">
|
<div class="platform">
|
||||||
<h2><i class="fas fa-desktop"></i> Select Platform</h2>
|
<h2><i class="fas fa-desktop"></i> Select Platform</h2>
|
||||||
<div class="platform-icons">
|
<div class="platform-icons">
|
||||||
|
|||||||
Reference in New Issue
Block a user