Граф коммитов

207 Коммитов

Автор SHA1 Сообщение Дата
James Socol 148035f415 Push celery logs to syslog when DEBUG=False. 2010-12-08 18:16:13 -05:00
Paul Craciunoiu 86645ba1fc [615354] Use mozilla/django-moz-header:
* adds two submodules at templates/global and media/global
* extends header/footer templates from templates/global now
* Moves reset CSS to reset.css
2010-12-08 13:54:46 -08:00
Paul Craciunoiu 8b674baa8a [478929] Resize avatars and restrict upload size. 2010-12-07 10:16:08 -08:00
James Socol d0d24a5b0e Remove settings with 'tiki'. 2010-12-07 12:57:56 -05:00
James Socol daf91013f3 Update profile_avatar to show the avatar or a default. [bug 616565, bug 614036] 2010-12-06 18:06:52 -05:00
Fred Wenzel fe2ece3855 Make list of ignored users changeable in the settings. Bug 617095. 2010-12-06 14:41:59 -08:00
Paul Craciunoiu 6bb15f7b6a [614011] AAQ login/register, now its own page.
* Register and log the user in right after
* Chowse input on text and UI
* Log the user out right after asking a question if they are not active yet.
* Pull out the common modals CSS into main.css
* Add handle_login and handle_register to share login/register code with users app (see apps/users/utils.py)
* Rename password1 to password so auth.login works properly when registering.
* Use different input ids for the registration form, so registration form and login form can be on the same page and the labels work properly.
2010-12-03 12:47:11 -08:00
James Socol c52900ffe6 Drop the identicons library. 2010-12-03 11:48:37 -05:00
James Socol aa9921df3d Move avatars up one level. 2010-12-03 11:48:37 -05:00
Fred Wenzel f8b4bf3365 Warn if Customercare stats data is outdated. Bug 612966. 2010-12-02 09:42:31 -08:00
Ricky Rosario a10cdef003 Implemented user account activation via confirmation email. [bug 614703] 2010-12-02 12:13:20 -05:00
Fred Wenzel 9effabdf32 Merge branch 'cc-tweet-summary-612952' 2010-12-01 16:36:15 -08:00
Fred Wenzel a6f1910595 Show tweet statistics in the Customer Care sidebar. Bugs 612952, 612966, 612960, 612964. 2010-12-01 16:35:40 -08:00
Paul Craciunoiu a523e8084c [614049] Profile model! Included: one test and test helper. 2010-12-01 15:22:54 -08:00
James Socol e61699c00d Add HidePasswordOnException middleware. [bug 601140] 2010-11-29 14:01:35 -05:00
Ricky Rosario 7213950d4b New users app for login, logout, and redirect (and more to come). [bug 613986, bug 614002, bug 612750, bug 612749]
* Includes a SHA-256 auth backend.
2010-11-24 12:16:15 -05:00
Paul Craciunoiu 1abafd88cb [560487] Add Maithili locale. 2010-11-22 14:55:23 -08:00
Fred Wenzel 1013db8b13 CC_SHOW_REPLIES setting to switch off showing tweet replies if necessary. Bug 612943. 2010-11-19 17:05:46 -08:00
Paul Craciunoiu b51d8b5cee [613329] Videos can link to CDN if setting provided. 2010-11-19 16:31:41 -08:00
Paul Craciunoiu 89a38e25d8 Also fix broken JS on home page after minification. 2010-11-19 15:09:36 -08:00
Paul Craciunoiu 3a77be46cf [609027] Video modal
* Adds a common function for video/image hooks
* Adds support for modal + placeholder html text + title
* Multiple modals on the same page
* Close modals with escape or by clicking on overlay
2010-11-19 13:55:26 -08:00
Paul Craciunoiu 44cb5fea46 Update categories: Navigation, How to, and renumbering.
* Add 'How to' category and include it in default search.
* Add 'Navigation' category.
* Renumber all categories to leave room for future changes.
2010-11-17 16:05:46 -08:00
Paul Craciunoiu 9d356ed7f9 Add chowse's video thumbnail placeholder and use it. 2010-11-16 13:34:11 -08:00
James Socol 5d70383a19 Ignore the vendor lib for string extration. 2010-11-15 16:52:50 -05:00
Paul Craciunoiu da17b1565d [604211] Delete and edit images and videos. Includes permissions.
* Added a new migration for gallery permissions: add, change, delete
* Draft titles are now abstracted to a constant and a function, get_draft_title
* Edits set the updated_by field
* Use ModelForm.save() when saving drafts.
* Add a delete confirmation page and refactor some CSS to share to-delete styling.
* Fix a JS error in safari, .delete property is reserved
* Fix draft form error display and some string changes for the upload form.
2010-11-12 12:36:09 -08:00
Erik Rose cc40a9aadd [575820] [602325] Implement nice tagging widget for KB document editing. Factor tagging widget out into its own app. Rename "Tags" to "Topics" in the wiki app.
Questions app has yet to be refactored to use the new app.
2010-11-11 21:23:18 -08:00
Paul Craciunoiu e69dbc7a7a [595376] Upload frontend for images and videos in the gallery
* Adds a modal form that runs the user step by step through the upload process, as described in http://people.mozilla.com/~chowse/drop/sumo/kb/v7/toolbox/03_media_gallery.png
* Extracts the code for wrapping inputs in forms and POSTing to iframes from upload.js into libs/jquery.ajaxupload.js
* During image upload, a user can cancel or edit the metadata (title, locale, description).
* Cancelling or uploading an invalid image changes the hint message above the image.
* Neat fact of the day: cancelling an iframe from loading can be done by changing it's src to null in JavaScript.
* This form does not work with JavaScript disabled. Must it?
* Modal form automatically opens if drafts exist
* No video upload validation yet.
* Simplify gallery urls.py
* Disable submit button while uploading
2010-11-11 14:12:28 -08:00
James Socol 7641075015 Update search filters with Help With selection [bug 610424] 2010-11-09 15:08:51 -05:00
James Socol 7c24fb4734 A KB-rebuild task. [bug 589853]
This adds a task that spawns seperate, child tasks that re-render the
knowledge base in 100-document chunks. It also adds a number of helpers
to access the main task. (wiki.tasks.rebuild_kb) The main task is rate-
limited to once every 20 minutes. The chunks are not rate limited right
now.

