Merge lp:~keegan-csmith/umonya-website/application-forms into lp:~umonya/umonya-website/umonya-website
- application-forms
- Merge into umonya-website
Status: | Needs review |
---|---|
Proposed branch: | lp:~keegan-csmith/umonya-website/application-forms |
Merge into: | lp:~umonya/umonya-website/umonya-website |
Diff against target: |
1809 lines (+1382/-165) 32 files modified
.bzrignore (+1/-0) README (+28/-0) misc/db.txt (+93/-0) misc/history_and_team (+60/-0) requirements.txt (+3/-0) umonya/apply/admin.py (+13/-0) umonya/apply/forms.py (+50/-0) umonya/apply/models.py (+126/-54) umonya/apply/static/js/jquery.min.js (+154/-0) umonya/apply/templates/apply.html (+20/-0) umonya/apply/templates/events.html (+29/-0) umonya/apply/tests.py (+0/-23) umonya/apply/urls.py (+3/-1) umonya/apply/views.py (+114/-6) umonya/content/admin.py (+5/-0) umonya/content/fixtures/initial_data.json (+68/-0) umonya/content/models.py (+16/-0) umonya/content/static/css/style.css (+206/-0) umonya/content/templates/about-us.html (+49/-0) umonya/content/templates/contact-us.html (+13/-0) umonya/content/templates/get-involved.html (+55/-0) umonya/content/templates/home.html (+39/-0) umonya/content/templates/media.html (+14/-0) umonya/content/templates/resources.html (+34/-0) umonya/content/templates/sponsors.html (+28/-0) umonya/content/urls.py (+16/-0) umonya/content/views.py (+11/-0) umonya/form.html (+0/-10) umonya/manage.py (+1/-1) umonya/settings.py (+74/-52) umonya/templates/base.html (+43/-0) umonya/urls.py (+16/-18) |
To merge this branch: | bzr merge lp:~keegan-csmith/umonya-website/application-forms |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Umonya | Pending | ||
Review via email: mp+68996@code.launchpad.net |
Commit message
Description of the change
Most important change is the content is merged in.
Other Important Changes
-------
* Use Django 1.3
* Some code for events/workshops, but not complete. This will not affect the website unless an event is added through the admin interface.
Things that are missing which might be a blocker
-------
* Contact form just has a link to the email
* Contributor info is incomplete, so is not added
* CSS needs to be fixed for Sponsor pages. Images overflow at the moment.
Unmerged revisions
- 45. By Keegan Carruthers-Smith
-
Use uni-form for pretty HTML forms.
- 44. By Keegan Carruthers-Smith
-
Merged in content branch.
- 43. By Keegan Carruthers-Smith
-
Added workshop blurb to events page.
- 42. By Keegan Carruthers-Smith
-
Updated about-us.html
- 41. By Keegan Carruthers-Smith
-
Commented out boilerplate in media.html
- 40. By Keegan Carruthers-Smith
-
Updated get-involved.html
- 39. By Keegan Carruthers-Smith
-
Updated resources.html
- 38. By Keegan Carruthers-Smith
-
Made sponsor page database backed.
S1 is still missing a logo, and Silicon Cape is missing a description. The CSS
also needs to be fixed to prevent overflow of logo. - 37. By Keegan Carruthers-Smith
-
Renamed skeleton.html to the more conventional base.html
- 36. By Keegan Carruthers-Smith
-
Removed the messages app, since it is unused.
Preview Diff
1 | === added file '.bzrignore' |
2 | --- .bzrignore 1970-01-01 00:00:00 +0000 |
3 | +++ .bzrignore 2011-07-24 15:31:18 +0000 |
4 | @@ -0,0 +1,1 @@ |
5 | +umonya.db |
6 | |
7 | === added file 'README' |
8 | --- README 1970-01-01 00:00:00 +0000 |
9 | +++ README 2011-07-24 15:31:18 +0000 |
10 | @@ -0,0 +1,28 @@ |
11 | +.. -*- mode: rst -*- |
12 | + |
13 | +================ |
14 | + Umonya Website |
15 | +================ |
16 | + |
17 | +This repository stores the code for http://umonya.co.za/ |
18 | + |
19 | +The canonical location for this repository is at |
20 | +http://code.launchpad.net/umonya-website/ [bzr]. |
21 | + |
22 | +Alternative mirrors: |
23 | + |
24 | +* https://bitbucket.org/keegan_csmith/umonya-website [hg] |
25 | +* https://github.com/keegancsmith/Umonya-Website [git] |
26 | + |
27 | + |
28 | +Deployment |
29 | +========== |
30 | + |
31 | +It is expected that this website is deployed using a virtual environment. You |
32 | +can install the requirements using:: |
33 | + |
34 | + pip install -r requirements.txt |
35 | + |
36 | +Hosting can then be done using any webserver that supports WSGI. There are |
37 | +alternative methods of deploying this website, see the Django documentation |
38 | +for more options. |
39 | |
40 | === added directory 'misc' |
41 | === added file 'misc/db.txt' |
42 | --- misc/db.txt 1970-01-01 00:00:00 +0000 |
43 | +++ misc/db.txt 2011-07-24 15:31:18 +0000 |
44 | @@ -0,0 +1,93 @@ |
45 | +learner_tb |
46 | +--------- |
47 | +learner_id - (GUID) char(??) |
48 | +first_name - varchar(30) |
49 | +last_name - varchar(30) |
50 | +school_id - int |
51 | +alt_event(false) - boolean |
52 | +grade - unsigned shortint |
53 | +email - varchar(50) |
54 | +contact_no - varchar(20) |
55 | +alt_contact_no - varchar(20) |
56 | +active_ind(true) - boolean |
57 | + |
58 | +teacher_tb |
59 | +---------- |
60 | +teacher_id - (GUID) char(??) |
61 | +first_name - varchar(30) |
62 | +last_name - varchar(30) |
63 | +school_id - int |
64 | +email - varchar(50) |
65 | +contact_no - varchar(20) |
66 | +active_ind(true) - boolean |
67 | + |
68 | +application_tb |
69 | +-------------- |
70 | +learner_id - (GUID) char(??) |
71 | +event_id - int |
72 | +created_datetime - datetime |
73 | +motivation - varchar(1000) |
74 | +[special_motivation] - varchar(1000) |
75 | +referral_source_id - int |
76 | +[teacher_id] - (GUID) char(??) |
77 | +status_id(Incomplete)- int |
78 | +[status_reviewer_id] - int |
79 | +active_ind(true) - boolean |
80 | + |
81 | +event_tb |
82 | +-------- |
83 | +event_id - int |
84 | +start_datetime - datetime |
85 | +end_datetime - datetime |
86 | +location_id - int |
87 | +application_deadline - datetime |
88 | +url - varchar(100) |
89 | +active_ind(true) - boolean |
90 | + |
91 | +status_tb |
92 | +--------- |
93 | +status_id - int |
94 | +description - varchar(100) |
95 | + |
96 | +schools_tb |
97 | +---------- |
98 | +school_id - int |
99 | +name - varchar(100) |
100 | +region_id - int |
101 | + |
102 | +referral_source_tb |
103 | +------------------ |
104 | +referral_source_id - int |
105 | +description - varchar(100) |
106 | + |
107 | +region_tb |
108 | +--------- |
109 | +region_id - int |
110 | +name - varchar(100) |
111 | + |
112 | +location_tb |
113 | +----------- |
114 | +location_id - int |
115 | +region_id - int |
116 | +address - varchar(100) |
117 | + |
118 | +reviewer_tb |
119 | +----------- |
120 | +reviewer_id - int |
121 | +name - varchar(30) |
122 | +email - varchar(50) |
123 | +salt - char(10) |
124 | +password_hash - char(??) |
125 | +admin(false) - boolean |
126 | +event_admin - many-to-many event_id |
127 | +event_reviewer - many-to-many event_id |
128 | + |
129 | +review_tb |
130 | +--------- |
131 | +student_id - int |
132 | +event_id - int |
133 | +created_datetime - datetime |
134 | +reviewer_id - int |
135 | +[status_id] - int |
136 | +[comment] - varchar(300) |
137 | +[rating] - unsigned shortint |
138 | |
139 | === added file 'misc/history_and_team' |
140 | --- misc/history_and_team 1970-01-01 00:00:00 +0000 |
141 | +++ misc/history_and_team 2011-07-24 15:31:18 +0000 |
142 | @@ -0,0 +1,60 @@ |
143 | +Umonya was born out of the UCT Algorithm Circle [link to website]. We began by introducing the Python programming language to a small group of learners from the UCT Maths Circle, who found the course immensely enjoyable. This first success prompted us to reach out to a larger number of learners; we decided to venture into new terrain and advertise to all schools in Cape Town. |
144 | + |
145 | +A week later we had received over a hundred applications from thirty schools. The response exceeded even our most abmitious expectations, and as such we had to limit our acceptance to fourty-five students. The response to this pilot was phenominal. The learners performed exceptionally under the guidance of their student tutors, who took great pleasure in the learners' progress. By the end of the workshop, attendees with no prior experience were able to write fully functioning programmes. |
146 | + |
147 | +#IFDEF CATCH_PHRASE |
148 | +#include "As for us, one thing became readily apparent: Project Umonya was going to be far more than just a course, it was to be a community.h" |
149 | +#ENDIF |
150 | + |
151 | +Following the succes of the pilot, we quickly realised the potential of Project Umonya and organised larger workshops in Cape Town and Stellenbosch. As part of its CS4HS initiative <link>, Google later awarded us funding to extend the reach of the project beyond the borders of the Western Cape. We have since grown from the initial ten volunteers to the full spectrum listed below: |
152 | + |
153 | +// TODO: formatting |
154 | +TODO: This will need to be updated once we've restructured the core team |
155 | + |
156 | +Core team: |
157 | + |
158 | +Marco Gallotta: MSc student in bioinformatics. Umonya founder, lead organiser and lecturer. |
159 | +http://www.gravatar.com/avatar/89cff7a629a2782ebc5805675fcb09f0?s=128&d=identicon&r=PG |
160 | +Robert Ketteringham: 3rd Year Electonic Engineering student at Stellenbosch University. Course lectturer, tutor and coordinator? |
161 | +Hayley McIntosh: |
162 | +Steve Kroon: Senior Lecturer in Computer Science at Stellenbosch University. Course co-ordinator for past Stellenbosch courses. ( http://imgur.com/O1Wur ) |
163 | +Ryan Goosen: MSc(Med) Medical Biochemistry student (previous background in Comp. Sci). Umonya website development lead, lecturer, tutor. |
164 | + |
165 | +Lecturers: |
166 | + |
167 | +Michiel Baird: |
168 | +Henk Joubert: |
169 | +Graham Poulter: |
170 | +Kosie van der Merwe: 2nd Year BSc student at University of Cape Town, with majors in Computer Science and Mathematics.( http://imgur.com/QEYms ) |
171 | + |
172 | +-- in a scroll box -- |
173 | +Tutors: |
174 | + |
175 | +Gwylim Ashley |
176 | +Jason Brownbridge |
177 | +Jan Buys |
178 | +Tslil Clingman |
179 | +Kieren Davies |
180 | +Roland Elliot |
181 | +Rory Grandin |
182 | +Maia Grotepass |
183 | +Yaseen Hamdulay |
184 | +Julian Kenwood |
185 | +Graham Manuell |
186 | +Vaughan Newton |
187 | +Helge Reikeras |
188 | +Stefano Rivera |
189 | +Nina Schiff |
190 | +Ben Steenhuisen |
191 | +Flora Tasse |
192 | +Alexander van Olst |
193 | +Rizmari Versfeld |
194 | + |
195 | +Additional volunteers: |
196 | + |
197 | +Doug Kisbaka |
198 | +Schalk-Willem Krüger |
199 | +Matthew Laten |
200 | +Francois Loubser |
201 | +James Saunders |
202 | + |
203 | |
204 | === added file 'requirements.txt' |
205 | --- requirements.txt 1970-01-01 00:00:00 +0000 |
206 | +++ requirements.txt 2011-07-24 15:31:18 +0000 |
207 | @@ -0,0 +1,3 @@ |
208 | +Django==1.3 |
209 | +django-annoying==0.7.6 |
210 | +django-uni-form==0.8.0 |
211 | |
212 | === removed file 'umonya/README' |
213 | === added file 'umonya/apply/admin.py' |
214 | --- umonya/apply/admin.py 1970-01-01 00:00:00 +0000 |
215 | +++ umonya/apply/admin.py 2011-07-24 15:31:18 +0000 |
216 | @@ -0,0 +1,13 @@ |
217 | +from umonya.apply.models import * |
218 | +from django.contrib import admin |
219 | + |
220 | +for model in (Student, Event, Teacher, Reviewer, Review, |
221 | + Location, Region, School): |
222 | + admin.site.register(model) |
223 | + |
224 | + |
225 | +class ApplicationAdmin(admin.ModelAdmin): |
226 | + list_display = ('student', 'status', 'completed', 'email_sent', |
227 | + 'rsvped', 'active_ind') |
228 | + list_filter = ('completed', 'email_sent', 'rsvped', 'active_ind') |
229 | +admin.site.register(Application, ApplicationAdmin) |
230 | |
231 | === added file 'umonya/apply/forms.py' |
232 | --- umonya/apply/forms.py 1970-01-01 00:00:00 +0000 |
233 | +++ umonya/apply/forms.py 2011-07-24 15:31:18 +0000 |
234 | @@ -0,0 +1,50 @@ |
235 | +from umonya.apply.models import * |
236 | + |
237 | +from django import forms |
238 | +from uni_form.helpers import FormHelper, Submit |
239 | + |
240 | + |
241 | +class UniFormSubmitForm(forms.Form): |
242 | + |
243 | + @property |
244 | + def helper(self): |
245 | + helper = FormHelper() |
246 | + submit = Submit('submit', 'Submit your application') |
247 | + helper.add_input(submit) |
248 | + helper.form_action = self.form_action |
249 | + helper.form_method = 'POST' |
250 | + return helper |
251 | + |
252 | + |
253 | +class StudentApplyForm(UniFormSubmitForm): |
254 | + first_name = forms.CharField(max_length=30) |
255 | + last_name = forms.CharField(max_length=30) |
256 | + school = forms.CharField(max_length=50) |
257 | + alt_event = forms.BooleanField( |
258 | + label='Would you like to receive an email about alternate events ' |
259 | + 'if we can not accept you for this one?', |
260 | + required=False) |
261 | + grade = forms.IntegerField() |
262 | + email = forms.EmailField(label='Email address') |
263 | + contact_no = forms.CharField(max_length=20, label='Phone number') |
264 | + alt_contact_no = forms.CharField( |
265 | + max_length = 20, |
266 | + required = False, |
267 | + label = 'Parent\'s phone number') |
268 | + motivation = forms.CharField( |
269 | + widget = forms.widgets.Textarea(), |
270 | + max_length = 600, |
271 | + label = 'Please explain briefly (max. 600 characters) why you ' |
272 | + 'think you should be considered for this course.') |
273 | + |
274 | + form_action = 'apply' |
275 | + |
276 | + |
277 | +class TeacherApplyForm(UniFormSubmitForm): |
278 | + first_name = forms.CharField(max_length=30) |
279 | + last_name = forms.CharField(max_length=30) |
280 | + school = forms.CharField(max_length=50) |
281 | + email = forms.EmailField(label='email address') |
282 | + contact_no = forms.CharField(max_length=20, label='Phone number') |
283 | + |
284 | + form_action = 'apply' |
285 | |
286 | === modified file 'umonya/apply/models.py' |
287 | --- umonya/apply/models.py 2011-02-13 09:13:18 +0000 |
288 | +++ umonya/apply/models.py 2011-07-24 15:31:18 +0000 |
289 | @@ -1,74 +1,146 @@ |
290 | +import datetime |
291 | + |
292 | from django.db import models |
293 | |
294 | class Region(models.Model): |
295 | name = models.CharField(max_length=100) |
296 | |
297 | + def __unicode__(self): |
298 | + return self.name |
299 | + |
300 | + |
301 | +class Location(models.Model): |
302 | + region = models.ForeignKey(Region, related_name="locations") |
303 | + address = models.CharField(max_length=100) |
304 | + |
305 | + def __unicode__(self): |
306 | + return self.address |
307 | + |
308 | + |
309 | +class Status(models.Model): |
310 | + description = models.CharField(max_length=100) |
311 | + |
312 | + def __unicode__(self): |
313 | + return self.description |
314 | + |
315 | + |
316 | +class ReferralSource(models.Model): |
317 | + description = models.CharField(max_length=100) |
318 | + |
319 | + def __unicode__(self): |
320 | + return self.description |
321 | + |
322 | + |
323 | class School(models.Model): |
324 | - name = models.CharField(max_length=100) |
325 | + name = models.CharField(max_length=100) |
326 | region = models.ForeignKey(Region, related_name="schools") |
327 | |
328 | -class Location(models.Model): |
329 | - region = models.ForeignKey(Region, related_name="locations") |
330 | - address = models.CharField(max_length=100) |
331 | + def __unicode__(self): |
332 | + return self.name |
333 | + |
334 | + |
335 | +class Student(models.Model): |
336 | + student_id = models.CharField(max_length=36, unique=True) |
337 | + first_name = models.CharField(max_length=30, null=True, blank=True) |
338 | + last_name = models.CharField(max_length=30, null=True, blank=True) |
339 | + school = models.ForeignKey(School, related_name="students", null=True, blank=True) |
340 | + alt_event = models.BooleanField(default=False) |
341 | + grade = models.IntegerField(null=True, blank=True) |
342 | + email = models.EmailField() |
343 | + contact_no = models.CharField(max_length=20, null=True, blank=True) |
344 | + alt_contact_no = models.CharField(max_length=20, null=True, blank=True) |
345 | + active_ind = models.BooleanField(default=True) |
346 | + |
347 | + def __unicode__(self): |
348 | + return '%s %s (%s)' % (self.first_name, self.last_name, self.school.name) |
349 | + |
350 | |
351 | class Event(models.Model): |
352 | - datetime = models.DateTimeField() |
353 | - location = models.ForeignKey(Location, related_name="events") |
354 | - url = models.URLField(max_length=100) |
355 | + start_datetime = models.DateTimeField() |
356 | + end_datetime = models.DateTimeField() |
357 | + location = models.ForeignKey(Location, related_name="events") |
358 | + url = models.URLField(max_length=100) |
359 | + active_ind = models.BooleanField(default=True) |
360 | + |
361 | + @classmethod |
362 | + def get_by_slug(cls, slug): |
363 | + location, year, month, day = slug.rsplit('-', 4) |
364 | + try: |
365 | + return cls.objects.filter(location__address__exact=location, |
366 | + start_datetime__year=year, |
367 | + start_datetime__month=month, |
368 | + start_datetime__day=day).get() |
369 | + except ValueError: |
370 | + raise Event.DoesNotExist |
371 | + |
372 | + @property |
373 | + def school_count(self): |
374 | + return (School.objects |
375 | + .filter(students__applications__event=self) |
376 | + .count()) |
377 | + |
378 | + @property |
379 | + def slug(self): |
380 | + return u'%s-%s' % (self.location.address, |
381 | + self.start_datetime.strftime('%Y-%m-%d')) |
382 | + |
383 | + def __unicode__(self): |
384 | + return self.slug |
385 | + |
386 | |
387 | class Teacher(models.Model): |
388 | - teacher_id = models.CharField(max_length=36) |
389 | - first_name = models.CharField(max_length=30) |
390 | - last_name = models.CharField(max_length=30) |
391 | - school = models.ForeignKey(School, related_name="teachers") |
392 | - email = models.EmailField() |
393 | - concat_no = models.CharField(max_length=20) |
394 | - |
395 | -class Student(models.Model): |
396 | - student_id = models.CharField(max_length=36) |
397 | - first_name = models.CharField(max_length=30) |
398 | - last_name = models.CharField(max_length=30) |
399 | - school = models.ForeignKey(School, related_name="students") |
400 | - alt_event = models.BooleanField() |
401 | - grade = models.IntegerField() |
402 | - email = models.EmailField() |
403 | - contact_no = models.CharField(max_length=20) |
404 | - alt_contact_no = models.CharField(max_length=20) |
405 | - teacher = models.ForeignKey(Teacher, blank=True) |
406 | - |
407 | -class ReferralSource(models.Model): |
408 | - description = models.CharField(max_length=100) |
409 | - |
410 | -class Status(models.Model): |
411 | - description = models.CharField(max_length=100) |
412 | + teacher = models.CharField(max_length=36, unique=True) |
413 | + first_name = models.CharField(max_length=30, null=True, blank=True) |
414 | + last_name = models.CharField(max_length=30, null=True, blank=True) |
415 | + school = models.ForeignKey(School, related_name="teachers", null=True, blank=True) |
416 | + email = models.EmailField() |
417 | + contact_no = models.CharField(max_length=20, null=True, blank=True) |
418 | + active_ind = models.BooleanField(default=True) |
419 | + |
420 | + def __unicode__(self): |
421 | + return '%s %s (%s)' % (self.first_name, self.last_name, |
422 | + self.school.name) |
423 | + |
424 | |
425 | # TODO: login |
426 | class Reviewer(models.Model): |
427 | - name = models.CharField(max_length=30) |
428 | - email = models.EmailField() |
429 | - admin = models.BooleanField() |
430 | - event_admin = models.ManyToManyField(Event, related_name="admins") |
431 | + name = models.CharField(max_length=30) |
432 | + email = models.EmailField() |
433 | + admin = models.BooleanField(default=False) |
434 | + event_admin = models.ManyToManyField(Event, related_name="admins") |
435 | event_reviewer = models.ManyToManyField(Event, related_name="reviewers") |
436 | |
437 | + def __unicode__(self): |
438 | + return self.name |
439 | + |
440 | + |
441 | class Application(models.Model): |
442 | - student = models.ForeignKey(Teacher, related_name="applications") |
443 | - event = models.ForeignKey(Event, related_name="applications") |
444 | - creation_time = models.DateTimeField() |
445 | - motivation = models.TextField() |
446 | - special_motivation = models.TextField(blank=True) |
447 | - referral_source = models.ForeignKey(ReferralSource, related_name="applications") |
448 | - teacher = models.ForeignKey(Teacher, related_name="student_applications") |
449 | - status = models.ForeignKey(Status) |
450 | - status_reviewer = models.ForeignKey(Reviewer, related_name="applications_reviewed") |
451 | - completed = models.BooleanField(default=False) |
452 | - email_sent = models.BooleanField(default=False) |
453 | - rsvped = models.BooleanField(default=False) |
454 | + student = models.ForeignKey(Student, related_name="applications") |
455 | + event = models.ForeignKey(Event, related_name="applications") |
456 | + creation_datetime = models.DateTimeField(default = datetime.datetime.now) |
457 | + motivation = models.TextField(null=True, blank=True) |
458 | + special_motivation = models.TextField(null=True, blank=True) |
459 | + referral_source = models.ForeignKey(ReferralSource, related_name="applications") |
460 | + teacher = models.ForeignKey(Teacher, related_name="student_applications", null=True) |
461 | + status = models.ForeignKey(Status) |
462 | + status_reviewer = models.ForeignKey(Reviewer, related_name="applications_reviewed", null=True) |
463 | + completed = models.BooleanField(default=False) |
464 | + email_sent = models.BooleanField(default=False) |
465 | + rsvped = models.BooleanField(default=False) |
466 | + active_ind = models.BooleanField(default=True) |
467 | + |
468 | + def __unicode__(self): |
469 | + return '%s for %s' % (unicode(self.student), unicode(self.event)) |
470 | + |
471 | |
472 | class Review(models.Model): |
473 | - application = models.ForeignKey(Application, related_name="reviews") |
474 | - event = models.ForeignKey(Event, related_name="reviews") |
475 | - creation_time = models.DateTimeField() |
476 | - reviewer = models.ForeignKey(Reviewer, related_name="reviews") |
477 | - status = models.ForeignKey(Status, blank=True) |
478 | - comment = models.TextField(blank=True) |
479 | - rating = models.IntegerField(blank=True) |
480 | + application = models.ForeignKey(Application, related_name="reviews") |
481 | + event = models.ForeignKey(Event, related_name="reviews") |
482 | + creation_datetime = models.DateTimeField() |
483 | + reviewer = models.ForeignKey(Reviewer, related_name="reviews") |
484 | + status = models.ForeignKey(Status, null=True, blank=True) |
485 | + comment = models.TextField(null=True, blank=True) |
486 | + rating = models.IntegerField(null=True, blank=True) |
487 | + |
488 | + def __unicode__(self): |
489 | + return '%s - %s' % (unicode(self.status), unicode(self.application)) |
490 | |
491 | === added directory 'umonya/apply/static' |
492 | === added directory 'umonya/apply/static/js' |
493 | === added file 'umonya/apply/static/js/jquery.min.js' |
494 | --- umonya/apply/static/js/jquery.min.js 1970-01-01 00:00:00 +0000 |
495 | +++ umonya/apply/static/js/jquery.min.js 2011-07-24 15:31:18 +0000 |
496 | @@ -0,0 +1,154 @@ |
497 | +/*! |
498 | + * jQuery JavaScript Library v1.4.2 |
499 | + * http://jquery.com/ |
500 | + * |
501 | + * Copyright 2010, John Resig |
502 | + * Dual licensed under the MIT or GPL Version 2 licenses. |
503 | + * http://jquery.org/license |
504 | + * |
505 | + * Includes Sizzle.js |
506 | + * http://sizzlejs.com/ |
507 | + * Copyright 2010, The Dojo Foundation |
508 | + * Released under the MIT, BSD, and GPL Licenses. |
509 | + * |
510 | + * Date: Sat Feb 13 22:33:48 2010 -0500 |
511 | + */ |
512 | +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? |
513 | +e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= |
514 | +j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, |
515 | +"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= |
516 | +true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, |
517 | +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& |
518 | +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, |
519 | +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== |
520 | +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, |
521 | +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| |
522 | +c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", |
523 | +L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, |
524 | +"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ |
525 | +a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], |
526 | +d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== |
527 | +a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& |
528 | +!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= |
529 | +true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; |
530 | +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, |
531 | +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= |
532 | +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= |
533 | +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, |
534 | +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; |
535 | +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, |
536 | +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== |
537 | +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, |
538 | +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", |
539 | +i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", |
540 | +" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= |
541 | +this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= |
542 | +e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= |
543 | +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); |
544 | +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, |
545 | +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); |
546 | +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), |
547 | +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= |
548 | +null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= |
549 | +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& |
550 | +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; |
551 | +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), |
552 | +fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| |
553 | +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, |
554 | +"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= |
555 | +a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, |
556 | +isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= |
557 | +{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; |
558 | +if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", |
559 | +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, |
560 | +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, |
561 | +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& |
562 | +!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, |
563 | +toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, |
564 | +u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), |
565 | +function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; |
566 | +if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, |
567 | +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); |
568 | +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| |
569 | +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; |
570 | +for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- |
571 | +1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, |
572 | +CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, |
573 | +relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= |
574 | +l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; |
575 | +h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, |
576 | +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, |
577 | +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, |
578 | +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, |
579 | +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= |
580 | +h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= |
581 | +m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== |
582 | +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, |
583 | +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| |
584 | +!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= |
585 | +h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& |
586 | +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; |
587 | +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); |
588 | +(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: |
589 | +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, |
590 | +gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; |
591 | +c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= |
592 | +{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== |
593 | +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", |
594 | +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? |
595 | +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== |
596 | +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? |
597 | +a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= |
598 | +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, |
599 | +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, |
600 | +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, |
601 | +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); |
602 | +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, |
603 | +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& |
604 | +this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| |
605 | +u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== |
606 | +1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); |
607 | +return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", |
608 | +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= |
609 | +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? |
610 | +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= |
611 | +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= |
612 | +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, |
613 | +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= |
614 | +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= |
615 | +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== |
616 | +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, |
617 | +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), |
618 | +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, |
619 | +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& |
620 | +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? |
621 | +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== |
622 | +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= |
623 | +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", |
624 | +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| |
625 | +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); |
626 | +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== |
627 | +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== |
628 | +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; |
629 | +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); |
630 | +this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], |
631 | +"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, |
632 | +animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= |
633 | +j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); |
634 | +this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== |
635 | +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| |
636 | +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; |
637 | +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= |
638 | +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, |
639 | +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| |
640 | +c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? |
641 | +function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= |
642 | +this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; |
643 | +k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& |
644 | +f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; |
645 | +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); |
646 | +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, |
647 | +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- |
648 | +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": |
649 | +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in |
650 | +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); |
651 | |
652 | === added directory 'umonya/apply/templates' |
653 | === added file 'umonya/apply/templates/apply.html' |
654 | --- umonya/apply/templates/apply.html 1970-01-01 00:00:00 +0000 |
655 | +++ umonya/apply/templates/apply.html 2011-07-24 15:31:18 +0000 |
656 | @@ -0,0 +1,20 @@ |
657 | +{% extends "base.html" %} |
658 | +{% block extra_head %} |
659 | +<script src="{{ STATIC_URL }}js/jquery.min.js" type="text/javascript"></script> |
660 | +{% include "uni_form/includes.html" %} |
661 | +{% endblock %} |
662 | + |
663 | +{% load uni_form_tags %} |
664 | + |
665 | +{% block content %} |
666 | + <div id="right-content"> |
667 | + |
668 | + </div> |
669 | + <div id="main-content"> |
670 | + <h2>Apply</h2> |
671 | + <form method="post" action="apply" class="uniForm"> |
672 | + {% csrf_token %} |
673 | + {% uni_form form form.helper %} |
674 | + </form> |
675 | + </div> |
676 | +{% endblock %} |
677 | |
678 | === added file 'umonya/apply/templates/events.html' |
679 | --- umonya/apply/templates/events.html 1970-01-01 00:00:00 +0000 |
680 | +++ umonya/apply/templates/events.html 2011-07-24 15:31:18 +0000 |
681 | @@ -0,0 +1,29 @@ |
682 | +{% extends "base.html" %} |
683 | +{% block content %} |
684 | + <div id="right-content"> |
685 | + </div> |
686 | + <div id="main-content"> |
687 | + <p> |
688 | + Workshops are run over a full weekend and are divided between lectures |
689 | + and practical sessions with lunch time providing an opportunity for our |
690 | + sponsors to provide insight into the programming industry. Lecturers |
691 | + will lead each session, demonstrating concepts and elaborating on the |
692 | + content of the notes with tutors available throughout for help on any |
693 | + problems that may be encountered. |
694 | + </p> |
695 | + |
696 | + <h2>Upcoming workshops</h2> |
697 | + {% if events %} |
698 | + {% for event in events %} |
699 | + <h3>Event: {{ event.date }} - {{ event.location }}</h3> |
700 | + <p>{{ event.description }}</p> |
701 | + <p>{{ event.student_count }} learner{{ event.student_count|pluralize }} from {{ event.school_count }} school{{ event.school_count|pluralize }} have applied.</p> |
702 | + <p>{{ event.close_date|timeuntil }}</p> |
703 | + <a class="apply-button" href="{{ event.id }}/student-apply/">Apply</a> |
704 | + <a class="apply-button" href="{{ event.id }}/teacher-apply/">Apply as a teacher</a> |
705 | + {% endfor %} |
706 | + {% else %} |
707 | + <p>There are no upcoming events...</p> |
708 | + {% endif %} |
709 | + </div> |
710 | +{% endblock %} |
711 | |
712 | === removed file 'umonya/apply/tests.py' |
713 | --- umonya/apply/tests.py 2011-02-13 09:13:18 +0000 |
714 | +++ umonya/apply/tests.py 1970-01-01 00:00:00 +0000 |
715 | @@ -1,23 +0,0 @@ |
716 | -""" |
717 | -This file demonstrates two different styles of tests (one doctest and one |
718 | -unittest). These will both pass when you run "manage.py test". |
719 | - |
720 | -Replace these with more appropriate tests for your application. |
721 | -""" |
722 | - |
723 | -from django.test import TestCase |
724 | - |
725 | -class SimpleTest(TestCase): |
726 | - def test_basic_addition(self): |
727 | - """ |
728 | - Tests that 1 + 1 always equals 2. |
729 | - """ |
730 | - self.failUnlessEqual(1 + 1, 2) |
731 | - |
732 | -__test__ = {"doctest": """ |
733 | -Another way to test that 1 + 1 is equal to 2. |
734 | - |
735 | ->>> 1 + 1 == 2 |
736 | -True |
737 | -"""} |
738 | - |
739 | |
740 | === modified file 'umonya/apply/urls.py' |
741 | --- umonya/apply/urls.py 2011-02-13 09:34:55 +0000 |
742 | +++ umonya/apply/urls.py 2011-07-24 15:31:18 +0000 |
743 | @@ -2,5 +2,7 @@ |
744 | from umonya.apply.views import * |
745 | |
746 | urlpatterns = patterns('', |
747 | - ('^$', apply) |
748 | + ('^([^/]+)/student-apply/', student_apply), |
749 | + ('^([^/]+)/teacher-apply/', teacher_apply), |
750 | + ('^$', list_events), |
751 | ) |
752 | |
753 | === modified file 'umonya/apply/views.py' |
754 | --- umonya/apply/views.py 2011-02-13 10:01:28 +0000 |
755 | +++ umonya/apply/views.py 2011-07-24 15:31:18 +0000 |
756 | @@ -1,6 +1,114 @@ |
757 | -# Create your views here. |
758 | -from django.http import HttpResponse |
759 | -from umonya.apply.models import Student, Application |
760 | - |
761 | -def apply(request): |
762 | - return HttpResponse('') |
763 | +from umonya.apply.models import * |
764 | +from umonya.apply.forms import * |
765 | + |
766 | +from datetime import datetime |
767 | + |
768 | +from annoying.decorators import render_to |
769 | +from django import forms |
770 | +from django.db import models, transaction |
771 | +from django.http import Http404, HttpResponseRedirect |
772 | +from django.shortcuts import render_to_response |
773 | +from django.template import loader, Context |
774 | + |
775 | + |
776 | +def add_update_student(data, event): |
777 | + ''' |
778 | + Adds or updates an application, using the cleaned_data from a valid |
779 | + StudentApplyForm |
780 | + ''' |
781 | + # method for random fields i don't understand the reason for existance |
782 | + import random |
783 | + def random_str(length): |
784 | + import string |
785 | + return ''.join(random.choice(string.ascii_lowercase) |
786 | + for i in range(length)) |
787 | + |
788 | + # XXX Some defaults until some discussion takes place on the db design, or |
789 | + # what to ask in the application form |
790 | + region = Region.objects.get_or_create(name = 'Western Cape')[0] |
791 | + referral_source = ReferralSource.objects.get_or_create( |
792 | + description = 'Trolling')[0] |
793 | + status = Status.objects.get_or_create(description = 'Noob')[0] |
794 | + |
795 | + school = School.objects.get_or_create(name = data['school'], |
796 | + region = region)[0] |
797 | + |
798 | + # XXX if a student already exists, should this create an error? At the |
799 | + # moment this just creates a new student with a different student id |
800 | + student = Student.objects.create( |
801 | + student_id = random_str(30), |
802 | + first_name = data['first_name'], |
803 | + last_name = data['last_name'], |
804 | + school = school, |
805 | + alt_event = data['alt_event'], |
806 | + grade = data['grade'], |
807 | + email = data['email'], |
808 | + contact_no = data['contact_no'], |
809 | + alt_contact_no = data['alt_contact_no']) |
810 | + |
811 | + |
812 | + application = Application.objects.create( |
813 | + student = student, |
814 | + event = event, |
815 | + motivation = data['motivation'], |
816 | + referral_source = referral_source, |
817 | + teacher = None, |
818 | + status = status, |
819 | + status_reviewer = None) |
820 | + |
821 | + |
822 | +@render_to('apply.html') |
823 | +@transaction.commit_on_success |
824 | +def student_apply(request, event_slug): |
825 | + try: |
826 | + event = Event.get_by_slug(event_slug) |
827 | + except Event.DoesNotExist: |
828 | + raise Http404 |
829 | + |
830 | + if request.method == 'POST': |
831 | + form = StudentApplyForm(request.POST) |
832 | + if form.is_valid(): |
833 | + add_update_student(form.cleaned_data, event) |
834 | + |
835 | + # XXX where should the student go to after applying? |
836 | + return HttpResponseRedirect('/') |
837 | + else: |
838 | + form = StudentApplyForm() |
839 | + |
840 | + return { 'form' : form } |
841 | + |
842 | + |
843 | +@render_to('apply.html') |
844 | +def teacher_apply(request, event): |
845 | + try: |
846 | + event = Event.get_by_slug(event_slug) |
847 | + except Event.DoesNotExist: |
848 | + raise Http404 |
849 | + |
850 | + if request.method == 'POST': |
851 | + form = TeacherApplyForm(request.POST) |
852 | + if form.is_valid(): |
853 | + pass # TODO save results of form |
854 | + else: |
855 | + form = TeacherApplyForm() |
856 | + |
857 | + return { 'form' : form } |
858 | + |
859 | + |
860 | +@render_to('events.html') |
861 | +def list_events(request): |
862 | + events = Event.objects.all() |
863 | + e = [] |
864 | + |
865 | + for x in events: |
866 | + e.append({ |
867 | + 'date' : x.start_datetime, |
868 | + 'location' : x.location.address, |
869 | + 'description' : '', |
870 | + 'student_count' : x.applications.count(), |
871 | + 'school_count' : x.school_count, |
872 | + 'close_date' : x.end_datetime, |
873 | + 'id' : x.slug, |
874 | + }) |
875 | + |
876 | + return { 'events' : e } |
877 | |
878 | === added directory 'umonya/content' |
879 | === added file 'umonya/content/__init__.py' |
880 | === added file 'umonya/content/admin.py' |
881 | --- umonya/content/admin.py 1970-01-01 00:00:00 +0000 |
882 | +++ umonya/content/admin.py 2011-07-24 15:31:18 +0000 |
883 | @@ -0,0 +1,5 @@ |
884 | +from django.contrib import admin |
885 | + |
886 | +from umonya.content.models import Sponsor |
887 | + |
888 | +admin.site.register(Sponsor) |
889 | |
890 | === added directory 'umonya/content/fixtures' |
891 | === added file 'umonya/content/fixtures/initial_data.json' |
892 | --- umonya/content/fixtures/initial_data.json 1970-01-01 00:00:00 +0000 |
893 | +++ umonya/content/fixtures/initial_data.json 2011-07-24 15:31:18 +0000 |
894 | @@ -0,0 +1,68 @@ |
895 | +[ |
896 | + { |
897 | + "pk": 1, |
898 | + "model": "content.sponsor", |
899 | + "fields": { |
900 | + "image_path": "/static/img/logos/google_logo.png", |
901 | + "years": "2011", |
902 | + "type": "Sponsor", |
903 | + "name": "Google", |
904 | + "description": "Their CS4HS and K-12 divisions have funded our growth and allowed us to expand beyond the Cape Town region" |
905 | + } |
906 | + }, |
907 | + { |
908 | + "pk": 2, |
909 | + "model": "content.sponsor", |
910 | + "fields": { |
911 | + "image_path": "/static/img/logos/mih.jpg", |
912 | + "years": "2010", |
913 | + "type": "Sponsor", |
914 | + "name": "MIH Media Lab", |
915 | + "description": "Funded Stellenbosch University pilot workshop and gave a talk" |
916 | + } |
917 | + }, |
918 | + { |
919 | + "pk": 3, |
920 | + "model": "content.sponsor", |
921 | + "fields": { |
922 | + "image_path": "/static/img/logos/google_logo.png", |
923 | + "years": "2010", |
924 | + "type": "Sponsor", |
925 | + "name": "S1", |
926 | + "description": "Funded two University of Cape Town workshops and gave talks" |
927 | + } |
928 | + }, |
929 | + { |
930 | + "pk": 4, |
931 | + "model": "content.sponsor", |
932 | + "fields": { |
933 | + "image_path": "/static/img/logos/uctlogo.png", |
934 | + "years": "2010", |
935 | + "type": "Collaborator", |
936 | + "name": "University of Cape Town", |
937 | + "description": "Supplied facilities for workshops" |
938 | + } |
939 | + }, |
940 | + { |
941 | + "pk": 5, |
942 | + "model": "content.sponsor", |
943 | + "fields": { |
944 | + "image_path": "/static/img/logos/sun_logo.png", |
945 | + "years": "2010", |
946 | + "type": "Collaborator", |
947 | + "name": "Stellenbosch University", |
948 | + "description": "Supplied facilities for workshops" |
949 | + } |
950 | + }, |
951 | + { |
952 | + "pk": 6, |
953 | + "model": "content.sponsor", |
954 | + "fields": { |
955 | + "image_path": "/static/img/logos/siliconcape.jpg", |
956 | + "years": "2011", |
957 | + "type": "Collaborator", |
958 | + "name": "Silicon Cape", |
959 | + "description": "" |
960 | + } |
961 | + } |
962 | +] |
963 | \ No newline at end of file |
964 | |
965 | === added file 'umonya/content/models.py' |
966 | --- umonya/content/models.py 1970-01-01 00:00:00 +0000 |
967 | +++ umonya/content/models.py 2011-07-24 15:31:18 +0000 |
968 | @@ -0,0 +1,16 @@ |
969 | +from django.db import models |
970 | + |
971 | + |
972 | +SPONSOR_TYPE_CHOICES = ( |
973 | + ('Sponsor', 'Sponsor'), |
974 | + ('Collaborator', 'Collaborator'), |
975 | +) |
976 | +class Sponsor(models.Model): |
977 | + name = models.CharField(max_length=50) |
978 | + description = models.TextField(blank=True) |
979 | + image_path = models.CharField(max_length=100) |
980 | + years = models.CharField(max_length=50) |
981 | + type = models.CharField(max_length=15, choices=SPONSOR_TYPE_CHOICES) |
982 | + |
983 | + def __unicode__(self): |
984 | + return '%s %s' % (self.type, self.name) |
985 | |
986 | === added directory 'umonya/content/static' |
987 | === added directory 'umonya/content/static/css' |
988 | === added file 'umonya/content/static/css/style.css' |
989 | --- umonya/content/static/css/style.css 1970-01-01 00:00:00 +0000 |
990 | +++ umonya/content/static/css/style.css 2011-07-24 15:31:18 +0000 |
991 | @@ -0,0 +1,206 @@ |
992 | +body { |
993 | + font-family: "Trebuchet MS", Arial, sans-serif; |
994 | + font-size: 12px; |
995 | + margin: 0; |
996 | +} |
997 | + |
998 | +a { |
999 | + text-decoration: none; |
1000 | +} |
1001 | + |
1002 | +h1 { |
1003 | + font-size: 32px; |
1004 | + margin-bottom: 0px; |
1005 | +} |
1006 | + |
1007 | +h2 { |
1008 | + font-size: 20px; |
1009 | +} |
1010 | + |
1011 | +h3 { |
1012 | + font-size: 16px; |
1013 | + font-weight: normal; |
1014 | +} |
1015 | + |
1016 | +h4 { |
1017 | + font-size: 16px; |
1018 | + font-weight: normal; |
1019 | + margin-top: 0; |
1020 | +} |
1021 | + |
1022 | +a, h1, h2 { |
1023 | + color: #417F9E; |
1024 | + font-weight: normal; |
1025 | +} |
1026 | + |
1027 | +a img { |
1028 | + border: 0; |
1029 | +} |
1030 | + |
1031 | +.content-wrap { |
1032 | + width: 900px; |
1033 | + margin: 0 auto; |
1034 | +} |
1035 | + |
1036 | +#header-wrap { |
1037 | + background-color: #F7F7F7; |
1038 | + background-image: url('/static/img/header-bg2.png'); /* is it possible to get the URL from django? */ |
1039 | + background-repeat: repeat-x; |
1040 | + border-bottom: 1px solid #DDD; |
1041 | + height: 126px; |
1042 | +} |
1043 | + |
1044 | +#header { |
1045 | + padding: 16px 0; |
1046 | +} |
1047 | + |
1048 | +.no-bullets { |
1049 | + padding-left: 0; |
1050 | +} |
1051 | + |
1052 | +.no-bullets li { |
1053 | + list-style: none; |
1054 | +} |
1055 | + |
1056 | +.menu { |
1057 | + float: right; |
1058 | + width: 150px; |
1059 | +} |
1060 | + |
1061 | +.menu img { |
1062 | + display: block; |
1063 | +} |
1064 | + |
1065 | +a.big-button { |
1066 | + font-size: 14px; |
1067 | + margin: 5px 0; |
1068 | + padding: 15px 5px; |
1069 | + text-align: center; |
1070 | + width: 300px; |
1071 | +} |
1072 | + |
1073 | +a.big-button, a.apply-button { |
1074 | + -moz-border-radius: 10px; |
1075 | + -webkit-border-radius: 10px; |
1076 | + background-color: #EEE; |
1077 | + border: 2px solid #568399; |
1078 | + margin-top: 5px; |
1079 | + padding: 5px 15px; |
1080 | +} |
1081 | + |
1082 | +a.big-button:hover, a.apply-button:hover { |
1083 | + background-color: #CCC; |
1084 | +} |
1085 | + |
1086 | +.contributor-box { |
1087 | + /* background-color: #F9F9FF; */ |
1088 | + border: 1px solid #C0C0FF; |
1089 | + float: left; |
1090 | + height: 300px; |
1091 | + margin: 5px; |
1092 | + overflow: hidden; |
1093 | + padding: 15px; |
1094 | + width: 140px; |
1095 | +} |
1096 | + |
1097 | +.contributor-box img { |
1098 | + height: 130px; |
1099 | + margin: 0 auto; |
1100 | + display: block; |
1101 | +} |
1102 | + |
1103 | +.menu li { |
1104 | + border-bottom: 1px dashed #999; |
1105 | + display: block; |
1106 | + padding: 2px 0; |
1107 | + width: 140px; |
1108 | +} |
1109 | + |
1110 | +.menu a:hover { |
1111 | + color: navy; |
1112 | +} |
1113 | + |
1114 | +.last-menu { |
1115 | + border: none !important; |
1116 | +} |
1117 | + |
1118 | +a.apply-button { |
1119 | + |
1120 | +} |
1121 | + |
1122 | +.apply-button:hover { |
1123 | + |
1124 | +} |
1125 | + |
1126 | +#content { |
1127 | + padding: 0 0 10px 20px; |
1128 | +} |
1129 | + |
1130 | +#main-content { |
1131 | + text-align: justify; |
1132 | + width: 560px; |
1133 | +} |
1134 | + |
1135 | +#right-content { |
1136 | + float: right; |
1137 | + width: 300px; |
1138 | +} |
1139 | + |
1140 | +#main-content h2, #media-content h2 { |
1141 | + border-bottom: 2px solid #417FAF; |
1142 | + padding-bottom: 10px; |
1143 | +} |
1144 | + |
1145 | +.course-box { |
1146 | + margin: 10px 0; |
1147 | + padding: 15px; |
1148 | +} |
1149 | + |
1150 | +.sponsor-box { |
1151 | + /* background-color: #F9F9FF; */ |
1152 | + border: 1px solid #C0C0FF; |
1153 | + margin: 10px 0; |
1154 | + padding: 15px; |
1155 | +} |
1156 | + |
1157 | +.sponsor-box img { |
1158 | + float: left; |
1159 | + margin: 0 10px 10px 10px; |
1160 | +} |
1161 | + |
1162 | +#social-icons li { |
1163 | + display: inline; |
1164 | + padding-right: 5px; |
1165 | +} |
1166 | + |
1167 | +#social-icons img { |
1168 | + width: 48px; |
1169 | +} |
1170 | + |
1171 | +#logo-list img { |
1172 | + height: 48px; |
1173 | + margin: 5px; |
1174 | +} |
1175 | + |
1176 | +#logo-list li { |
1177 | + display: inline; |
1178 | + margin: 2px; |
1179 | +} |
1180 | + |
1181 | +.break { |
1182 | + clear: both; |
1183 | +} |
1184 | + |
1185 | +#sponsors-logos { |
1186 | + border-top: 1px solid #CCC; |
1187 | + margin: 20px auto 0 auto; |
1188 | + padding: 20px 0; |
1189 | + text-align: center; |
1190 | +} |
1191 | + |
1192 | +#footer { |
1193 | + border-top: 1px solid #CCC; |
1194 | + font-size: 11px; |
1195 | + padding-top: 16px; |
1196 | + text-align: center; |
1197 | +} |
1198 | |
1199 | === added directory 'umonya/content/static/img' |
1200 | === added file 'umonya/content/static/img/header-bg2.png' |
1201 | Binary files umonya/content/static/img/header-bg2.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/header-bg2.png 2011-07-24 15:31:18 +0000 differ |
1202 | === added directory 'umonya/content/static/img/logos' |
1203 | === added file 'umonya/content/static/img/logos/google_logo.png' |
1204 | Binary files umonya/content/static/img/logos/google_logo.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/google_logo.png 2011-07-24 15:31:18 +0000 differ |
1205 | === added file 'umonya/content/static/img/logos/mih.jpg' |
1206 | Binary files umonya/content/static/img/logos/mih.jpg 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/mih.jpg 2011-07-24 15:31:18 +0000 differ |
1207 | === added file 'umonya/content/static/img/logos/python-logo.gif' |
1208 | Binary files umonya/content/static/img/logos/python-logo.gif 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/python-logo.gif 2011-07-24 15:31:18 +0000 differ |
1209 | === added file 'umonya/content/static/img/logos/python-logo.png' |
1210 | Binary files umonya/content/static/img/logos/python-logo.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/python-logo.png 2011-07-24 15:31:18 +0000 differ |
1211 | === added file 'umonya/content/static/img/logos/siliconcape.jpg' |
1212 | Binary files umonya/content/static/img/logos/siliconcape.jpg 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/siliconcape.jpg 2011-07-24 15:31:18 +0000 differ |
1213 | === added file 'umonya/content/static/img/logos/sun_logo.jpg' |
1214 | Binary files umonya/content/static/img/logos/sun_logo.jpg 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/sun_logo.jpg 2011-07-24 15:31:18 +0000 differ |
1215 | === added file 'umonya/content/static/img/logos/sun_logo.png' |
1216 | Binary files umonya/content/static/img/logos/sun_logo.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/sun_logo.png 2011-07-24 15:31:18 +0000 differ |
1217 | === added file 'umonya/content/static/img/logos/uctlogo.png' |
1218 | Binary files umonya/content/static/img/logos/uctlogo.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/logos/uctlogo.png 2011-07-24 15:31:18 +0000 differ |
1219 | === added directory 'umonya/content/static/img/people' |
1220 | === added directory 'umonya/content/static/img/social' |
1221 | === added file 'umonya/content/static/img/social/facebook.png' |
1222 | Binary files umonya/content/static/img/social/facebook.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/social/facebook.png 2011-07-24 15:31:18 +0000 differ |
1223 | === added file 'umonya/content/static/img/social/rss.png' |
1224 | Binary files umonya/content/static/img/social/rss.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/social/rss.png 2011-07-24 15:31:18 +0000 differ |
1225 | === added file 'umonya/content/static/img/social/twitter.png' |
1226 | Binary files umonya/content/static/img/social/twitter.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/social/twitter.png 2011-07-24 15:31:18 +0000 differ |
1227 | === added file 'umonya/content/static/img/umonya-sized-white.png' |
1228 | Binary files umonya/content/static/img/umonya-sized-white.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/umonya-sized-white.png 2011-07-24 15:31:18 +0000 differ |
1229 | === added file 'umonya/content/static/img/umonya-sized.png' |
1230 | Binary files umonya/content/static/img/umonya-sized.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/umonya-sized.png 2011-07-24 15:31:18 +0000 differ |
1231 | === added file 'umonya/content/static/img/umonya-small.png' |
1232 | Binary files umonya/content/static/img/umonya-small.png 1970-01-01 00:00:00 +0000 and umonya/content/static/img/umonya-small.png 2011-07-24 15:31:18 +0000 differ |
1233 | === added directory 'umonya/content/templates' |
1234 | === added file 'umonya/content/templates/about-us.html' |
1235 | --- umonya/content/templates/about-us.html 1970-01-01 00:00:00 +0000 |
1236 | +++ umonya/content/templates/about-us.html 2011-07-24 15:31:18 +0000 |
1237 | @@ -0,0 +1,49 @@ |
1238 | +{% extends "base.html" %} |
1239 | +{% block content %} |
1240 | + <div id="right-content"> |
1241 | + |
1242 | + </div> |
1243 | + <div id="main-content"> |
1244 | + <h2>Who we are</h2> |
1245 | + <div> |
1246 | + <p> |
1247 | + We are a group of experienced programmers who are enthusiastic about |
1248 | + computer programming. It was from this enthusiasm that the idea of |
1249 | + Umonya was born, with the goal of introducing the endless |
1250 | + possibilities afforded by computer programming to learners, in free |
1251 | + workshops. |
1252 | + </p> |
1253 | + |
1254 | + <p> |
1255 | + Information Technology (IT) has become integral to many fields in the |
1256 | + modern world: academia, commerce and industry all require IT at |
1257 | + fundamental level to function efficiently. Unfortunately, not everyone |
1258 | + has had the opportunity to develop advanced IT skills, such as |
1259 | + computer programming. Through a collaborative effort, Umonya workshops |
1260 | + teach programming to those who have not yet had such an opportunity, |
1261 | + through the medium of the <a href="http://www.python.org/">Python</a> |
1262 | + language. |
1263 | + </p> |
1264 | + |
1265 | + <p> |
1266 | + We don't teach leaners how to <strong>use</strong> software; we teach them how to |
1267 | + <strong>make</strong> software. For example, a participant should be |
1268 | + able use a web browser; we will teach the skills, which, if developed, |
1269 | + will enable them to write one. We do not intend to replace South |
1270 | + African IT curricula; rather, we offer a distinct means for learners |
1271 | + to discover what programming has to offer. |
1272 | + </p> |
1273 | + |
1274 | + <p> |
1275 | + Umonya aims to make learning programming free and fun -- if you do not |
1276 | + have fun, we offer a double-your-money-back guarentee. |
1277 | + </p> |
1278 | + |
1279 | + </div> |
1280 | + |
1281 | + {% comment %} TODO |
1282 | + <h2>What people are saying:</h2> |
1283 | + {% endcomment %} |
1284 | + <div class="break"></div> |
1285 | + </div> |
1286 | +{% endblock %} |
1287 | |
1288 | === added file 'umonya/content/templates/contact-us.html' |
1289 | --- umonya/content/templates/contact-us.html 1970-01-01 00:00:00 +0000 |
1290 | +++ umonya/content/templates/contact-us.html 2011-07-24 15:31:18 +0000 |
1291 | @@ -0,0 +1,13 @@ |
1292 | +{% extends "base.html" %} |
1293 | +{% block content %} |
1294 | + <div id="right-content"> |
1295 | + |
1296 | + </div> |
1297 | + <div id="main-content"> |
1298 | + <h2>Contact us</h2> |
1299 | + {# TODO Contact form? #} |
1300 | + |
1301 | + You can email us |
1302 | + at <a href="mailto:admins@umonya.co.za">admins@umonya.co.za</a>. |
1303 | + </div> |
1304 | +{% endblock %} |
1305 | |
1306 | === added file 'umonya/content/templates/get-involved.html' |
1307 | --- umonya/content/templates/get-involved.html 1970-01-01 00:00:00 +0000 |
1308 | +++ umonya/content/templates/get-involved.html 2011-07-24 15:31:18 +0000 |
1309 | @@ -0,0 +1,55 @@ |
1310 | +{% extends "base.html" %} |
1311 | +{% block content %} |
1312 | + <div id="right-content"> |
1313 | + |
1314 | + </div> |
1315 | + <div id="main-content"> |
1316 | + <h2>Volunteering for Umonya</h2> |
1317 | + <p> |
1318 | + The success of Umonya depends a wide spectrum of volunteers. If you are |
1319 | + a competent* programmer, consider volunteering as a tutor. Tutors engage |
1320 | + with participants on a one-to-one basis in order to help solidify their |
1321 | + understanding of lecture topics. You may also wish to help with the |
1322 | + writing of workshop coursework, or with website design and maintenance. |
1323 | + </p> |
1324 | + <p> |
1325 | + However, you do not need to be an experienced programmer to help, as we |
1326 | + require assistance with adminstrative tasks such as: coordinating |
1327 | + volunteers, transport, catering, advertising, accounting, liasing with |
1328 | + various universities, and coordinating sponsorship. |
1329 | + </p> |
1330 | + |
1331 | + <h2>Running a club at school</h2> |
1332 | + <p> |
1333 | + We would like provide the opportunity for interested learners to be |
1334 | + introduced to programming and exposed to the types of things you can do |
1335 | + with computers. However, we are unable to hold workshops in all regions |
1336 | + of the country. If you are interested in running a workshop in your |
1337 | + region, we can assist by providing advice |
1338 | + and <a href="/resources/">workshop materials</a>. |
1339 | + </p> |
1340 | + |
1341 | + <p> |
1342 | + For teachers or learners who would like set up a computer club at their |
1343 | + schools, we offer assistance in the form of resources and potential |
1344 | + contacts to professionals and other groups. We have experience in |
1345 | + working with teachers and can help to establish links with other |
1346 | + clubs. Although, for the purposes of the Umonya workshops our focus is |
1347 | + predominantly on Python programming, we are also willing and able to |
1348 | + provide help in other fields, such as other programming languages or |
1349 | + general computer-related topics. |
1350 | + </p> |
1351 | + |
1352 | + <p> |
1353 | + Once a club has become established, members may wish to further apply |
1354 | + their new-found knowledge of programming. Umonya is eager to partner |
1355 | + with initiatives that facilitate this process. One such initiative is |
1356 | + the <a href="http://algorithm.cs.uct.ac.za">UCT Algorithm Circle</a>, |
1357 | + which hosts a wealth of reasources, lecture slides and discussions on |
1358 | + its website. Addtionally, learners in the proximity of the University of |
1359 | + Cape Town may benefit from attending Algorithm Circle lectures held at |
1360 | + the university. Should you know of another such initiative, |
1361 | + please <a href="/contact-us/">contact us</a> with further information. |
1362 | + </p> |
1363 | + </div> |
1364 | +{% endblock %} |
1365 | |
1366 | === added file 'umonya/content/templates/home.html' |
1367 | --- umonya/content/templates/home.html 1970-01-01 00:00:00 +0000 |
1368 | +++ umonya/content/templates/home.html 2011-07-24 15:31:18 +0000 |
1369 | @@ -0,0 +1,39 @@ |
1370 | +{% extends "base.html" %} |
1371 | +{% block content %} |
1372 | + <div id="right-content"> |
1373 | + <div> |
1374 | + <h2>Whatever will be here</h2> |
1375 | + <p>The UCT Algorithm Circle is an outreach programme for high school and university st |
1376 | +udents offered to those identified as having an aptitude for computer programming or those wh |
1377 | +o are already strong at computer programming and want to go beyond what is taught at school.</p> |
1378 | + |
1379 | + </div> |
1380 | + <div> |
1381 | + <ul id="social-icons" class="no-bullets"> |
1382 | + <li><a href="http://twitter.com/umonya"><img alt="" src="{{ STATIC_URL}}/img/social/twitter.png"></a></li> |
1383 | + <li><a href="http://www.facebook.com/group.php?gid=158365057523359"><img alt="" src="{{ STATIC_URL }}/img/social/facebook.png"></a></li> |
1384 | + <li><a href="#"><img alt="" src="{{ STATIC_URL }}/img/social/rss.png"></a></li> |
1385 | + </ul> |
1386 | + </div> |
1387 | + </div> |
1388 | + <div id="main-content"> |
1389 | + <h1>What is Umonya?</h1> |
1390 | + <h3> |
1391 | + Over the course of a fun-filled weekend, Umonya introduces computer programming to hundreds of school learners of all backgrounds with the help of passionate volunteers. Computer programming is a way to instruct a computer to do things for you. Learners need no prior programming experience to attend. |
1392 | +We hold workshops throughout South Africa using the free and widely used Python programming language. |
1393 | + </h3> |
1394 | + <a class="big-button" href="/events/">You can apply here. It's free and fun</a> or <a class="big-button" href="/get-involved">Get involved</a> |
1395 | + </div> |
1396 | + <div class="break"></div> |
1397 | +{% endblock %} |
1398 | + |
1399 | +{% block extra_content %} |
1400 | + <div id="sponsors-logos"> |
1401 | + <ul id="logo-list" class="no-bullets"> |
1402 | + <li><a href="http://www.google.com/"><img alt="" src="{{ STATIC_URL }}/img/logos/google_logo.png"></a></li> |
1403 | + <li><a href="http://www.python.org/"><img alt="" src="{{ STATIC_URL }}/img/logos/python-logo.png"></a></li> |
1404 | + <li><a href="http://www.sun.ac.za/"><img alt="" src="{{ STATIC_URL }}/img/logos/sun_logo.png"></a></li> |
1405 | + <li><a href="http://www.uct.ac.za/"><img alt="" src="{{ STATIC_URL }}/img/logos/uctlogo.png"></a></li> |
1406 | + </ul> |
1407 | + </div> |
1408 | +{% endblock %} |
1409 | |
1410 | === added file 'umonya/content/templates/media.html' |
1411 | --- umonya/content/templates/media.html 1970-01-01 00:00:00 +0000 |
1412 | +++ umonya/content/templates/media.html 2011-07-24 15:31:18 +0000 |
1413 | @@ -0,0 +1,14 @@ |
1414 | +{% extends "base.html" %} |
1415 | +{% block content %} |
1416 | + <div id="media-content"> |
1417 | + <h1>Coming soon...</h1> |
1418 | + {% comment %} TODO |
1419 | + <h2>News Feeds</h2> |
1420 | + <div>Have a feed thing here</div> |
1421 | + <h2>Image Gallery</h2> |
1422 | + <div>Probably embedd flickr or have a link here</div> |
1423 | + <h2>Video Gallery Gallery</h2> |
1424 | + <div>Probably embedd a youtube player or have a link here</div> |
1425 | + {% endcomment %} |
1426 | + </div> |
1427 | +{% endblock %} |
1428 | |
1429 | === added file 'umonya/content/templates/resources.html' |
1430 | --- umonya/content/templates/resources.html 1970-01-01 00:00:00 +0000 |
1431 | +++ umonya/content/templates/resources.html 2011-07-24 15:31:18 +0000 |
1432 | @@ -0,0 +1,34 @@ |
1433 | +{% extends "base.html" %} |
1434 | +{% block content %} |
1435 | + <div id="right-content"> |
1436 | + |
1437 | + </div> |
1438 | + <div id="main-content"> |
1439 | + <h2>Resources</h2> |
1440 | + <div> |
1441 | + <p> |
1442 | + As part of an ongiong effort to assist learners, the set of notes used |
1443 | + throughout the workshop is publicly avaliable and can be found |
1444 | + <a href="http://umonya.co.za/pb/">here</a>. Later workshops will make |
1445 | + use of a new set of notes which volunteers are currently hard at work |
1446 | + writing. If you feel that you could make a contribution to this effort |
1447 | + through any means, please contact us |
1448 | + at <a href="mailto:admins@umonya.co.za">admins@umonya.co.za</a>. Upon |
1449 | + completion, the new notes will similarly be made |
1450 | + avaliable <a href="http://umonya.co.za/pb/">here</a>. |
1451 | + </p> |
1452 | + |
1453 | + <p> |
1454 | + If you have any further questions about the course, you can join us on |
1455 | + <a href="#TODO link to mibbit">#algorithm on Shadowfire</a>, an active |
1456 | + IRC channel which discusses programming, algorithms and related topics. |
1457 | + </p> |
1458 | + |
1459 | + <p> |
1460 | + In line with our larger goals, we also aim to help eager learners to run |
1461 | + programming clubs at their schools. Watch this space for supporting |
1462 | + resources and further updates. |
1463 | + </p> |
1464 | + </div> |
1465 | + </div> |
1466 | +{% endblock %} |
1467 | |
1468 | === added file 'umonya/content/templates/sponsors.html' |
1469 | --- umonya/content/templates/sponsors.html 1970-01-01 00:00:00 +0000 |
1470 | +++ umonya/content/templates/sponsors.html 2011-07-24 15:31:18 +0000 |
1471 | @@ -0,0 +1,28 @@ |
1472 | +{% extends "base.html" %} |
1473 | +{% block content %} |
1474 | + <div id="right-content"> |
1475 | + |
1476 | + </div> |
1477 | + <div id="main-content"> |
1478 | + <h2>Sponsors</h2> |
1479 | + {% for sponsor in sponsors %} |
1480 | + <div class="sponsor-box"> |
1481 | + <h4>{{ sponsor.name }} ({{ sponsor.years }})</h4> |
1482 | + <img src="{{ sponsor.image_path }}"> |
1483 | + <p>{{ sponsor.description }}</p> |
1484 | + <p></p> |
1485 | + </div> |
1486 | + {% endfor %} |
1487 | + |
1488 | + <h2>Collaborators</h2> |
1489 | + {% for sponsor in collaborators %} |
1490 | + <div class="sponsor-box"> |
1491 | + <h4>{{ sponsor.name }} ({{ sponsor.years }})</h4> |
1492 | + <img src="{{ sponsor.image_path }}"> |
1493 | + <p>{{ sponsor.description }}</p> |
1494 | + <p></p> |
1495 | + </div> |
1496 | + {% endfor %} |
1497 | + </div> |
1498 | + <div class="break"></div> |
1499 | +{% endblock %} |
1500 | |
1501 | === added file 'umonya/content/urls.py' |
1502 | --- umonya/content/urls.py 1970-01-01 00:00:00 +0000 |
1503 | +++ umonya/content/urls.py 2011-07-24 15:31:18 +0000 |
1504 | @@ -0,0 +1,16 @@ |
1505 | +from django.conf.urls.defaults import include, patterns |
1506 | +from django.views.generic.simple import direct_to_template |
1507 | + |
1508 | +urlpatterns = patterns( |
1509 | + 'umonya.content.views', |
1510 | + |
1511 | + (r'^sponsors' , 'sponsors'), |
1512 | + |
1513 | + # Direct to template |
1514 | + (r'^$' , direct_to_template, {'template':'home.html'}), |
1515 | + (r'^contact-us' , direct_to_template, {'template':'contact-us.html'}), |
1516 | + (r'^get-involved' , direct_to_template, {'template':'get-involved.html'}), |
1517 | + (r'^media' , direct_to_template, {'template':'media.html'}), |
1518 | + (r'^resources' , direct_to_template, {'template':'resources.html'}), |
1519 | + (r'^about-us' , direct_to_template, {'template':'about-us.html'}), |
1520 | +) |
1521 | |
1522 | === added file 'umonya/content/views.py' |
1523 | --- umonya/content/views.py 1970-01-01 00:00:00 +0000 |
1524 | +++ umonya/content/views.py 2011-07-24 15:31:18 +0000 |
1525 | @@ -0,0 +1,11 @@ |
1526 | +from annoying.decorators import render_to |
1527 | + |
1528 | +from umonya.content.models import Sponsor |
1529 | + |
1530 | + |
1531 | +@render_to('sponsors.html') |
1532 | +def sponsors(request): |
1533 | + return { |
1534 | + 'sponsors': Sponsor.objects.filter(type='Sponsor'), |
1535 | + 'collaborators': Sponsor.objects.filter(type='Collaborator'), |
1536 | + } |
1537 | |
1538 | === removed file 'umonya/form.html' |
1539 | --- umonya/form.html 2011-02-13 09:56:46 +0000 |
1540 | +++ umonya/form.html 1970-01-01 00:00:00 +0000 |
1541 | @@ -1,10 +0,0 @@ |
1542 | -{% extends "base.html" %} |
1543 | - |
1544 | -{% block content %} |
1545 | -<form action="." method="post"> |
1546 | - <table class="form"> |
1547 | - {{ form }} |
1548 | - </table> |
1549 | - <input type="submit" value="submit" /> |
1550 | -</form> |
1551 | -{% endblock %} |
1552 | |
1553 | === modified file 'umonya/manage.py' |
1554 | --- umonya/manage.py 2011-02-13 09:56:46 +0000 |
1555 | +++ umonya/manage.py 2011-07-24 15:31:18 +0000 |
1556 | @@ -1,4 +1,4 @@ |
1557 | -#!/usr/bin/python |
1558 | +#!/usr/bin/python2 |
1559 | from django.core.management import execute_manager |
1560 | try: |
1561 | import settings # Assumed to be in the same directory. |
1562 | |
1563 | === modified file 'umonya/settings.py' |
1564 | --- umonya/settings.py 2011-02-13 09:56:46 +0000 |
1565 | +++ umonya/settings.py 2011-07-24 15:31:18 +0000 |
1566 | @@ -1,80 +1,102 @@ |
1567 | # Django settings for umonya project. |
1568 | - |
1569 | +# For settings relevant to deployment, search the document for the word DEPLOY |
1570 | + |
1571 | +import os.path |
1572 | +project_dir = os.path.abspath(os.path.dirname(__file__)) |
1573 | + |
1574 | +# DEPLOY set to False |
1575 | DEBUG = True |
1576 | TEMPLATE_DEBUG = DEBUG |
1577 | |
1578 | -ADMINS = ( |
1579 | - # ('Your Name', 'your_email@domain.com'), |
1580 | -) |
1581 | - |
1582 | -MANAGERS = ADMINS |
1583 | - |
1584 | -DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. |
1585 | -DATABASE_NAME = '' # Or path to database file if using sqlite3. |
1586 | -DATABASE_USER = '' # Not used with sqlite3. |
1587 | -DATABASE_PASSWORD = '' # Not used with sqlite3. |
1588 | -DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. |
1589 | -DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. |
1590 | - |
1591 | -# Local time zone for this installation. Choices can be found here: |
1592 | -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name |
1593 | -# although not all choices may be available on all operating systems. |
1594 | -# If running in a Windows environment this must be set to the same as your |
1595 | -# system time zone. |
1596 | -TIME_ZONE = 'America/Chicago' |
1597 | - |
1598 | -# Language code for this installation. All choices can be found here: |
1599 | -# http://www.i18nguy.com/unicode/language-identifiers.html |
1600 | -LANGUAGE_CODE = 'en-us' |
1601 | - |
1602 | -SITE_ID = 1 |
1603 | - |
1604 | -# If you set this to False, Django will make some optimizations so as not |
1605 | -# to load the internationalization machinery. |
1606 | +# DEPLOY set this to the local postgresql or mysql db |
1607 | +DATABASES = { |
1608 | + 'default': { |
1609 | + 'ENGINE': 'django.db.backends.sqlite3', |
1610 | + 'NAME': os.path.join(project_dir, 'umonya.db'), |
1611 | + 'USER': '', |
1612 | + 'PASSWORD': '', |
1613 | + 'HOST': '', |
1614 | + 'PORT': '', |
1615 | + } |
1616 | +} |
1617 | + |
1618 | +# Locale |
1619 | +TIME_ZONE = 'Africa/Johannesburg' |
1620 | +LANGUAGE_CODE = 'en-za' |
1621 | USE_I18N = True |
1622 | +USE_L10N = True |
1623 | |
1624 | -# Absolute path to the directory that holds media. |
1625 | -# Example: "/home/media/media.lawrence.com/" |
1626 | +# User uploaded files variables. Currently not used |
1627 | MEDIA_ROOT = '' |
1628 | - |
1629 | -# URL that handles the media served from MEDIA_ROOT. Make sure to use a |
1630 | -# trailing slash if there is a path component (optional in other cases). |
1631 | -# Examples: "http://media.lawrence.com", "http://example.com/media/" |
1632 | MEDIA_URL = '' |
1633 | |
1634 | -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a |
1635 | -# trailing slash. |
1636 | -# Examples: "http://foo.com/media/", "/media/". |
1637 | -ADMIN_MEDIA_PREFIX = '/media/' |
1638 | +# Static file locations. DEPLOY The first two settings should be modified when |
1639 | +# deploying static files to a seperate URL. |
1640 | +STATIC_ROOT = '' |
1641 | +STATIC_URL = '/static/' |
1642 | +ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/' |
1643 | +STATICFILES_DIRS = () |
1644 | +STATICFILES_FINDERS = ( |
1645 | + 'django.contrib.staticfiles.finders.FileSystemFinder', |
1646 | + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', |
1647 | +) |
1648 | |
1649 | -# Make this unique, and don't share it with anybody. |
1650 | +# DEPLOY Change this value for actual deployed sites |
1651 | SECRET_KEY = 'mn=y5m0vfbcq1m6(84pkoove40&rel_^yzs$te4oq1c8ug^zsr' |
1652 | |
1653 | -# List of callables that know how to import templates from various sources. |
1654 | +# Misc |
1655 | +SITE_ID = 1 |
1656 | +ROOT_URLCONF = 'umonya.urls' |
1657 | +ADMINS = ( |
1658 | + ('Umonya Admins', 'admins@umonya.co.za'), |
1659 | +) |
1660 | +MANAGERS = ADMINS |
1661 | + |
1662 | +# Template Settings |
1663 | TEMPLATE_LOADERS = ( |
1664 | - 'django.template.loaders.filesystem.load_template_source', |
1665 | - 'django.template.loaders.app_directories.load_template_source', |
1666 | -# 'django.template.loaders.eggs.load_template_source', |
1667 | -) |
1668 | + 'django.template.loaders.filesystem.Loader', |
1669 | + 'django.template.loaders.app_directories.Loader', |
1670 | +) |
1671 | +TEMPLATE_DIRS = ( |
1672 | + os.path.join(project_dir, 'templates'), |
1673 | +) |
1674 | + |
1675 | |
1676 | MIDDLEWARE_CLASSES = ( |
1677 | 'django.middleware.common.CommonMiddleware', |
1678 | 'django.contrib.sessions.middleware.SessionMiddleware', |
1679 | + 'django.middleware.csrf.CsrfViewMiddleware', |
1680 | 'django.contrib.auth.middleware.AuthenticationMiddleware', |
1681 | ) |
1682 | |
1683 | -ROOT_URLCONF = 'umonya.urls' |
1684 | - |
1685 | -TEMPLATE_DIRS = ( |
1686 | - # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". |
1687 | - # Always use forward slashes, even on Windows. |
1688 | - # Don't forget to use absolute paths, not relative paths. |
1689 | -) |
1690 | |
1691 | INSTALLED_APPS = ( |
1692 | 'django.contrib.auth', |
1693 | 'django.contrib.contenttypes', |
1694 | 'django.contrib.sessions', |
1695 | 'django.contrib.sites', |
1696 | + 'django.contrib.staticfiles', |
1697 | + 'django.contrib.admin', |
1698 | + 'uni_form', |
1699 | 'umonya.apply', |
1700 | + 'umonya.content', |
1701 | ) |
1702 | + |
1703 | + |
1704 | +LOGGING = { |
1705 | + 'version': 1, |
1706 | + 'disable_existing_loggers': False, |
1707 | + 'handlers': { |
1708 | + 'mail_admins': { |
1709 | + 'level': 'ERROR', |
1710 | + 'class': 'django.utils.log.AdminEmailHandler' |
1711 | + } |
1712 | + }, |
1713 | + 'loggers': { |
1714 | + 'django.request': { |
1715 | + 'handlers': ['mail_admins'], |
1716 | + 'level': 'ERROR', |
1717 | + 'propagate': True, |
1718 | + }, |
1719 | + } |
1720 | +} |
1721 | |
1722 | === added directory 'umonya/templates' |
1723 | === added file 'umonya/templates/base.html' |
1724 | --- umonya/templates/base.html 1970-01-01 00:00:00 +0000 |
1725 | +++ umonya/templates/base.html 2011-07-24 15:31:18 +0000 |
1726 | @@ -0,0 +1,43 @@ |
1727 | +<!DOCTYPE html> |
1728 | +<html> |
1729 | + <head> |
1730 | + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
1731 | + <title>Umonya</title> |
1732 | + <link href="{{ STATIC_URL }}css/style.css" rel="stylesheet" type="text/css" media="screen"> |
1733 | + {% block extra_head %}{% endblock %} |
1734 | + </head> |
1735 | + <body> |
1736 | + <!-- MENU --> |
1737 | + <div id="header-wrap"> |
1738 | + <div id="header" class="content-wrap"> |
1739 | + <a href="/"><img src="{{ STATIC_URL }}img/umonya-small.png"></a> |
1740 | + <ul class="menu no-bullets"> |
1741 | + <li><a href="/get-involved">Get Involved</a></li> |
1742 | + <li><a href="/media">Media</a></li> |
1743 | + <li><a href="/about-us">About Us</a></li> |
1744 | + <li class="last-menu"><a href="/contact-us">Contact Us</a></li> |
1745 | + </ul> |
1746 | + <ul class="menu no-bullets"> |
1747 | + <li><a href="/">Home</a></li> |
1748 | + <li><a href="/events">Events</a></li> |
1749 | + <li><a href="/sponsors">Sponsors & Collaborators</a></li> |
1750 | + <li class="last-menu"><a href="/resources">Resources</a></li> |
1751 | + </ul> |
1752 | + </div> |
1753 | + </div> |
1754 | + <!-- END MENU --> |
1755 | + |
1756 | + <div id="content" class="content-wrap"> |
1757 | + {% block content %} |
1758 | + |
1759 | + {% endblock %} |
1760 | + </div> |
1761 | + |
1762 | + {% block extra_content %} |
1763 | + |
1764 | + {% endblock %} |
1765 | + <div id="footer"> |
1766 | + Copyright © 2011 |
1767 | + </div> |
1768 | + </body> |
1769 | +</html> |
1770 | |
1771 | === modified file 'umonya/urls.py' |
1772 | --- umonya/urls.py 2011-02-13 09:56:46 +0000 |
1773 | +++ umonya/urls.py 2011-07-24 15:31:18 +0000 |
1774 | @@ -1,19 +1,17 @@ |
1775 | -from django.conf.urls.defaults import * |
1776 | -from umonya.apply.views import * |
1777 | - |
1778 | -# Uncomment the next two lines to enable the admin: |
1779 | -# from django.contrib import admin |
1780 | -# admin.autodiscover() |
1781 | - |
1782 | -urlpatterns = patterns('', |
1783 | - (r'^apply/', include('umonya.apply.urls')), |
1784 | - # Example: |
1785 | - # (r'^umonya/', include('umonya.foo.urls')), |
1786 | - |
1787 | - # Uncomment the admin/doc line below and add 'django.contrib.admindocs' |
1788 | - # to INSTALLED_APPS to enable admin documentation: |
1789 | - # (r'^admin/doc/', include('django.contrib.admindocs.urls')), |
1790 | - |
1791 | - # Uncomment the next line to enable the admin: |
1792 | - # (r'^admin/', include(admin.site.urls)), |
1793 | +from django.conf import settings |
1794 | +from django.conf.urls.defaults import include, patterns |
1795 | +from django.contrib import admin |
1796 | +from django.contrib.staticfiles.urls import staticfiles_urlpatterns |
1797 | + |
1798 | +admin.autodiscover() |
1799 | + |
1800 | +urlpatterns = patterns( |
1801 | + '', |
1802 | + |
1803 | + (r'', include('umonya.content.urls')), |
1804 | + (r'^events/', include('umonya.apply.urls')), |
1805 | + |
1806 | + (r'^admin/', include(admin.site.urls)), |
1807 | ) |
1808 | + |
1809 | +urlpatterns += staticfiles_urlpatterns() |