Skip to content

Commit 7dc2168

Browse files
committed
Added POST
1 parent 642b77d commit 7dc2168

File tree

2 files changed

+56
-20
lines changed

2 files changed

+56
-20
lines changed

mirrors/views/mirrorlist.py

Lines changed: 49 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from operator import attrgetter, itemgetter
2+
from urllib.parse import urlparse, urlunsplit
23

34
from django import forms
45
from django.db.models import Q
@@ -13,7 +14,7 @@
1314
from django.views.decorators.csrf import csrf_exempt
1415
from django_countries import countries
1516

16-
from ..models import Mirror, MirrorUrl, MirrorProtocol
17+
from ..models import Mirror, MirrorUrl, MirrorProtocol, MirrorRsync
1718
from ..utils import get_mirror_statuses
1819

1920
import random
@@ -27,8 +28,12 @@
2728

2829
class MirrorRequestForm(forms.ModelForm):
2930
upstream = forms.ModelChoiceField(
30-
queryset=Mirror.objects.filter(tier__gte=0, tier__lte=1),
31-
required=False)
31+
queryset=Mirror.objects.filter(
32+
tier__gte=0,
33+
tier__lte=1
34+
),
35+
required=False
36+
)
3237

3338
class Meta:
3439
model = Mirror
@@ -100,6 +105,21 @@ def as_div(self):
100105
errors_on_separate_row=True)
101106

102107

108+
class MirrorRsyncForm(forms.ModelForm):
109+
class Meta:
110+
model = MirrorRsync
111+
fields = ('ip',)
112+
113+
def as_div(self):
114+
"Returns this form rendered as HTML <divs>s."
115+
return self._html_output(
116+
normal_row=u'<div%(html_class_attr)s>%(label)s %(field)s%(help_text)s</div>',
117+
error_row=u'%s',
118+
row_ender='</div>',
119+
help_text_html=u' <span class="helptext">%s</span>',
120+
errors_on_separate_row=True)
121+
122+
103123
class MirrorlistForm(forms.Form):
104124
country = forms.MultipleChoiceField(required=False, widget=SelectMultiple(attrs={'size': '12'}))
105125
protocol = forms.MultipleChoiceField(required=False, widget=CheckboxSelectMultiple)
@@ -215,22 +235,30 @@ def find_mirrors_simple(request, protocol):
215235
return find_mirrors(request, protocols=[proto])
216236

217237
def submit_mirror(request):
218-
# if request.method == 'POST' or len(request.GET) > 0:
219-
# data = request.POST if request.method == 'POST' else request.GET
220-
# form1 = MirrorUrlForm(data=data)
221-
# if form.is_valid():
222-
# countries = form.cleaned_data['country']
223-
# protocols = form.cleaned_data['protocol']
224-
# use_status = form.cleaned_data['use_mirror_status']
225-
# ipv4 = '4' in form.cleaned_data['ip_version']
226-
# ipv6 = '6' in form.cleaned_data['ip_version']
227-
# return find_mirrors(request, countries, protocols,
228-
# use_status, ipv4, ipv6)
229-
# else:
230-
form1 = MirrorRequestForm()
231-
url1 = MirrorUrlForm()
232-
url2 = MirrorUrlForm()
233-
url3 = MirrorUrlForm()
238+
if request.method == 'POST' or len(request.GET) > 0:
239+
data = request.POST if request.method == 'POST' else request.GET
240+
241+
form1 = MirrorRequestForm(data=data)
242+
url1 = MirrorUrlForm(data=data)
243+
url2 = MirrorUrlForm(data=data)
244+
url3 = MirrorUrlForm(data=data)
245+
rsync = MirrorRsyncForm(data=data)
246+
247+
if form1.is_valid() and url1.is_valid() and url2.is_valid() and url3.is_valid() and rsync.is_valid():
248+
print("Successful")
249+
# countries = form.cleaned_data['country']
250+
# protocols = form.cleaned_data['protocol']
251+
# use_status = form.cleaned_data['use_mirror_status']
252+
# ipv4 = '4' in form.cleaned_data['ip_version']
253+
# ipv6 = '6' in form.cleaned_data['ip_version']
254+
# return find_mirrors(request, countries, protocols,
255+
# use_status, ipv4, ipv6)
256+
else:
257+
form1 = MirrorRequestForm()
258+
url1 = MirrorUrlForm()
259+
url2 = MirrorUrlForm()
260+
url3 = MirrorUrlForm()
261+
rsync = MirrorRsyncForm()
234262

235263
return render(
236264
request,
@@ -239,7 +267,8 @@ def submit_mirror(request):
239267
'submission_form1': form1,
240268
'url1': url1,
241269
'url2': url2,
242-
'url3': url3
270+
'url3': url3,
271+
'rsync' : rsync
243272
}
244273
)
245274

templates/mirrors/mirror_submit.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,22 @@ <h3>Available mirrors</h3>
2020

2121
<h3>Mirror information</h3>
2222

23+
{% if not submission_form1.is_valid %}
2324
<p>Before you can submit a <b>Tier 1</b> request the mirror in question must first be a registered <b>Tier 2</b> for a certain amount of time with proven reliablity. Once the submitted information is verified the mirror will be visible under the appropriate tier list above. This process usually takes 5 minutes.</p>
2425

2526
<form id="list-generator" method="get">
2627
{{ submission_form1.as_div }}
2728
{{ url1.as_div }}
2829
{{ url2.as_div }}
2930
{{ url3.as_div }}
31+
{{ rsync.as_div }}
3032
<p><label></label> <input type="submit" value="Submit Request" /></p>
3133
</form>
34+
{% else %}
35+
<code>
36+
Your request have successfully been submitted and should be visible within 5 minutes in the mirrorlist.
37+
</code>
38+
{% endif %}
3239
</div>
3340
{% endblock %}
3441

0 commit comments

Comments
 (0)