* settings.WIKI_REBUILD_ON_DEMAND
  - There may be cases, like a KB sprint, where it's more efficient to
    do periodic KB rebuilds. This setting (when False) disables all on-
    demand (e.g.: triggered through the app) rebuilds.

* wiki.tasks.schedule_rebuild_kb
  - This method will try to queue a rebuild_kb task provided certain
    conditions are met:
     * settings.WIKI_REBUILD_ON_DEMAND is True
     * There is not another queued rebuild_kb task.
    If both of these are true, queue a task and set the lock. (When a
    rebuild_kb task starts, it clears the lock.)

* wiki.views._maybe_schedule_rebuild(form)
  - When editing an existing document, we only need to rebuild if the
    title or slug has changed. This checks form.changed_data for either
    field, then calls schedule_rebuild_kb() if necessary.

* wiki.cron.rebuild_kb
  - For those times when on-demand rebuilds are too frequent, we can
    schedule this cron, which just fires off the rebuild_kb task.
2010-11-09 13:01:36 -05:00
Paul Craciunoiu 6c20d6c15e [596116] Unicode in filenames now supported in upload app. And more.
* Convert latin1 tables to utf8 (also give them an explicit collation)
* Add settings for max filename length and validate the form against them.
* Add form validation messages.
* Uploading images through ajax now works (iframe access was denied).
* Alter all filename fields in the db to increase the max_length.
* Organize upload tests better.
2010-11-03 14:23:17 -07:00
Ricky Rosario 35192472b3 Styled the "Help with:" selects. Uses jquery.selectbox plugin. [bug 607301] 2010-11-01 19:33:08 -04:00
James Socol ce54806721 Create a new chat app. [bug 605476]
Created a new app because it involves multiple views and a cron. The
cron will need to be set up to run once/minute. It does a proxy request
to the chat server (settings.CHAT_SERVER) to get the queue status, then
stores the result in the cache (settings.CHAT_CACHE_KEY). The
/chat/queue-status/ view dumps out whatever's in the cache or returns a
503 status if the cache is empty.
2010-11-01 10:17:50 -04:00
Fred Wenzel ce9fafcb6b Infinite scrolling for Customer Care page. Bug 606342. 2010-10-28 16:49:37 -07:00
James Socol 0b4b2fe31f Add middleware to replace + with %20 in URLs.
Among the other changes to the KB, while PHP's urldecode() maps + to a
space, Django does not. Hence all the old URLs had + in place of %20.

