46
edits
(14 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
* The project has been updated to run on Django 1.4 | * The project has been updated to run on Django 1.4 | ||
* A list of bugs and pending features is being constructed | * A list of bugs and pending features is being constructed | ||
== Mid-term evaluation == | |||
What has been done so far: | |||
* Updated the project to run on Django 1.4 | |||
* Add BrowserID support | |||
* Add an edit domain support #526467 | |||
* Add delete domain support | |||
* Add issues report support with a merge feature. | |||
* Improve comments support | |||
* Small fixes, cleanups | |||
What I plan to do until the end of the program: | |||
* #543614: Automated Checks | |||
* #591353: Allow to pin down some important configs of big ISPs | |||
* #588136: Make ispdb cache-friendly | |||
* #588155: Allow all values from config file XML to be put in the ISPDB database | |||
* Internationalization and localization | |||
* Improve UI (using Bootstrap and/or JQueryUI) | |||
== Weekly status updates == | == Weekly status updates == | ||
Line 73: | Line 92: | ||
For the next week, I'll work to improve comments support which are available through [https://docs.djangoproject.com/en/dev/ref/contrib/comments/ Django comments framework]. | For the next week, I'll work to improve comments support which are available through [https://docs.djangoproject.com/en/dev/ref/contrib/comments/ Django comments framework]. | ||
== 15/06 - 22/06 == | === 15/06 - 22/06 === | ||
After a few fixes, my pull request was reviewed and merged into Mozilla's repo. Now I'm finishing some pending tasks on comments feature to make another pull request. You can find the code on my comments branch. | After a few fixes, my pull request was reviewed and merged into Mozilla's repo. Now I'm finishing some pending tasks on comments feature to make another pull request. You can find the code on my comments branch. | ||
After I finish the comments branch, I'll start to work on [https://bugzilla.mozilla.org/show_bug.cgi?id=543614 Automated Checks]. | After I finish the comments branch, I'll start to work on [https://bugzilla.mozilla.org/show_bug.cgi?id=543614 Automated Checks]. | ||
=== 22/06 - 06/07 === | |||
During these two weeks I've been working on [https://bugzilla.mozilla.org/show_bug.cgi?id=543614 Automated Checks] feature. Currently it's implemented the following checks: | |||
* Domain Checks | |||
** Compare nameservers of the first domain against the others. | |||
** Check if domains has at least one MX server | |||
* Config Checks | |||
** Check if there is a better connection method available for incoming (IMAP and POP3) and outgoing servers (SMTP). | |||
** Check if supplied connection method is supported | |||
** Check if supplied authentication method is supported | |||
You can check out the code on [https://github.com/sergiocharpineljr/ispdb/tree/automated_checks my automated_checks branch]. | |||
=== 06/07 - 13/07 === | |||
Now automated checks feature is almost done. I've added checks for suggesting better authentication methods (if available) and for testing if the configured auth method is supported. Those informations are obtained from ehlo responses. These checks are now being displayed on the details page instead of open a new tab/window. | |||
Now I'll work on checking tld of MX servers to compare with tld of configured incoming/outgoing servers. And I'll have to create tests for all of this code. I'll use [http://code.google.com/p/pymox pymox] to mock dnspython, smptlib, poplib and imaplib. | |||
After finishing automated checks feature, I'll start to work on [https://bugzilla.mozilla.org/show_bug.cgi?id=588155 Bug 588155 - Allow all values from config file XML to be put in the ISPDB database]. I hope to finish [https://bugzilla.mozilla.org/show_bug.cgi?id=526468 Bug 526468 - Can't enter several documentation URLs] until the end of this week. | |||
=== 13/07 - 20/07 === | |||
Finally, I'm done with automated checks feature. You can check out the code [https://github.com/mozilla/ispdb/pull/7 here]. | |||
Now I'm working on [https://bugzilla.mozilla.org/show_bug.cgi?id=526468 Bug 526468 - Can't enter several documentation URLs] and [https://bugzilla.mozilla.org/show_bug.cgi?id=518319 Bug 518319 - Allow documentation pages in more languages]. It's getting a little tricky because we have nested forms with ManyToMany fields. | |||
=== 20/07 - 27/07 === | |||
I haven't finished bugs [https://bugzilla.mozilla.org/show_bug.cgi?id=526468 Bug 526468 - Can't enter several documentation URLs] and [https://bugzilla.mozilla.org/show_bug.cgi?id=518319 Bug 518319 - Allow documentation pages in more languages] yet. The view code was getting too complex, so I decided to transfer this complexity to the form and baseformset classes. | |||
Next week I'll finish these bugs, and work to get [https://github.com/mozilla/ispdb/pull/7 pull request 7] approved. | |||
=== 27/07 - 03/08 === | |||
After simplifying the views I could finish [https://bugzilla.mozilla.org/show_bug.cgi?id=526468 526468: Can't enter several documentation URLs]. Also I have progressed on [https://bugzilla.mozilla.org/show_bug.cgi?id=518319 Bug 518319 - Allow documentation pages in more languages], but we don't have support for all (or most) of the languages yet because I'm trying to find a better solution to add forms dynamically so we won't need to build manually a repeated hidden form. | |||
After that, I will work on [https://bugzilla.mozilla.org/show_bug.cgi?id=526469 526469: No field for enableURL]. | |||
=== 03/08 - 10/08 === | |||
During this week I've been working on [https://bugzilla.mozilla.org/show_bug.cgi?id=518319 Bug 518319 - Allow documentation pages in more languages] and [https://bugzilla.mozilla.org/show_bug.cgi?id=526469 Bug 526469 - No field for enableURL]. Like I said last week, we had to find a better solution to add forms dynamically. I'll explain better the problem. | |||
We are using hidden textarea elements which contains our "generic" forms. These generic forms have on their attributes [http://docs.jquery.com/Plugins/Validation JQuery Validation] tags, in our case "{1}-{0}", which are replaced with form prefix and indexes (it's the way Django deals with formsets). These generic forms were rendered manually (using html tags) instead of letting django render it for us. So, if we wanted to add a new language choice, we would need to change the model and the template. The template was getting huge too. | |||
To fix this I've tried to use [http://code.google.com/p/django-dynamic-formset django-dynamic-formset]. But it doesn't support nested forms easily. So I've decided to use the django formset's attribute "empty_form". By default, it will create a form with a "__prefix__" string, which should be replaced by the form index. But our code is expecting a "{1}-{0}" string. So I found that creating a base BaseModelFormSet class and override _get_empty_form method to change the prefix would be our best option. | |||
Now we are almost in the end of the program and I still have a few things to work on (hopefully most of them are small tasks). The list includes: | |||
* Finish automated_checks branch tests: Blake asked me to test if the errors and warnings are being created correctly. | |||
* Bug 588136: Make ispdb cache-friendly | |||
* Bug 591353: Allow to pin down some important configs of big ISPs | |||
* Documentation for developers (DEVELOPERS.md): Write a documentation file to help new developers. | |||
* Clean up code and make the project pep8 compatible | |||
Besides these tasks I hope I'll have time to work on Internationalization and localization. The plan is to localize all of the translatable strings so translators can contribute with the project. | |||
=== 10/08 - 20/08 === | |||
This is the last week of the project. Thanks Mozilla and specially bwinton for everything! I hope I'll contribute much more to the project. | |||
Now, to the tasks. While reviewing bugs [https://bugzilla.mozilla.org/show_bug.cgi?id=518319 Bug 518319 - Allow documentation pages in more languages], [https://bugzilla.mozilla.org/show_bug.cgi?id=526469 Bug 526469 - No field for enableURL] code, we've decided to create a common class for DocURL and EnableURL (and DocURLDesc and EnableURLInst) since they are similar. So CommonConfigURL and CommonURLDesc abstract model classes were created. | |||
For forms classes, we have created a LanguageDescModelForm class (for DocURLDesc and EnableURLInst). We should do the same for DocURL and EnableURL. The problem is: these classes are nested formsets (e.g. a config has a DocURL formset and each DocURL form has a DocURLDesc formset) and is not that simple to generalize it. But it should be done in the future. | |||
On Bug 591353: Allow to pin down some important configs of big ISPs, we've created a small locked boolean attr that can be changed using the admin interface. So, locked configs can't be changed. | |||
Also a small_fixes branch was created with a few small fixes like: remove unused attributes and methods, move form classes to forms.py, remove tabs, change port and socket_type order because js code changes the port when the user selects a socket type, submit it! link is not being updated, add end slash to URLS re in urls.py, etc. They are on [https://github.com/mozilla/ispdb/pull/11 pull request 11]. | |||
On [https://bugzilla.mozilla.org/show_bug.cgi?id=588136 bug 588136], I've proposed these cache settings: | |||
* add a default max-age of 600s. | |||
* for export_xml/id (exports a config XML): set no-cache to Cache-Control (it will cache but will always check with the server if the cache file is updated, and we can provide the last-update value using config.last_update_datetime) | |||
* list/xml/ (export list with config IDs and its last_update_datetime) - set no-cache to Cache-Control and use last-update as the most recent config.last_update_datetime | |||
They are already implemented on my bug_588136_cache branch. | |||
I didn't have time to work on Internationalization and Localization and to improve UI. Nested formsets took much more time than I had previewed. But I'll continue contributing to the project, and I hope these tasks will get done soon. |
edits