This middleware checks the path for +s, and redirects with %20s if it
finds any. It doesn't touch the query string.
2010-10-28 11:50:00 -04:00
Erik Rose 1d71650444 [603808] Built out infrastructure for the Localization (and Contributor) Dashboards.
* Markup, CSS, templates, and queries for the Overview and Untranslated Articles localization summaries are in place, though there's still some optimization to do.
* Add a `number()` template function for localized thousands formatting, etc.
* Stub out Contributors Dash view just so we can reverse() to it.
* Add trivial tests. Perhaps horrific ones testing the accuracy of the queries will follow. Perhaps.
* To come: WebTrends integration and the rest of the dashboard readouts
2010-10-26 16:20:32 -07:00
Paul Craciunoiu 8f58c81bd8 [586478] New home page
Create a new home page at /home/ that pulls in editable content from
the wiki. Involves some tweaks to the wiki templates. Also add the rest
of the KB categories.

* Hard coded top side can be localized with gettext
* Not tested for IE
* Migration to create initial templates
* Inherits from wiki base template

As the new design propagates to the rest of the site, we need to make
the common/layout templates the base of both wiki and home page.
2010-10-25 12:11:47 -04:00
James Socol 4aa9140cea Say hello to KB discussion. [bug 602958]
Adds a `kbforums` app, which is a clone of the `forums` app with a few
tweaks:

* The top-level `Forum` model is replaced by `wiki.models.Document`.
* The permissions have been simplified. There are no per-document forum
  permissions.
* The `Document` does not track its `last_post`.
* `Post.author` has been renamed to `Post.creator` following our ad hoc
  standard.
* The ability to override `Post.created` and `Post.updated`, only used
  in the data migration, is gone.
* Moving threads is gone. This needs more thought, and moving to the
  `forums` app is non-trivial.
2010-10-20 10:50:18 -04:00
Paul Craciunoiu ffdc45bfd2 [604524] Image, Video and Template hooks fall back to English version.
* fall back if locale-specified version does not exist.
* return message if English version does not exist either.
* make wiki_to_html() and parse() receive and pass around locale
2010-10-15 14:51:26 -07:00
James Socol 3a929b1aa3 Server-side read-only implementation, thanks Jeff! [bug 570284] 2010-10-11 17:44:37 -04:00
Paul Craciunoiu e664ef5c3d [600747] Video hook and render with Flash fallback.
* Videos are identified by title and locale
* Depends on an update in py-wikimarkup which adds support for <video> and <source> tags (py-wikimarkup commit cc06e6d264622891b6b018e8670c9ef4bb12d618)
* Attaches all the _hook_*s to the WikiParser class, because they need a contextual locale.
* Adds locale support for any of the hooks that do document lookup.
* Uses SWFobject JS lib to support flash fallback for video.
* Adds a migration for unique ('locale', 'title') on gallery_video and gallery_image
* Adds a WIKI_VIDEO_WIDTH|HEIGHT constant that may be used as MAX_WIDTH|HEIGHT in the future, once we get video thumbnails.
2010-10-07 15:07:19 -07:00
Paul Craciunoiu a8816900ee Upgrade modernizr 1.1 -> 1.5 2010-10-07 14:48:16 -07:00
Ricky Rosario adfc4b746b * Refactored Marky for easier customization between the different apps
* Added Marky to wiki content textareas
* Added headings (H1, H2, H3) buttons to editor on wiki pages [bug 601693]
2010-10-07 17:31:52 -04:00
James Socol 559c348ec1 More handy updates to Sphinx tests, thanks to Dave. 2010-10-06 11:36:18 -04:00
James Socol 3af9ceacad Search view is returning results from the new KB. 2010-10-05 18:48:15 -04:00
Ricky Rosario f96d6f402a Removed empty gallery js bundle 2010-10-05 12:35:48 -04:00
James Socol bc4945311c Enable X-Frame-Options: DENY headers. 2010-10-01 11:13:24 -04:00
Erik Rose 2ab1e820da [573546] Wrap each request in a transaction. 2010-09-29 15:34:47 -07:00
Alex Buchanan 591d88614f Customer Care, when prompting for auth, remember which tweet a user is replying to 2010-09-29 12:25:51 +00:00
Ricky Rosario 8a85a71eb2 Added `ready for review` notification [bug 599022]
* Includes a change to the notifications app to allow watching a model (all instances), instead of just a single instance.
2010-09-28 17:46:59 -04:00
Alex Buchanan 1ad3f3567f Customer Care. Twitter OAuth and template fixes. 2010-09-27 15:59:31 -07:00
Alex Buchanan f919dbde27 Customer Care templates 2010-09-27 15:59:00 -07:00
Fred Wenzel 78f55c9b91 Customer Care is born. Tweet collection included! 2010-09-27 15:57:41 -07:00
Paul Craciunoiu 1dc607416a Adding locales Akan[ak] (bug 586383) and Armenian[hy-AM] (bug 586318) 2010-09-24 11:37:51 -07:00
Ricky Rosario 3b794ae54f Implemented Translation review template. [bug 595857] 2010-09-23 12:15:48 -04:00
Erik Rose 905cbe4edb [597254] Implement sticky OS and browser selection on KB documents.
Also correct bug where BrowserDetect sometimes isn't defined. browserdetect.js should be loaded before wiki.js, which uses it.
2010-09-22 11:29:19 -07:00
Erik Rose da74a1828b [597252] Build browser/version and OS sniffing for document pages.
Also switch to namedtuples for several tuples that were getting too big for their britches. Now we don't have to continually add items to unpacks all over the app when tuples grow.

Cookies to come.
2010-09-21 12:23:48 -07:00
Paul Craciunoiu 57f3f568f5 [592674] Media gallery uploads backend
* Raise FixtureMissingError in test helpers, e.g. on creating media gallery image and wiki revision, instead of creating testuser
* Add ImageUploadForm and VideoUploadForm
* Simplify gallery app's urls.py
* Adds a bunch of gallery utils to create and upload media
* Adds two views up_media_async, del_media_async
* Rename upload_images to upload_imageattachments
* Define a more generic upload_media function to be used by the gallery app
* Document some of our coding conventions
* Add a migration for the video model
* Define a MAX_FILESIZE for video uploads (16 megabytes), overwritable in settings_local.py
2010-09-15 15:23:58 -07:00
James Socol fca08430f3 [bug 578067] Upgrade to celery 2 2010-09-14 13:52:38 -04:00
James Socol 39ad6fefbb [bug 595370] Add the server name to the wsgi environment. 2010-09-10 18:58:44 -04:00
Ricky Rosario 0d7b90380f [bug 592671] Media and media gallery page 2010-09-10 14:35:12 -04:00
Paul Craciunoiu 28061e093f [592670] Media gallery models: a gallery app
Includes:
* migrations for the models
* a shared abstract model Media for the concrete Image and Video models
* restricting locale choices in the gallery and wiki models
* some check.py complaints and cleanup
* a documentation section for production regarding upload paths
2010-09-07 13:16:21 -07:00
Paul Craciunoiu 28997476c5 [592100] Adding slug for documents and use it for internal links
* Also checks for existence of document in parser._getWikiLink
* Add JS support for slug. Uses django's URLify function combined with their jQuery plugin, prepopulate
* Add migration 35 to add the slug column to the model
* Using django's urlquote/urlencode and removing our related sumo tests
2010-09-02 13:37:32 -07:00
James Socol b448c414a2 [bug 591029] Use a different context preprocessor. 2010-09-01 17:51:23 -04:00
Paul Craciunoiu 8d435a7953 [586176] Deleting image leaves thumbnail behind.
* Don't save thumbnail twice, wait until it's generated.
* [590004] Fixes foreign key leakage in tests - test_utils.TransactionTestCase truncated django_content_type. Landed a fix in test_utils and added a setting to use it, TEST_UTILS_NO_TRUNCATE
* No more SkipTests in the upload app. Hoping Hudson shows mercy and passes all of them this time.
* Change ImageAttachment docstring to reflect reality.
2010-08-31 12:07:34 -07:00
Erik Rose c7da7d9728 [590776] LocaleURLMiddleware's setting of a thread-local prefixer is now reversed when the request ends, removing one source of apparently random test failures. A short book follows:
* Make LocaleURLMiddleware clean up after itself: clear the thread-local prefixer variable that it sets before the request. Tests can now run in any order without the thread-local setting of one influencing the next. This also uncovers a lot of buggy tests which were mistakenly depending on the work of previous ones. Much of the rest of this changeset is toward fixing these.... A good test to compare before and after this commit is `test_json_callback_validation`. Run it alone, and LocaleMiddleware tosses us a 301 because we don't have a locale prefix set. Run it in concert with other tests, and somebody else sets the thread-local for it.
* Added `LocalizingClient`, which provides the functionality of django.test.client.Client but implicitly prepends a locale code to anything you request. This saves dodging the initial 301 that LocaleURLMiddleware returns in response to an un-prepended request. It also makes "priming" the middleware by doing an initial arbitrary request unnecessary (and ineffective, since the middleware no longer leaks state). Removed all instances of such priming.
* Switched many tests to use `LocalizingClient`. Some uses of plain `Client` remain, but those are correct, since they test things like the middleware's 301s.
* Renamed `set_url_prefix` and `get_url_prefix` to better reflect their purpose: they hold Prefixers, not prefixes.
* Added a `force_locale` kwarg to `sumo.urlresolvers.reverse()`, which forces the same default locale as would normally be used by the middleware to be prepended onto the result, even if there is no prefixer set. This is useful when you need to get a reversed URL against which to compare a 301's Location in a test.
* Moved `split_path()` out of `Prefixer`, since it needs no instance state and I needed it in `LocalizingClient`.
* `Prefixer` can now be instantiated without a request, in which case it defaults to a fairly blank one and returns results largely determined by `settings.LANGUAGE_CODE`.
* Stopped expecting locale prefixes in wiki parser tests: the parser is being run outside any request and so should return unlocalized URLs.
* Ripped `get_url` off the legacy `Forum` and `ForumThread` models and deleted its tests. This was a lot faster than trying to fix them, and the entire models are dying for 2.3 anyway.
* Fixed a gabillion other tests. I like to think I understood each one's intent before causing it to pass, but extra eyes are certainly welcome.
* Fixed some pyflakes violations: semicolons, whitespace, unused imports, etc.
2010-08-27 13:57:29 -07:00
Ricky Rosario 9eb84ce307 Some boilerplate for wiki app. 2010-08-26 15:36:53 -04:00
Erik Rose 45c4b993f0 Make firefox_versions and operating_systems delegate to the parent document so we can store this data only once.
Other minor improvements:
* Move content_parsed to Document and comment it out. Whoever needs it can uncomment and test it.
* Rename parent inverse relationship to "translations".
* Start testing operating_systems attr.
2010-08-26 15:36:53 -04:00
Erik Rose 0298e71116 Start wiki app and add skeletal models.
Still plenty to do, but we should be able to collaborate on the rest as we implement.
2010-08-26 15:36:51 -04:00
James Socol 8b91fe68ac [bug 584931] Send no-cache headers on HTTPS responses. 2010-08-06 11:17:59 -04:00
James Socol d98bcd5c9a [bug 584543] Removing the remaining traces of Hunspell and DidYouMean. 2010-08-05 12:28:48 -04:00
Erik Rose 2b7a896dfc [579205] Implement search-based article suggestions when asking a new question.
* Added offset and limit kwargs to SearchClient.query(): handy now for AAQ suggestion search, maybe handy later for more efficient pagination.
* Refactored search clients. They now have a _prepare() method for setting up the sphinx client prior to querying, so we don't have to repeat query().
2010-07-30 20:43:12 -04:00
Paul Craciunoiu 58b33d719a [582847] Add upload limit (1MB) and enforce it. Also fix up some JS quirks with error reporting in the modal dialog to improve UX. 2010-07-29 16:49:48 -07:00
Erik Rose afaac7af31 [581108, 581584] Implement auto-tagging based on product, category, OS, and FF version. Drop "Intel" and "PPC" from Mac OS names.
* Tags are added for full and tenths-place variants (e.g., 4.0.1 and 4.0) of known Firefox versions.
* An OS will be auto-tagged if there exists a tag with its name (case insensitive). (I posit ease of administration outweighs risk of abuse.)
* Finished off questions_config based on Cww's etherpad.
* Show user agent string in System Details pop-up.
2010-07-29 10:56:36 -07:00
Paul Craciunoiu 8d9a069f8c [578520] Delete images and upload with no JS, thumbnail generation and ImageAttachments. 2010-07-28 14:13:01 -07:00
Paul Craciunoiu 5495c6ecdf [578520] Add preliminary support for uploading images and basic tests. Use ImageAttachments and generate thumbnails on upload. 2010-07-28 14:12:35 -07:00
Ricky Rosario 8af5336d9b Implemented object flagging app, flagit, for 'Report this post'
functionality (bug 573068)
2010-07-27 11:15:57 -04:00
James Socol 716a9a07b9 [bug 576361] _lazy() strings are now extracted, and forums and questions
apps are ignored.
2010-07-23 08:35:40 -07:00
Ricky Rosario d17cdd7a87 Implemented top contributors list (bug 573075) 2010-07-22 09:25:21 -04:00
Joshua Gross e4fa1270a6 Turn on build-ID processor and reactive cache decorator for jsi18n (bug 576131) 2010-07-21 09:31:22 -07:00
Paul Craciunoiu 1ecb40b2de [569033] Adding hook for image with basic syntax and tests, move WikiParser to parser.py 2010-07-16 15:42:07 -07:00
Erik Rose 2babd7c851 [569285] Implement question tagging based on django-taggit, which has a nicer API and less-intrusive schema requirements than django-tagging.
* Introduce an autocomplete widget with decent user feedback on both adding and removal. Should be reusable elsewhere without much work. Also has non-JS fallback.
* Tag storage for the autocompleter is client-side, which lets us take reaction time from 300ms (or greater) down to around 0. Also provides lighter server load, and, as a side effect, containment search for tags rather than just prefix (the former being tricky to index with MySQL). Uses linear search atm, but performance on an 814-word vocab is acceptable on a 2GHz i7.
2010-07-12 14:10:20 -07:00
James Socol 444855dd82 [bug 575705] Sorting Questions by recent 'me, too' votes
Adds a column to questions.models.Question that tracks votes per week.
The denormalized column has an index for fast sorting.

Also adds a cron job, designed to be run once a day during a low-traffic
period, that resyncs the new column.
2010-07-12 13:09:44 -07:00
Stas eecf219098 [bug 554205] Localizing Javascript 2010-06-30 15:29:13 -07:00
Ricky Rosario 1fc72d3699 Implemented voting for questions / "I have this problem too" (bug 573072) 2010-06-29 13:38:55 -04:00
James Socol ed2ebc8098 Merge branch 'questions' into development 2010-06-23 17:24:31 -07:00
Ricky Rosario daab8b8494 Implemented `Ask a Question` (bug 569282) 2010-06-22 17:03:41 -04:00
Ricky Rosario 406206667e Added admin views for settings and environment (bug 572837) 2010-06-18 16:27:13 -04:00
Erik Rose 203e06cbb9 Adjust settings to use new pinning database router and middleware.
Audit forum views for master-slave race conditions. Added a few comments about possible ones but didn't find any that can't be equally caused by our autocommitting.
2010-06-18 13:23:12 -07:00
Paul Craciunoiu dbe6e48cac Do not assume that create/edit urls are the same. Add |get_edit_url| to WikiPage model. 2010-06-10 12:01:42 -07:00
Paul Craciunoiu fe43b7e6c3 Internal links check page exists. 2010-06-10 12:01:42 -07:00
Ricky Rosario 8eb19c64b4 Implemented questions template (bug 565367) 2010-06-10 14:18:01 -04:00
Ricky Rosario a4bd5575bb created forums css bundle and a forums/base.html to include it (bug 568015) 2010-06-08 13:25:16 -07:00
James Socol fe112ea361 Clean up from Dave's comments and add the migration to install the questions app. 2010-06-08 13:25:16 -07:00
James Socol 2fbf3ae4bc [bug 570292] remove django-pylibmc from requirements.txt 2010-06-04 23:56:30 -07:00
James Socol 29d25f4bdc Adding management command to generate avatars for users without them. 2010-06-02 10:51:39 -07:00
James Socol 79acb5f013 Notifications app tests 2010-06-01 22:01:16 -07:00
James Socol a9f19fced0 Starting the notifications app (bug 563991) 2010-06-01 22:01:15 -07:00
Paul Craciunoiu f97f5f0f9a Add search UI for discussion forums and update views. Add tests, update sphinx config where necessary, and clean up search tests. 2010-06-01 21:57:09 -07:00
Paul Craciunoiu fc1170454d Creating access app for permissions-related utils, decorators and helpers. 2010-06-01 17:23:12 -07:00
Paul Craciunoiu 4f26a61e0c Adding Iloko [ilo] locale. 2010-06-01 16:55:52 -07:00