modinfo in the translate toolkit is now a 2-tuple containing the mtime and
[pootle.git] / ChangeLog.pre-0.8
blobb2e7387d32a22efe7e193c2a1180ea81477aa155
1 2005-04-20 11:16  davidfraser
3         * README, TODO, __init__.py, adminpages.py, indexpage.py,
4           pagelayout.py, pootle.prefs, pootle.py, pootlefile.py, potree.py,
5           projects.py, translatepage.py, users.py, versioncontrol.py,
6           html/favicon.ico, html/pootle.css, html/robots.txt,
7           html/doc/howto.html, html/doc/index.html,
8           html/doc/resources.html, html/images/edit.png,
9           html/images/file.png, html/images/folder.png,
10           html/images/gap.png, html/images/goal.png, html/images/logo.png,
11           html/images/person.png, html/images/pootle-medium.jpg,
12           html/images/pootle-small.jpg, html/images/pootle.jpg,
13           html/images/pootle.svg, html/images/top.png,
14           html/js/autoexpand.js: removed translate/pootle (moving to
15           Pootle)
17 2005-04-19 21:52  davidfraser
19         * indexpage.py: added UI for adding users to a goal, showing users
20           in a goal
22 2005-04-19 21:23  davidfraser
24         * indexpage.py, projects.py: added logic to handle multiple goals
25           although we actually preserve single goals made it possible to
26           deallocate something by setting no goal don't display useless
27           information about goals renamed addfiletogoal to setfilegoals as
28           that's usually what we want to do
30 2005-04-19 21:05  davidfraser
32         * indexpage.py, projects.py: added infrastructure code to support
33           users in goals (simple copy of file code) renamed set goal to
34           setgoalfiles only show goals for a file if the file has multiple
35           goals
37 2005-04-19 20:47  davidfraser
39         * projects.py: simple code cleaning...
41 2005-04-19 17:57  davidfraser
43         * translatepage.py, html/js/autoexpand.js: added grow and shrink
44           buttons using javascript made other button captions localizable
46 2005-04-19 01:14  dwaynebailey
48         * users.py: Activate a uer from the admin page.  Does not do
49           deactivation.
51 2005-04-19 01:02  dwaynebailey
53         * adminpages.py, potree.py: You can now edit: special characters,
54           the number of plurals and the plural equation from the language
55           admin page.
57 2005-04-19 00:46  dwaynebailey
59         * pagelayout.py: Added quick links to "All Projects" and "All
60           Languages"
62 2005-04-19 00:15  dwaynebailey
64         * indexpage.py, pootle.py: Add a page that lists all languages on
65           the Pootle server.
67 2005-04-14 09:37  davidfraser
69         * pootlefile.py, projects.py, translatepage.py: allow users with
70           translate rights to upload existing files, but don't add new
71           strings...  also use username to record who uploaded changes
72           fixed up call to rejectsuggestion, removed session from assignto
73           function def
75 2005-04-14 09:32  davidfraser
77         * adminpages.py: added title, link to home page to
78           TranslationProjectAdminPage
80 2005-04-14 09:21  davidfraser
82         * indexpage.py: added link to administrate the translationproject
83           if you have the rights redid the layout of baselinks in the
84           process allow the uploadbox if you have translate rights (this
85           will deny new files however)
87 2005-04-14 08:58  davidfraser
89         * projects.py, adminpages.py, indexpage.py: added proper rights
90           controls for uploading/updating files, converting from templates
91           and setting goals created InternalAdminSession class which
92           projects can use when it does changes internally without a
93           session
95 2005-04-11 17:41  davidfraser
97         * translatepage.py: when actually submitting translations, we
98           should use pofilename that was supplied in the argdict for the
99           submission, not self.pofilename
101 2005-04-11 16:41  davidfraser
103         * translatepage.py: suggestions seem to be normal strings
104           sometimes, this should fix it till we find out why
106 2005-04-11 16:26  davidfraser
108         * translatepage.py: only add links to current folder, stats if
109           self.pofilename is not None (when a search is finished / returns
110           no items, self.pofilename is None)
112 2005-04-07 16:54  davidfraser
114         * pootlefile.py, projects.py: reset the encoding when rereading the
115           pofile (otherwise it won't decode properly!) only freshen the
116           newpofile on versioncontrol update, it should be read by the
117           constructor
119 2005-04-07 14:53  davidfraser
121         * indexpage.py: added tooltip to explain lack of link when no
122           untranslated items are present...
124 2005-04-07 14:53  davidfraser
126         * pootle.py: unified return-after-login logic, made it work with no
127           returnurl
129 2005-04-05 23:16  davidfraser
131         * indexpage.py, projects.py: tried to fix up subdirectory handling
132           of goals, needs more work
134 2005-04-05 22:47  davidfraser
136         * indexpage.py: renamed setgoal to editgoal
138 2005-04-05 22:45  davidfraser
140         * indexpage.py, projects.py: added ability to set files /
141           directories exclusively to goals also fixed bnad syntax (calling
142           list) note that this is not aware of files being contained inside
143           directories yet
145 2005-04-05 22:36  davidfraser
147         * projects.py, indexpage.py: changed linksrequired for goal items
148           renamed methods, restructured so files are only accessed in
149           getgoalfiles make sure goalfiles are not empty string fixed using
150           username instead of session
152 2005-04-05 22:32  davidfraser
154         * pagelayout.py, html/images/pootle-medium.jpg,
155           html/images/pootle-small.jpg, html/images/pootle.jpg: added small
156           and medium versions of pootle image, and updated them all from
157           new svg logo
159 2005-04-05 22:15  davidfraser
161         * html/images/pootle.svg: added background, changed page layout to
162           fit image, and centred image (landscape mode now)
164 2005-04-05 22:03  davidfraser
166         * html/images/pootle.svg: changed color of nose and mouth, aligned
167           them, removed center of mouth made logo on hat smaller combined
168           two segments of hat, and added outline made background blue, took
169           away purple border
171 2005-04-05 22:00  davidfraser
173         * html/images/pootle.svg: added SVG logo for Pootle from Lucas
174           Veietes
176 2005-04-05 19:28  dwaynebailey
178         * indexpage.py: "Quick Translate" is now always visible but
179           disabled if there are no items to translate.  Should probably be
180           greyed out instead of just not have a link.
182           As a policy I think we need to ensure that: 1) You only see
183           things that you are allowed to see with your rights 2) Things do
184           not disappear they just get disabled.
186 2005-04-05 17:22  davidfraser
188         * indexpage.py, projects.py: fixed up funny empty items in
189           goalfiles list added ability to show items in goal by clicking on
190           goal title
192 2005-04-05 17:11  davidfraser
194         * indexpage.py, pootle.py: changed links for goal to include check,
195           assign, review and zip implemented zip of goal
197 2005-04-05 17:00  davidfraser
199         * indexpage.py: added ability to show goals as entries, to add new
200           goals, to place goalless files in goals tried to sanitize link
201           generation for options etc as well
203 2005-04-05 16:57  davidfraser
205         * potree.py: fixed docstring
207 2005-04-05 16:51  davidfraser
209         * pagelayout.py: added tediously inane GoalItem class
211 2005-04-05 16:50  davidfraser
213         * html/images/goal.png: added images for goals
215 2005-04-05 16:49  davidfraser
217         * html/pootle.css: added goal style
219 2005-04-05 16:20  davidfraser
221         * projects.py: modified getrights to the siteadmin always has admin
222           rights to all projects more enhancements to the goals
223           functionality (adding files to a goal, getting a specific goal,
224           etc) fixed setting the attribute to "goalname" instead of
225           goalname
227 2005-04-05 14:19  davidfraser
229         * pagelayout.py: was only initializing adminlink if
230           session.issiteadmin() or not session.isopen, changed to
231           initialize correctly
233 2005-04-05 12:31  davidfraser
235         * translatepage.py: wrong variable name
237 2005-04-04 10:34  dwaynebailey
239         * indexpage.py: You should only be able to remove assigns if you
240           actaully have the rights to assign them in the first place.
242 2005-04-03 16:06  dwaynebailey
244         * translatepage.py: Use the quotes Luke
246 2005-04-02 12:51  davidfraser
248         * projects.py: added initial goals interface cleaned out blank
249           lines
251 2005-04-02 12:44  davidfraser
253         * pootlefile.py: updated doc string
255 2005-04-02 12:40  davidfraser
257         * potree.py: do something with the new translationproject created,
258           and don't store getpodir result when just using it for a check
260 2005-04-02 12:38  davidfraser
262         * pootle.py, potree.py, projects.py: moved POTree into its own new
263           module, potree
265 2005-04-02 11:57  davidfraser
267         * indexpage.py, pootlefile.py, projects.py, translatepage.py: moved
268           pootlefile class into its own new file, and adjusted projects etc
269           also cleaned up links in indexpage
271 2005-04-02 11:35  davidfraser
273         * adminpages.py, indexpage.py, pootle.py, users.py: moved various
274           classes from indexpage into new module adminpages, and
275           UserOptions into users
277 2005-04-01 23:12  davidfraser
279         * indexpage.py: removed extraneous function call
281 2005-04-01 17:23  davidfraser
283         * projects.py, indexpage.py, pootle.py, translatepage.py: removed
284           the terrible concept known as 'TranslationSession' implement
285           rights checking in the TranslationProject added "assign" and
286           "admin" rights
288 2005-04-01 16:45  davidfraser
290         * indexpage.py, projects.py: made a method on the project that gets
291           the rights and localized names available for that project (moved
292           from indexpage)
294 2005-04-01 16:28  davidfraser
296         * indexpage.py, pootle.py, projects.py: implented permissions
297           system, with ability for administrator to change permissions each
298           translation project now has a prefs file
299           (pootle-projectcode-languagecode.prefs in the po directory) this
300           has a rights attribute, which stores default rights, nobody
301           rights, and rights for individual users the administrator can go
302           to /language/project/admin.html to edit the rights
304 2005-04-01 13:49  davidfraser
306         * projects.py, translatepage.py: if a entry is accessed in
307           project.pofiles and it is not there, but the file exists, then
308           update the index (this can happen if the timecache expires for
309           example) handle files being added / removed more robustly as well
310           also improved logic for setting and using pofilename in
311           translatepage (was fairly inconsistent)  - receivetranslations
312           shouldn't set self.pofilename  - also we now pick up pofilename
313           from dirfilter if explicitly a PO file
315 2005-03-31 21:02  dwaynebailey
317         * pootle.prefs, translatepage.py: If you define "specialchars" in a
318           language preferences then those characters will be displayed with
319           the input widget allowing users to copy and paste these
320           characters into the translation.  Usefull if you do not have a
321           keyboard configured with these characters.
323 2005-03-31 20:15  dwaynebailey
325         * translatepage.py: Make sure that end never points to a negative
326           item.  This happens when the number of items is less than
327           pagesize.  We disable the link in this case but just fixing this
328           cause we can and it will stop it biting us later.
330 2005-03-31 19:02  dwaynebailey
332         * TODO: More buglets
334 2005-03-31 11:54  davidfraser
336         * indexpage.py, versioncontrol.py: only show update links if the
337           directory has version control
339 2005-03-31 08:56  dwaynebailey
341         * translatepage.py: In viewmode navifgation widget: - Start and End
342           are now disabled if you are at the beginning or end of the
343           file.
345 2005-03-31 00:41  dwaynebailey
347         * translatepage.py: Make the viewmode navigation more intuative and
348           user friendly: - Added Start and End links - Next 10 and Previous
349           10 do not disappear but are disabled if you are at the   start or
350           end of the file (confusing when they disappear)
352 2005-03-30 23:04  dwaynebailey
354         * indexpage.py: Move Zip of folder up to the navbar.  Remove the
355           addnavlink method as we have no more need for this.
357 2005-03-30 19:59  dwaynebailey
359         * TODO: Some interesting new TODO items
361 2005-03-30 17:47  davidfraser
363         * versioncontrol.py: backup the file first and restore or remove it
364           afterwards for cvs update this avoids having lots of
365           .#filename.rev files left around
367 2005-03-30 17:24  davidfraser
369         * projects.py: don't use sources to match items as thats a nice
370           idea for Mozilla/OpenOffice which use IDs as sources but a
371           horrible idea for everything else
373 2005-03-30 17:13  davidfraser
375         * projects.py, versioncontrol.py: updated CVS/svn update method so
376           that it now actually checks out the new version from CVS, to
377           update the record of which version is current.  refactored
378           mergefile and created new matchitems method which mathces up
379           poitems from two files and returns them use the new matchitems to
380           extract current changes (equivalent to a cvs diff) and then merge
381           those with the new file (equivalent to a cvs patch) also moved
382           local function mergeitem to be a method, made it not try to find
383           headers check properly for full name and email address when doing
384           Last_Translator in versioncontrol, created helper shellescape and
385           added update methods as well as introspecting what version a file
386           is when getting a clean copy (BASE doesn't work here...)
388 2005-03-30 13:47  davidfraser
390         * TODO, translatepage.py: added a copy button
392 2005-03-30 11:48  davidfraser
394         * indexpage.py, projects.py, versioncontrol.py: added simple
395           versioncontrol module (CVS method from
396           http://software.cnx.rice.edu/downloads/python/pycvs/) and added
397           initial implementation for merging with latest CVS/.svn version -
398           this runs but what it actually *does* hasn't been tested also a
399           few cleanups in projects.py
401 2005-03-30 00:29  dwaynebailey
403         * translatepage.py: Make translation column headers translatable
405 2005-03-29 22:06  dwaynebailey
407         * translatepage.py: There are always 7 items on a translatable page
408           even if you are starting at the beginning.
410 2005-03-29 19:51  dwaynebailey
412         * users.py: Add some value catches for email., password and full
413           name to ensure that the default example values are not used.
415 2005-03-29 18:53  dwaynebailey
417         * users.py: Correcting some confusing or incorrect wording in user
418           creation
420 2005-03-29 16:35  dwaynebailey
422         * indexpage.py: Do not display the __dummy__ user Use getattr
423           function for getting email addresses as it can cope when there is
424           no value set.
426 2005-03-29 16:32  dwaynebailey
428         * pagelayout.py: Add an "Admin" quicklink if the user is a
429           siteadmin.
431 2005-03-28 15:09  dwaynebailey
433         * projects.py: The "Last-Translator" header field is now updated
434           during normal translation.  No update is performed for a
435           suggestion but probably should be done - but who do we credit the
436           suggestor or the approver?
438 2005-03-28 09:56  dwaynebailey
440         * indexpage.py: Assignments now appear in alphabetical order
442 2005-03-27 20:40  dwaynebailey
444         * indexpage.py: "Show Checks" is not sorted alphabetically.  had to
445           eliminate yield, iteritem and others so that we can sort the
446           dictionary keys.  This should allow us to alternatively sort
447           these lists by the values also.
449 2005-03-27 14:01  dwaynebailey
451         * indexpage.py, pagelayout.py, pootle.py, translatepage.py: When a
452           user logs in they will be redirected to the folder that they were
453           browsing when they decided to login.
455           TODO currently if they are viewing a file they will be returned
456           to the folder that they started the view from they will not be
457           returned to the place were they were viewing.
459 2005-03-24 18:03  davidfraser
461         * translatepage.py: since PO files now handle encodings, all the
462           strings are unicode when grepping, so the searchtext should be
463           unicode too...
465 2005-03-24 16:50  dwaynebailey
467         * pagelayout.py: Quick link to users home page
469 2005-03-24 15:32  dwaynebailey
471         * indexpage.py: Remove "project root" from the sidebar and
472           integrate it into the top navbar
474 2005-03-24 14:34  dwaynebailey
476         * indexpage.py: No need for "current folder" and "parent folder" on
477           indepage as these are know accesibale throught the top directory
478           navigation bar.
480 2005-03-24 14:25  dwaynebailey
482         * indexpage.py: Make the title base links browsable so that you can
483           jump straight back to anywhere in the heirachy.
485 2005-03-22 07:29  dwaynebailey
487         * translatepage.py: Translation input textarea will now resize
488           depending on the size of the original or the translation.  The
489           maximum is an arbitrary 10 rows.
491 2005-03-18 18:48  davidfraser
493         * TODO: added TODO abuot detecting languages
495 2005-03-18 18:40  davidfraser
497         * users.py: fixed syntax after actually running it :-)
499 2005-03-18 18:37  davidfraser
501         * projects.py: don't allow people to change English, and added TODO
503 2005-03-18 18:18  davidfraser
505         * users.py: don't allow a space in the email address
507 2005-03-18 15:06  dwaynebailey
509         * projects.py: Update PO-Revision-Date with proper timezone info.
510           Seems that there is a bug in Python where it forgets timezone
511           info.
512           http://mail.python.org/pipermail/patches/2003-July/012899.html
514 2005-03-18 14:45  davidfraser
516         * indexpage.py, projects.py: allow updating from templates from
517           project admin page renamed "create" to "converttemplates" which
518           is more accurate fixed it so it uses the new uploadpofile removed
519           debug print statement
521 2005-03-18 14:34  davidfraser
523         * projects.py: merged addnewpofile and mergepofile into
524           uploadpofile fixed variable name in mergeitems
526 2005-03-18 14:27  davidfraser
528         * indexpage.py, projects.py: added merging ability via mergefile
529           currently this copies translations if the existing translation is
530           blank, adds new strings (not in old file), and makes any changed
531           strings suggestions factored out getuploadpath from addnewpofile,
532           and added equivalent mergepofile these should probably both be
533           merged down to uploadpofile also use mergepofile from create,
534           though this needs development
536 2005-03-18 13:24  dwaynebailey
538         * indexpage.py, pootle.py, projects.py: Only make MO files
539           available to logged in users.
541 2005-03-18 13:08  davidfraser
543         * TODO: have fixed accepting/rejecting suggestions
545 2005-03-18 13:00  davidfraser
547         * projects.py: remove printout of track messages made
548           deletesuggestion actually find the relevant suggestion for the
549           correct item and delete that rather than just using suggitem as
550           an index into the whole pending file this still needs
551           improvements, but at least its not always wrong now
553 2005-03-18 12:38  davidfraser
555         * indexpage.py: refactored actions that can take place on IndexPage
556           into handleactions ensure that actions delete their arguments
557           from self.argdict, so they aren't placed into other links by
558           makelinks other argument handling moved to after handleactions
560 2005-03-16 12:38  davidfraser
562         * indexpage.py: added a localizable page title that includes the
563           projectname and the languagename
565 2005-03-16 12:19  davidfraser
567         * indexpage.py, pootle.py, projects.py: removed unneccessary
568           construction of translation before we try that construction :-)
569           added "archive" right which allows people to download zip files,
570           give it to logged-in users only display link to archive if
571           allowed to download it
573 2005-03-15 16:15  davidfraser
575         * translatepage.py: handle getting to the end of a translation
576           (self.item is None) when reviewing, and don't get suggestions
578 2005-03-15 16:11  davidfraser
580         * projects.py: actually create the directory when a new project is
581           created
583 2005-03-15 15:23  davidfraser
585         * pootle.py: made English the default language
587 2005-03-15 15:20  davidfraser
589         * projects.py: speedup for getlanguagecodes so it doesn't end up
590           recursing through directories looking for GNU files
592 2005-03-15 14:44  davidfraser
594         * pootle.py: get the correct encoding for PO files and set on the
595           header
597 2005-03-13 20:46  dwaynebailey
599         * indexpage.py, pootle.py, users.py: Allow users to change their
600           personal details
602 2005-03-13 11:21  dwaynebailey
604         * users.py: We now capture the users full name at registration.
605           Reordered the fields into something more logical.
607 2005-03-11 17:38  dwaynebailey
609         * pootle.prefs: Example setup for MO file generation
611 2005-03-11 17:32  dwaynebailey
613         * indexpage.py, pootle.py, projects.py: Allow download of MO files,
614           compiled on the fly from the PO file.
616           Admin users can specify if a project creates MO files.  Projects
617           like OpenOffice.org, Mozilla, etc do not need MO file ever.
619           Correct HTTP content header to indicate correct encoding for CSV
620           and PO files (NOTE: this might cause a problem if the underlying
621           PO file is not UTF-8 encoded)
623 2005-03-11 17:22  davidfraser
625         * indexpage.py, projects.py: added ability to handle uploading zip
626           files (needs refinement) moved checking of upload file existence
627           from indexpage to projects use cStringIO rather than StringIO
629 2005-03-11 16:58  davidfraser
631         * projects.py: made hasgnufiles recurse subdirectories, and also
632           handle no languagecode (any language) also now uses directories
633           to detect non-gnustyle languagematch can also match any language
634           now if languagecode is None, using languagere
636 2005-03-11 16:57  davidfraser
638         * indexpage.py: slight simplification of
639           ProjectAdminPage.getlanguageitem
641 2005-03-11 16:41  davidfraser
643         * projects.py: implemented adding new languages to project based on
644           template .pot files added new method isgnustyle which returns
645           whether a whole project is gnustyle (needed when adding a new
646           language)
648 2005-03-11 15:49  davidfraser
650         * indexpage.py, pootle.py, projects.py: added project admin page
651           added ability to add new languages to a project (not yet
652           available for GNU-style projects) improved logic of hasproject
654 2005-03-11 15:18  davidfraser
656         * projects.py: handle regions being separated with _ and -
658 2005-03-11 15:10  davidfraser
660         * indexpage.py, projects.py: rather create the new file from within
661           the TranslationProject (this also allows us to add new checks...)
663 2005-03-11 13:57  davidfraser
665         * indexpage.py, projects.py: implemented PO file uploading also
666           converted the TranslationProject's initpootlefiles method to a
667           scanpofiles which will add / remove files that have appeared /
668           disappeared
670 2005-03-10 17:08  davidfraser
672         * translatepage.py: extract the stopped message directly rather
673           than using str() as the StopIteration won't handle unicode
674           properly (note that unicode(stoppedby) seems to call str first,
675           giving the same problem...)
677 2005-03-10 16:37  davidfraser
679         * pootle.py, translatepage.py: instead of returning to the
680           indexpage mystically when a search is finished, display a message
681           on the translatepage to indicate that (and display no
682           translations) this could be cleaned up but it already should make
683           things a lot cleaner...
685 2005-03-10 16:11  davidfraser
687         * pootle.py: updated to handle change to jToolkit requiring
688           webserver object (used for locking, logging etc) this will
689           require jToolkit source from 20050310 or later...
691 2005-03-09 13:33  dwaynebailey
693         * indexpage.py: Incorrect title for the user selected list of
694           languages
696 2005-03-09 13:26  dwaynebailey
698         * translatepage.py: Make "current folder" localizable
700 2005-03-08 22:27  davidfraser
702         * TODO, indexpage.py: made arguments to indexpage sticky (will be
703           remembered when going to other links, where sensible) this is
704           mostly done through the makelink method which can take keyword
705           arguments and override parameters, but otherwise includes all the
706           argdict parameters also added a helper getboolarg method for
707           reading boolean argument values
709 2005-03-08 21:35  davidfraser
711         * indexpage.py, pootle.py: split admin page up so projects and
712           languages are in separate pages
714 2005-03-08 16:06  davidfraser
716         * TODO: have done English login as default, and running without
717           Pootle PO files clarified that the PO files that need to be
718           generated are the Pootle ones
720 2005-03-08 16:01  davidfraser
722         * TODO: added TODOs from Durban feedback
724 2005-03-08 16:01  davidfraser
726         * projects.py: implemented removing languages / projects from
727           pootle don't try add a language unless a code is given
729 2005-03-07 22:20  dwaynebailey
731         * users.py, indexpage.py: Add capturing of user full name to the
732           user admin page
734 2005-03-07 21:31  dwaynebailey
736         * pootle.prefs: dummy needs and email address also
738 2005-03-07 21:26  dwaynebailey
740         * indexpage.py: Add missing new project field descriptors.
742 2005-03-07 16:45  davidfraser
744         * pootle.py: handle missing languages for pootle
746 2005-03-07 16:44  davidfraser
748         * pootle.prefs: fixed the dummy user so it doesn't cause problems
750 2005-03-07 16:24  davidfraser
752         * pootle.py, projects.py: add in more error checks and safeguards
753           for live translation, don't require it for pootle to run
755 2005-03-07 13:42  davidfraser
757         * users.py: replaced wrong variable name ...
759 2005-03-07 12:52  dwaynebailey
761         * indexpage.py: Correcting a localize problem Added entry fields
762           for project checker on the admin page
764 2005-03-04 17:16  davidfraser
766         * indexpage.py, projects.py, translatepage.py, html/pootle.css:
767           added the ability to show tracks of what has been changed...
769 2005-03-04 16:17  davidfraser
771         * TODO, indexpage.py, projects.py: added unassignments and remove
772           links to remove assignments...
774 2005-03-04 15:49  davidfraser
776         * indexpage.py: added link to user admin page
778 2005-03-04 15:42  davidfraser
780         * TODO: added yet more thigns to do :-)
782 2005-03-04 15:34  davidfraser
784         * indexpage.py, pootle.py, users.py: added user admin page where
785           you can add pages
787 2005-03-03 18:48  davidfraser
789         * projects.py: don't assume classname is in self.classify (from a
790           traceback, this happened)
792 2005-03-03 18:42  davidfraser
794         * projects.py: updated gettext with real code from ugettext
796 2005-03-03 13:46  davidfraser
798         * projects.py: make regional directory names return the full path,
799           not just the name
801 2005-03-02 23:52  davidfraser
803         * projects.py: removed debug print statements for ugettext
805 2005-03-02 23:49  davidfraser
807         * translatepage.py: only show assigns box if showassigns is true
808           (need a way to set this parameter without adding it to the URL
809           manually) disabled assignments requirement for now...
811 2005-03-02 09:35  davidfraser
813         * projects.py: readpofile got deleted inadvertently in last commit,
814           restoring
816 2005-03-01 21:57  davidfraser
818         * pootle.py, projects.py: use the pootle project to translate
819           itself live, by adding the required methods to the
820           TranslationProject and hooking them up in the server
822 2005-03-01 20:57  davidfraser
824         * pootle.prefs, projects.py: simplified po directory structure
825           rather than allowing multiple directories, allow only one,
826           defined on the instance as podirectory also, don't allow/require
827           the user to specify the $project and $language components of the
828           directory directories must be defined as project/language under
829           the main po directory for GNU-style directories, they must simply
830           be project under the main po directory
832 2005-02-28 17:20  davidfraser
834         * indexpage.py: only show the assignment box if show assigns is
835           selected
837 2005-02-26 00:42  davidfraser
839         * translatepage.py: added assign box for site admin on translate
840           page also set default search to only search assignments... this
841           needs to be fixed up properly!
843 2005-02-26 00:13  davidfraser
845         * indexpage.py, projects.py: added basic interface to let site
846           admin assign things to users
848 2005-02-25 23:37  davidfraser
850         * indexpage.py, projects.py: added interface to show assignments
852 2005-02-16 16:54  davidfraser
854         * html/doc/resources.html: added a link to the wiki
856 2005-02-16 12:19  davidfraser
858         * html/doc/: index.html, resources.html: added explanation, link to
859           resources, and took out leftover "up" link
861 2005-02-16 12:09  davidfraser
863         * pagelayout.py: added link to documentation
865 2005-02-16 12:09  davidfraser
867         * html/doc/index.html: added simple doc index
869 2005-02-16 12:03  davidfraser
871         * html/doc/howto.html: fixed links that pointed to html dir
873 2005-02-14 16:55  davidfraser
875         * projects.py: simplified the code for checking language / region
876           codes using sre
878 2005-02-14 16:46  davidfraser
880         * projects.py: added a function to make filenames with language and
881           region code match for gnu-style projects note that this implies
882           that if there is more than one region for a language, all the
883           regions will match
885 2005-02-14 14:03  davidfraser
887         * projects.py: fixed alphanum -> alnum and allow underscores in
888           project names
890 2005-02-11 14:36  dwaynebailey
892         * html/doc/howto.html: HOWTO use Pootle by Kamber Dotan
893           <kamberd@yahoo.com>
895 2005-02-10 17:45  davidfraser
897         * projects.py: added some simple PyLucene-based indexing (only will
898           run if PyLucene is installed) this needs to be redone to handle
899           individual items, but already speeds up text search a lot by
900           skipping over files that don't have the given text
902 2005-02-04 09:01  davidfraser
904         * projects.py: if we don't have a new project code, then ignore the
905           blank value...
907 2005-02-04 08:58  davidfraser
909         * projects.py: added better check for projectcode (could contain
910           numbers too)
912 2005-02-04 08:54  davidfraser
914         * indexpage.py: added title for checker style, and actually
915           retrieve it TODO: get rid of these getter methods, do it sensibly
916           :-)
918 2005-02-04 08:49  davidfraser
920         * projects.py: fixed pychecker errors (session -> self.session,
921           unneccessary import, variable misname, unused variable)
923 2005-01-30 18:34  dwaynebailey
925         * indexpage.py, pootle.prefs, projects.py: You can now set the
926           checker style for the project.  Might be good to later make this
927           more fine grained so yo can make custom syles.
929 2005-01-28 18:41  davidfraser
931         * indexpage.py: if the user doesn't have any quicklinks, explain
932           why...
934 2005-01-28 18:40  davidfraser
936         * TODO: now have an admin page :-)
938 2005-01-28 18:33  davidfraser
940         * indexpage.py, pootle.py: added general options section to admin
941           page, code to change options to PootleServer added default values
942           for title and description, set them if missing in PootleServer
944 2005-01-28 18:14  davidfraser
946         * indexpage.py, projects.py: ability to add new languages and
947           projects via the admin page
949 2005-01-28 18:04  davidfraser
951         * indexpage.py: added titles to admin page tables, made sure Remove
952           %s is localized
954 2005-01-28 17:58  davidfraser
956         * indexpage.py, pootle.py, projects.py: added projects editing to
957           language page, similar to language editing
959 2005-01-28 17:50  davidfraser
961         * indexpage.py, pootle.py, projects.py: added admin page which
962           should let the site admin add/remove/change languages/projects
963           etc underlying changes are done through the potree which can now
964           save the prefs file
966 2005-01-28 17:26  davidfraser
968         * users.py: a cleaner way of validating the projects and languages
969           in a user's prefs...
971 2005-01-28 17:14  davidfraser
973         * users.py: make sure that if there are no projects or languages
974           defined we don't return a "" code...
976 2005-01-28 17:01  davidfraser
978         * indexpage.py, pootle.py: split up the user options into a
979           separate page took out verbose admin page description
981 2005-01-28 16:54  davidfraser
983         * indexpage.py: replaced all the strange ways of setting up titles
984           with a simple pagelayout.Title in so doing corrected a h2 ... h3
985           that caused layout problems
987 2005-01-28 16:37  davidfraser
989         * indexpage.py, pagelayout.py: added pagelayout.Title class to
990           prevent repitition (only one entry changed) added a link to a
991           (not yet existing) site admin page if the user is a siteadmin
993 2005-01-28 16:34  davidfraser
995         * users.py: make sure that the session's prefs get updated when the
996           session is opened or closed add a method to check if the current
997           user has site admin rights
999 2005-01-28 16:09  davidfraser
1001         * pagelayout.py: removed some stuff from the Sidebar (shrinking it
1002           to move it to the top)
1004 2005-01-28 16:07  davidfraser
1006         * indexpage.py, pootle.py: added about page, with more details
1007           about the pootle project etc (moved some of that off the home
1008           page)
1010 2005-01-28 15:29  davidfraser
1012         * pootle.py, users.py: changed my/ home directory to home/ (after
1013           all, my/ is Burmese :-)) simplified PootleSession code by adding
1014           .prefs attribute started adding rights code
1016 2005-01-28 15:07  davidfraser
1018         * pootle.py: go to user page after login
1020 2005-01-25 07:32  davidfraser
1022         * indexpage.py: added language titles to user quicklinks
1024 2005-01-25 07:23  davidfraser
1026         * indexpage.py: only show projects that exist in user quicklinks
1028 2005-01-25 07:21  davidfraser
1030         * indexpage.py: added quick links to project-language combinations
1031           for user fixed up docstrings
1033 2005-01-25 07:02  davidfraser
1035         * users.py, indexpage.py, pootle.py: movied saveuserprefs onto the
1036           session object added ability to set user languages in my page
1037           save prefs when user changes options
1039 2005-01-24 21:52  davidfraser
1041         * pootle.py, indexpage.py, users.py: added functions to help store
1042           user prefs added initial /my page where the user can choose
1043           projects
1045 2005-01-24 17:50  davidfraser
1047         * TODO: added TODO about plurals
1049 2005-01-24 17:36  davidfraser
1051         * pootle.py, users.py: moved some more registration / activation
1052           code into the users module where it belongs
1054 2005-01-24 17:14  davidfraser
1056         * projects.py: return the first string for plural msgstr (and added
1057           a TODO to handle this properly)
1059 2005-01-24 16:08  davidfraser
1061         * users.py: fixed an old session.localize that should have been
1062           self, and was misspelt!
1064 2005-01-20 12:27  davidfraser
1066         * translatepage.py: reduce needs an initial value in case diffcodes
1067           is empty (no difference)
1069 2005-01-20 10:50  davidfraser
1071         * html/pootle.css: added border for diff styles so that the
1072           insertion / removal place can be seen in the other string even
1073           though it contains no text
1075 2005-01-20 10:43  davidfraser
1077         * translatepage.py, html/pootle.css: use tags to represent
1078           different kinds of changes when displaying diffs this gives us
1079           red background for removed text, green for added, yellow for
1080           modified
1082 2005-01-19 22:48  davidfraser
1084         * indexpage.py: added a link to an archive of the current folder's
1085           po files don't actually need to import projects as we use
1086           everything via the potree object
1088 2005-01-19 22:47  davidfraser
1090         * pootle.py, projects.py: added ability to make archives of zip
1091           files, either using the zip command line tool or python's zipfile
1092           module (which is slower)
1094 2005-01-19 20:54  davidfraser
1096         * pootle.py: set localedomains so it's not required in the prefs
1097           file
1099 2005-01-19 20:15  davidfraser
1101         * TODO: fixed escaping and quoting problems
1103 2005-01-19 20:12  davidfraser
1105         * projects.py: added methods "unquotefrompo" and "quoteforpo" to
1106           mirror the functions in translate.storage.po, but allow us to
1107           tweak them as desired the only current required tweak is to
1108           ignore the \r before \n sent with submitted text strings
1110 2005-01-19 16:24  davidfraser
1112         * projects.py: we shouldn't include escapes in unquoted strings...
1114 2005-01-19 14:01  dwaynebailey
1116         * TODO: Some pointers for compilation
1118 2005-01-19 13:39  davidfraser
1120         * translatepage.py: try to space out the original text better using
1121           the line breaks from the po file handle quoting of the pofilename
1122           properly when its in a URL (other + will get translated to space)
1124 2005-01-19 12:40  davidfraser
1126         * projects.py: added a custom filter error handler so errors in
1127           filters don't prevent work happening, they just record the filter
1128           as failing
1130 2005-01-19 11:18  davidfraser
1132         * translatepage.py: escape orig and trans text properly also escape
1133           inside suggestions which needs to be done when highlighting the
1134           diffs to prevent confusion
1136 2005-01-19 10:52  davidfraser
1138         * indexpage.py, pagelayout.py: always display the project root, and
1139           give it some proper text (project and language) and description
1140           also display it before the current/parent folder add ability to
1141           have tooltip in folderlinks
1143 2005-01-19 10:51  davidfraser
1145         * projects.py: store the projectdescription as an attribute on the
1146           TranslationProject
1148 2005-01-19 10:35  davidfraser
1150         * indexpage.py: added projectdescription in other indexes
1152 2005-01-19 10:32  davidfraser
1154         * pootle.py, projects.py: check if project exists at all when
1155           looking in projects folder (e.g. 'favicon.ico' is not a project
1156           :-)) ability to check if project exists at all when languagecode
1157           is none in potree.hasproject
1159 2005-01-19 10:31  davidfraser
1161         * html/pootle.css: make table titles bold centered and colored
1163 2005-01-19 10:24  davidfraser
1165         * pootle.py: ignoring languagenames if the list is empty has now
1166           been done in jToolkit
1168 2005-01-14 13:08  dwaynebailey
1170         * indexpage.py, pootle.prefs, projects.py: Projects listed on the
1171           front page now have a tooltip which gives a short description of
1172           the project.
1174 2005-01-14 13:03  davidfraser
1176         * indexpage.py, pagelayout.py, pootle.py, translatepage.py,
1177           users.py: fixed up localize code - generally use self.localize
1178           instead of session.localize since that isn't available everywhere
1179           if no languages are avilable for login, don't show the dropdown
1180           box
1182 2005-01-14 12:14  davidfraser
1184         * pagelayout.py, html/favicon.ico: added favicon support
1186 2005-01-13 15:16  dwaynebailey
1188         * TODO: Bug in searching at the PO files level
1190 2005-01-13 15:08  dwaynebailey
1192         * TODO: Goto specific message wish
1194 2005-01-12 15:09  dwaynebailey
1196         * indexpage.py, pagelayout.py, projects.py, translatepage.py,
1197           users.py: Add session.localize everywhere so that we can create
1198           translated versions of Pootle.  Still needs language selection
1199           enabled and checking to see that we have everything and haven't
1200           broken anything.  Then translation can begin. Only about 250
1201           words of translation required.
1203 2005-01-12 14:31  davidfraser
1205         * TODO: what's the point of a TODO list if it doesn't keep growing?
1206           stuff heather wants, and registration is basically working now
1208 2005-01-12 12:52  davidfraser
1210         * pootle.py, users.py: started moving user handling code into new
1211           users.py module
1213 2005-01-12 12:03  davidfraser
1215         * pootle.py: improved some mesages
1217 2005-01-12 12:00  davidfraser
1219         * pootle.py: remove inadvertent commit
1221 2005-01-12 11:51  davidfraser
1223         * pootle.py: don't show session status unless it is! show link when
1224           redirecting
1226 2005-01-12 11:44  davidfraser
1228         * pootle.py: more email cleanup, use mailer support for reply-to so
1229           it works properly
1231 2005-01-12 11:37  davidfraser
1233         * pootle.py: make registration errors have their own class so we
1234           don't miss underlying errors added support email address improved
1235           messages do real check for email address, only check password on
1236           new registration
1238 2005-01-12 11:09  davidfraser
1240         * pootle.py: tried to simplify registration / activation process by
1241           automatically filling in username where possible also try to add
1242           a direct activate link to the account creation email, and tried
1243           to improve email error message
1245 2005-01-12 10:49  davidfraser
1247         * html/robots.txt: exclude search engines from pootle
1249 2005-01-11 16:37  davidfraser
1251         * TODO: we can now detect languages in GNU-style directories by
1252           checking if there any files for a language
1254 2005-01-11 14:05  davidfraser
1256         * projects.py: do a full recount for refreshstats handle mismatch
1257           of string type between msgid and msgstr
1259 2005-01-11 13:59  davidfraser
1261         * projects.py: make sure if a project is gnu-style that we check
1262           that files actually exist before reporting hasproject = True
1264 2005-01-10 16:48  davidfraser
1266         * pootle.py: extracted main into separate function
1268 2005-01-10 16:47  davidfraser
1270         * projects.py: added further check on modify time in timecache
1272 2005-01-10 13:06  davidfraser
1274         * projects.py: added initial code to try and reduce memory
1275           requirements by using a timecache for pofiles and expiring them
1276           (reverting from parsed file to mere stats) after 15 minutes
1278 2005-01-10 12:31  davidfraser
1280         * translatepage.py: error when search finished didn't include
1281           searchtext
1283 2005-01-10 11:36  davidfraser
1285         * TODO: have done separate prefs files for users, changed priority
1286           of upload
1288 2005-01-10 10:46  davidfraser
1290         * pootle.py: updated to work with new loginchecker in jToolkit, and
1291           handle separate userprefs files
1293 2005-01-05 19:41  dwaynebailey
1295         * TODO: Some wishes and some bugs
1297 2004-12-31 17:21  dwaynebailey
1299         * TODO: Allow custom headers for downloaded PO files so that users
1300           will not have to configure (or break things) with a po file in
1301           for instance PO edit.
1303 2004-12-20 12:29  davidfraser
1305         * TODO: added TODO about quotes
1307 2004-12-17 12:48  davidfraser
1309         * pagelayout.py: added link to Activate since the redirection seems
1310           broken and people can't find it
1312 2004-12-17 10:53  dwaynebailey
1314         * README: Reflow and other layout fixes.  Make things read a bit
1315           better and ... I'm sure add some spelling mistakes.
1317 2004-12-14 16:30  davidfraser
1319         * html/images/: edit.png, file.png, folder.png, person.png: added
1320           new icon images
1322 2004-12-14 15:21  davidfraser
1324         * translatepage.py: show the number of strings in the current po
1325           file in the current position also calculate lastitem correctly if
1326           its the last item in the file
1328 2004-12-09 17:16  davidfraser
1330         * pagelayout.py, translatepage.py, html/pootle.css: added
1331           background color alternation for translations note that tooltips
1332           for checks are now gone ...
1334 2004-12-09 16:32  davidfraser
1336         * translatepage.py, pagelayout.py, html/pootle.css: put odd and
1337           even styles into css rather than calculating font colors
1339 2004-12-09 15:30  davidfraser
1341         * translatepage.py: stopped automatically limiting to assigned work
1342           when logged in instead, use URL parameters. Still need to create
1343           links to these ...
1345 2004-12-09 13:31  davidfraser
1347         * translatepage.py: added page links to bottom of form too made
1348           page link numbers viewable for humans by adding 1 :-)
1350 2004-12-09 13:13  davidfraser
1352         * translatepage.py: refactored pagelinks into getpagelinks, added
1353           description of current items
1355 2004-12-09 12:53  davidfraser
1357         * translatepage.py: don't show translated text as a text area if
1358           you can't change it
1360 2004-12-09 12:52  davidfraser
1362         * TODO: added TODOs that have come up through testing
1364 2004-12-09 12:49  davidfraser
1366         * indexpage.py, translatepage.py: changed links for quick
1367           translate, review suggestions so they are present even if user
1368           has no rights, but have a different name don't switch into view
1369           mode if user can't translate, as they can only skip through the
1370           translations anyway
1372 2004-12-09 12:44  davidfraser
1374         * translatepage.py: implemented more fine-grained rights control
1375           over which buttons are shown added some docstrings allow
1376           reviewmode even if not allowed to review, as only skip buttons
1377           will be shown
1379 2004-12-09 12:34  davidfraser
1381         * pootle.py, projects.py: generate RightsErrors if people try and
1382           make changes they're not allowed to
1384 2004-12-09 12:28  davidfraser
1386         * indexpage.py, projects.py, translatepage.py: added basic rights
1387           management.  currently this limits any changes to logged-in
1388           users. it only works by disabling links, more work is needed
1390 2004-12-09 12:08  dwaynebailey
1392         * TODO: Add wish for download of compiled PO and Qt .ts files
1394 2004-12-08 11:14  davidfraser
1396         * indexpage.py: fixed main link which should always point to the
1397           current folder
1399 2004-12-08 11:10  davidfraser
1401         * indexpage.py, pagelayout.py: polarity was done before sort, fixed
1402           it so its easy to set on the item and do it after the sort
1404 2004-12-07 16:58  davidfraser
1406         * html/images/pootle.jpg: hand-drawn cartoon
1408 2004-12-07 16:53  davidfraser
1410         * indexpage.py, pagelayout.py, html/pootle.css: added switching
1411           background color for alternating item rows
1413 2004-12-07 16:38  davidfraser
1415         * indexpage.py: made headings always link to item so we don't need
1416           "Browse/View" added getbrowseurl function to make that easier
1417           added option to say which links are required from getactionlinks
1418           leave out checks by default, only show in heading changed checks
1419           to show/hide checks based on current value fixed showchecks
1420           detection (work if it comes in as unicode)
1422 2004-12-07 16:21  davidfraser
1424         * html/pootle.css: added icon style (floating)
1426 2004-12-07 16:16  davidfraser
1428         * indexpage.py, pagelayout.py: added some icons, and sorted
1429           directories and files added an Icon class
1431 2004-12-06 23:03  davidfraser
1433         * projects.py, translatepage.py: record who suggested a suggestion
1434           in the msgid comment, look it up when displaying it later. fairly
1435           crude
1437 2004-12-06 22:46  davidfraser
1439         * README, projects.py: keep track of our latest pomtime in
1440           pootlefile so we re-read the file if it changes we use
1441           self.pomtime to reflect whether we have parsed the file as well
1442           (note: this needs to be done with care so that it is only set
1443           after parsing and classification and stats are done) new method
1444           pofreshen can be used to make sure the file is parsed and up to
1445           date updated the README to reflect the fact that reindexing is
1446           now automatic also added a note about how to do assignments
1448 2004-12-06 22:15  davidfraser
1450         * translatepage.py: set search.assignedaction based on the current
1451           mode (search for things the user has been assigned to
1452           review/suggest)
1454 2004-12-06 22:09  davidfraser
1456         * projects.py, translatepage.py: refactored pofilename searching
1457           into separate method matchessearch for each pofilename added
1458           assignment searching to pofilename searching replaced
1459           search.assigncondition with search.assignedto and
1460           search.assignedaction improved pootlefile.iteritems to handle
1461           either/both search.assign attributes fixed up docstrings to
1462           reflect new search parameter updated translatepage to use the new
1463           Search syntax
1465 2004-12-06 21:33  davidfraser
1467         * projects.py, translatepage.py: rearranged all the search
1468           parameters into a single object to make it easier to pass them
1469           around
1471 2004-12-06 20:13  davidfraser
1473         * translatepage.py: redid editlinks to float at the top right of
1474           the cell ; in this way they don't appear "out the box"
1476 2004-12-06 11:05  davidfraser
1478         * pootle.py: was sending the submitted password to the original
1479           email address which was nuts we don't have the actual password,
1480           only the md5sum, but send it anyway :-)
1482 2004-12-06 10:46  davidfraser
1484         * projects.py, translatepage.py: added the ability to search within
1485           a file based on assign conditions (file searches still need this)
1486           added "suggest" assignment search when logged in
1488 2004-12-05 12:17  davidfraser
1490         * projects.py: added code for handling ".assigns" files which store
1491           who has been assigned what ...
1493 2004-12-05 11:45  davidfraser
1495         * projects.py: added caching for pending files (if file is updated
1496           it will be re-read) store pending file time in stats file, since
1497           it depends on that too...  added method to reclassify all items'
1498           suggestion status moved project.iterpoitems to pofile.iteritems,
1499           call getstats to update them if required
1501 2004-12-05 10:55  davidfraser
1503         * projects.py: getmodtime needs absolute, not relative filename
1505 2004-12-05 10:53  davidfraser
1507         * projects.py: made getmodtime a function that takes a filename so
1508           it is useful for files other than pofile.filename
1510 2004-12-05 10:43  davidfraser
1512         * projects.py, translatepage.py: removed code storing lastitem,
1513           pofilename on session (since they're stored in the browser state
1514           anyway)
1516 2004-12-05 10:04  davidfraser
1518         * projects.py: cache the mtime of the stats file as well so if it
1519           is changed it will be re-read automatically this should enable
1520           updating the stats separately to the web server
1522 2004-12-05 09:50  davidfraser
1524         * indexpage.py: mainstats was passing actual directory rather than
1525           relative one ("") to getitemstats so check links were wrong
1527 2004-12-05 09:42  davidfraser
1529         * projects.py: fixed up logic for when to read stats, handling
1530           missing stats files save stats after reclassifying elements
1531           removed translationproject's stats cache, renamed initstatscache
1532           to initpootlefiles
1534 2004-12-05 09:22  davidfraser
1536         * indexpage.py: blank dirfilter should be None so the logic works
1537           right
1539 2004-12-04 22:48  davidfraser
1541         * projects.py: major refactor of TranslationProject so most of the
1542           POfile-specific stuff gets handled in pootlefile, derived from
1543           pofile bugs remain (it will forget about all your strings) but
1544           once they're fixed it'll be lekka :-)
1546 2004-12-04 22:34  davidfraser
1548         * translatepage.py, html/pootle.css: made the current editable row
1549           highlighted in light gray (found this in the prototype, looks
1550           leet)
1552 2004-12-03 23:37  davidfraser
1554         * TODO, projects.py: added basic support for GNU-style
1555           project/languagecode.po this has made the code too complex,
1556           hopefully can be simplified
1558 2004-12-03 23:17  davidfraser
1560         * pootle.py: remember email address fixed emailing (needs message
1561           to be a proper mail message)
1563 2004-12-03 23:05  davidfraser
1565         * pootle.prefs: set baseurl to / which should work in most cases
1566           added default smtpserver of localhost (for registration emails
1567           etc)
1569 2004-12-03 23:05  davidfraser
1571         * pootle.py: added basic system for registration and activation
1572           changed to allow user to specify password added minimum password
1573           length of 6 improved operation in frozen conditions (e.g. py2exe)
1574           by setting directory names properly
1576 2004-12-03 22:29  dwaynebailey
1578         * TODO: More things to do
1580 2004-12-03 21:44  davidfraser
1582         * translatepage.py: made suggestion captions start at 1 move skip
1583           button for suggestions to last suggdiv
1585 2004-12-03 21:40  davidfraser
1587         * projects.py: refactored method to get filenames so its actually
1588           done by potree, not the TranslationProject this should make it
1589           easier to handle the GNU-style layout fixed docstring for
1590           getpodir
1592 2004-12-03 21:12  davidfraser
1594         * TODO: moved translatathon requirements added requirement for
1595           GNU-style ar.po filenames
1597 2004-12-03 17:43  davidfraser
1599         * indexpage.py: added stats for the main item (if it's not a po
1600           file, in which case you can see them under the po file) corrected
1601           links for check names (were missing a &)
1603 2004-12-03 16:26  dwaynebailey
1605         * TODO: More TODO items
1607 2004-12-03 12:46  davidfraser
1609         * TODO: added more TODOs from dwayne
1611 2004-12-02 22:46  davidfraser
1613         * indexpage.py, pagelayout.py, html/pootle.css: made the MainItem
1614           stand out ...  link directory titles to Browse that directory
1615           handle dirfilter being None intelligently
1617 2004-12-02 22:29  davidfraser
1619         * TODO, indexpage.py, html/pootle.css: don't show actionlinks if
1620           dirfilter is a po file, and put them in a standard Item reordered
1621           code to make it more logical, put navlinks into separate function
1622           adjusted stylesheet so margin is below whole item, not only if it
1623           has statistics
1625 2004-12-02 21:55  davidfraser
1627         * indexpage.py: refactored main action links (at top of page) to
1628           use getactionlinks too factored out new method getchilditems
1629           rather than having this in the constructor checkslink was never
1630           included, also handle basename == "" in getactionlinks
1632 2004-12-02 21:45  davidfraser
1634         * indexpage.py: refactored ProjectIndex to share more code between
1635           diritem and fileitem
1637 2004-12-02 21:12  davidfraser
1639         * projects.py: use new keyword arguments to pogrepfilter
1641 2004-12-02 16:20  davidfraser
1643         * html/pootle.css: removed gratuitous spacing and case-changes
1645 2004-12-02 16:18  davidfraser
1647         * TODO: added basic diffing, so it's not TODO anymore :-)
1649 2004-11-29 15:42  davidfraser
1651         * translatepage.py: rearranged breaks in review mode, added skip
1652           button
1654 2004-11-29 15:01  davidfraser
1656         * translatepage.py: added basic diffs using difflib (tries to
1657           highlight in yellow what has changed) (handles multiple
1658           suggestions in a semi-intelligent way) added breaks between lines
1659           in review...
1661 2004-11-27 23:05  davidfraser
1663         * translatepage.py: added hidden widget for suggestion text so we
1664           know what it is when processing the form
1666 2004-11-27 22:44  davidfraser
1668         * projects.py: sort languages and projects by code...
1670 2004-11-27 19:01  davidfraser
1672         * translatepage.py: changed 'original' in review to 'Current
1673           Translation'
1675 2004-11-27 18:48  davidfraser
1677         * translatepage.py: simplify suggestions system so they're not
1678           editable text boxes...
1680 2004-11-27 18:24  davidfraser
1682         * pootle.py, projects.py: added ability to manually refresh all the
1683           stats from the commandline...
1685 2004-11-27 18:06  davidfraser
1687         * TODO: we need to be able to distinguish between (for example)
1688           pt_BR and pt_PR, and openoffice 1.1.3 and openoffice 2.0
1690 2004-11-27 18:03  davidfraser
1692         * indexpage.py, pootle.py, projects.py: added a project page for
1693           each project that lists the valid languages added a method to
1694           potree that lets you get the languagecodes for a specific project
1696 2004-11-27 17:31  davidfraser
1698         * indexpage.py, pootle.prefs, projects.py: changed the structure of
1699           pootle.prefs so instead of having to define every project under
1700           every language, you define:  projects, in its own top-level tree
1701           languages, in its own top-level tree  directories, using
1702           "$project" and "$language" to denote project    (you can either
1703           just define a directorysearch as a string, or have a node which
1704           defines the project / language and a directory - see the
1705           examples) added links to projects as well (still need to define
1706           index for them...)
1708 2004-11-27 16:53  davidfraser
1710         * pagelayout.py: use SeparatedList for linking ActionLinks together
1712 2004-11-27 16:36  davidfraser
1714         * TODO, indexpage.py, projects.py: when suggestions are made or
1715           rejected, delete the stats to invalidate them in indexpage, only
1716           show "review" links if the item has suggestions
1718 2004-11-27 16:14  davidfraser
1720         * translatepage.py: need access to translations to calculate links,
1721           so making a member of translatepage...
1723 2004-11-26 14:50  davidfraser
1725         * TODO: added new requirements from Dwayne
1727 2004-11-25 15:00  davidfraser
1729         * TODO: added TODOs, mostly for what would be needed for a
1730           translatathon
1732 2004-11-25 12:18  davidfraser
1734         * README, __init__.py, pootle.prefs, pootle.py, server.py: renamed
1735           server.py to pootle.py so it's a more sensible thing to run...
1736           NOTE: this requires change the prefs' import statement (See
1737           pootle.prefs)
1739 2004-11-23 23:32  davidfraser
1741         * html/images/logo.gif: remove gif file (have png)
1743 2004-11-23 23:30  davidfraser
1745         * pagelayout.py: replaced gif with png
1747 2004-11-23 23:29  davidfraser
1749         * html/images/: gap.png, logo.png, top.png: replaced gif with png
1750           and added missing files
1752 2004-11-23 23:27  davidfraser
1754         * projects.py, translatepage.py: made suggest/submit user
1755           selectable (will be configured later) - separate button to submit
1756           suggestion / change got rid of unused (and confusing!) contents
1757           variable
1759 2004-11-23 23:03  davidfraser
1761         * projects.py: fixes to logic so has-suggestion statistics are kept
1762           correct, and pending files are saved at the right time
1764 2004-11-23 22:48  davidfraser
1766         * translatepage.py: remember last item for skips, accepts, rejects,
1767           not just submits made a tooltip on the original text showing the
1768           classes it belongs to...
1770 2004-11-23 22:40  davidfraser
1772         * projects.py, translatepage.py: require the suggestion item number
1773           for acceptsuggestion and rejectsuggestion, and remove from the
1774           pending file this is fairly brutal and no checks are done rename
1775           TranslatePage.translationsession to .session to save long names
1776           :-)
1778 2004-11-23 22:36  davidfraser
1780         * indexpage.py: added reviewlink to main toolbar fixed up review
1781           URLs to include the basename properly
1783 2004-11-23 22:34  davidfraser
1785         * translatepage.py: refactored receivetranslations so it can handle
1786           multiple actions - skip, submit, accept, reject this works by
1787           having an id (item or item.suggid) in each button which will only
1788           be received if the item is clicked moved call to gettranslations
1789           to inside maketable this allows us to call getsuggestions from
1790           there too to handle the review process refactored getorigcell /
1791           gettranscell to only fetch the div specialized gettrans into
1792           gettransedit/review/view replaced all row-based ids with absolute
1793           item-based ids (that actually refer to the item number in the po
1794           file)
1796 2004-11-23 22:32  davidfraser
1798         * projects.py: added stubs to accept / reject suggestions modified
1799           checks for pofile being a filename to allow unicode too added
1800           existence check before deleting stats added TODO about caching
1801           pending file
1803 2004-11-23 21:16  davidfraser
1805         * html/pootle.css: make action links invisible by default
1806           (javascript will show them when needed)
1808 2004-11-23 21:13  davidfraser
1810         * translatepage.py: refactored table generation, moved stuff back
1811           into one method so it can be made more versatile
1813 2004-11-20 17:35  davidfraser
1815         * indexpage.py, translatepage.py: added initial review support.
1816           currently just prints out suggestions to command line
1818 2004-11-20 17:34  davidfraser
1820         * projects.py: let getsuggestions receive either a pofile or a
1821           pofilename
1823 2004-11-20 17:27  davidfraser
1825         * projects.py: added getsuggestions method for looking up
1826           suggestions for a particular item remember a pofile's filename
1827           (should actually do this anyway) added statistics calculation for
1828           suggestions provided more error-handling for stats files
1830 2004-11-20 17:05  davidfraser
1832         * projects.py: started adding support for suggestions by using
1833           pending files
1835 2004-11-20 16:24  davidfraser
1837         * translatepage.py: don't return blank and check-blank's blank ...
1838           also sort matchnames so output is consistent...
1840 2004-11-20 15:55  davidfraser
1842         * projects.py: added method to get list of classes an item belongs
1843           to
1845 2004-11-20 15:54  davidfraser
1847         * TODO: client ip lookup ability now in jToolkit
1849 2004-11-17 10:42  davidfraser
1851         * projects.py: added code so when an item is changed, we only have
1852           to reclassify that item, not all the elements in the pofile
1854 2004-11-17 10:33  davidfraser
1856         * projects.py: refactored classifyelements to use classifyelement
1857           for each element
1859 2004-11-17 10:16  davidfraser
1861         * projects.py: refactored classification code into classifyelements
1862           method reclassify elements after save...
1864 2004-11-17 08:54  davidfraser
1866         * html/pootle.css: float the translation text so it lines up better
1867           with the action
1869 2004-11-16 23:08  davidfraser
1871         * indexpage.py, translatepage.py: fixed up current folder links so
1872           when you are in a .po file they still point to the current folder
1874 2004-11-16 23:00  davidfraser
1876         * indexpage.py: made quick translate only appear if there are
1877           untranslated (or fuzzy) strings
1879 2004-11-16 22:52  davidfraser
1881         * pagelayout.py, translatepage.py, html/pootle.css,
1882           html/js/autoexpand.js: tried to make edit links floatable this is
1883           half working but the layout is hard :-)
1885 2004-11-13 17:53  davidfraser
1887         * TODO, pootle.prefs, projects.py, server.py: beefened up
1888           registration a little ... handles errors, requires proper
1889           username etc
1891 2004-11-13 17:34  davidfraser
1893         * pootle.prefs: Added demo prefs file
1895 2004-11-13 17:33  davidfraser
1897         * README, server.py: html is actually underneath this directory
1898           fixed wrong python file name in README added some notes
1900 2004-11-13 17:25  davidfraser
1902         * README: added simple README
1904 2004-11-13 17:20  davidfraser
1906         * indexpage.py, pagelayout.py, translatepage.py: refactored folder
1907           links so they're in pagelayout also moved addsearchbox to the
1908           main PootlePage object
1910 2004-11-13 17:07  davidfraser
1912         * TODO, indexpage.py, pagelayout.py, translatepage.py: moved
1913           searchbox construction into pagelayout added searchbox to index
1914           pages updated TODO
1916 2004-11-13 16:55  davidfraser
1918         * TODO, projects.py, translatepage.py: TranslationSession seems to
1919           be fading away ... easier to do direct through the project use
1920           project's searchpoitems rather than getnextitems from session,
1921           remember pofilename and last item for page added basic search
1922           using pogrep, to searchpoitems, and added text book to
1923           translation page for it
1925 2004-11-13 16:30  davidfraser
1927         * indexpage.py, pagelayout.py, html/pootle.css: made special class
1928           for action links so we can separate them out a bit...  changed
1929           CSS so the separators aren't white!
1931 2004-11-13 16:19  davidfraser
1933         * TODO, projects.py: made each project use an appropriate checker
1934           also use special PO checkers that do checks on the whole poel
1936 2004-11-13 16:10  davidfraser
1938         * indexpage.py, translatepage.py: refactored links to file, folders
1939           in translatepage added links to current folder, parent folder,
1940           project root in indexpage
1942 2004-11-13 15:47  davidfraser
1944         * TODO, indexpage.py, projects.py, translatepage.py: did some more
1945           refactoring, got viewing / browsing working readonably got rid of
1946           getitemsbefore / getitemsafter, replaced with getitems move
1947           translationsession.getitem to translationproject where it makes
1948           more sense separated out the item finding in gettranslations to
1949           finditem, save it in self.item
1951 2004-11-13 15:32  davidfraser
1953         * projects.py, translatepage.py: fixed up page links with the help
1954           of a getpofilelen method
1956 2004-11-13 15:29  davidfraser
1958         * indexpage.py, translatepage.py: refactored translatepage
1959           gettranslations so the actual html table generation is done by
1960           maketable added link to "view" translations in which case you can
1961           browse through 10 at a time with links to previous / next
1963 2004-11-13 15:05  davidfraser
1965         * indexpage.py, server.py, translatepage.py: added code to catch
1966           when a set of search items is finished and display a message The
1967           message could probably be clearer but at least it works out if no
1968           items matched at all...
1970 2004-11-13 14:40  davidfraser
1972         * projects.py: refactored searching methods to create iterators
1973           makes it a lot more logical and coherent, and allows us to catch
1974           StopIteration exceptions elsewhere...
1976 2004-11-13 14:12  davidfraser
1978         * projects.py: rename translationproject -> project, getlanguage ->
1979           getlanguageprefs for clarity
1981 2004-11-13 14:07  davidfraser
1983         * indexpage.py, projects.py, server.py, translatepage.py: don't
1984           make language and project prefs accessible through POTree -
1985           rather iterate through codes renamed translationproject to
1986           project in indexpage, server restore showing full names for
1987           language, project where needed
1989 2004-11-13 13:21  davidfraser
1991         * projects.py, translatepage.py: made the TranslationProject use
1992           the potree to find its podir and other attributes added getpodir
1993           function to POTree renamed "translationproject" to "project" in
1994           translatepage.py
1996 2004-11-13 13:17  davidfraser
1998         * indexpage.py, projects.py, server.py, translatepage.py: finished
1999           up making sure we don't use the language and project prefnodes
2000           anywhere these are basically only used to get full names for
2001           languages/projects so provided functions to get those
2003 2004-11-13 13:00  davidfraser
2005         * translatepage.py: never renamed project, subproject to language,
2006           project...
2008 2004-11-13 12:56  davidfraser
2010         * indexpage.py, server.py: more conversion to potree rather than
2011           using prefnodes directly removed unused cachetables parameter
2013 2004-11-13 12:48  davidfraser
2015         * projects.py, server.py: filled out iterating methods in POTree
2017 2004-11-13 12:37  davidfraser
2019         * projects.py, server.py: added default options for startup added
2020           POTree class in projects, use that to manage languages/projects
2021           rather than reading from prefs directly
2023 2004-11-10 09:13  davidfraser
2025         * projects.py, translatepage.py: did some simplification of
2026           translation session, factored out getitem method made argdict a
2027           member of TranslatePage, to simplify access added Edit link for
2028           each item that lets you go straight to edit that item
2030 2004-11-10 08:53  davidfraser
2032         * indexpage.py, projects.py, server.py: pass argdict in to
2033           ProjectIndex, use that for showchecks rather than a special
2034           variable use showchecks parameter rather than checks.html to
2035           determine checking allow ProjectIndex to work on a single file
2036           added browse and checks links per file allow projects code to
2037           handle individual po files
2039 2004-11-10 08:30  davidfraser
2041         * TODO, indexpage.py, projects.py, translatepage.py: instead of
2042           translate page defaulting to quick translate, pass fuzzy and
2043           blank as parameters similarly projects code doesn't default to
2044           fuzzy & blank, it defaults to matchnames=[] which allows
2045           everything DONE: renamed start translate
2047 2004-11-10 08:19  davidfraser
2049         * indexpage.py: changed "Start Translating" to "Quick Translate"
2050           Don't show the name of the file everywhere for PO files
2052 2004-11-10 08:14  davidfraser
2054         * projects.py: renamed po2csvmod -> po2csv (filename changed)
2056 2004-11-08 19:00  davidfraser
2058         * TODO: Added pootle TODO
2060 2004-11-04 22:11  davidfraser
2062         * server.py: added mani program to allow server to run webserver
2063           itself (will allow deefault options in future)
2065 2004-11-04 16:07  davidfraser
2067         * projects.py: have made po2csv into po2csvmod.py and po2csv
2069 2004-11-04 16:06  davidfraser
2071         * translatepage.py: added list of checks in sidebar
2073 2004-11-04 16:00  davidfraser
2075         * indexpage.py, projects.py, server.py, translatepage.py: create
2076           clickable links to be able to go through files that failed checks
2077           dded matchnames as an option to TranslationSession.getnextitem
2078           only get translationproject once in server
2080 2004-11-04 15:43  davidfraser
2082         * indexpage.py: factored out check details, apply it to both dirs
2083           and files (also don't say "files" when summarising a file...)
2085 2004-11-04 15:35  davidfraser
2087         * indexpage.py, projects.py: renamed the checks to check- so we
2088           don't show normal statistics as checks
2090 2004-11-04 15:28  davidfraser
2092         * indexpage.py, projects.py, server.py, html/pootle.css: added code
2093           to include checks and show statistics on them ...
2095 2004-11-04 14:33  davidfraser
2097         * projects.py: renamed subproject to project
2099 2004-11-04 10:31  davidfraser
2101         * indexpage.py: refactored summarizing statistics
2103 2004-11-03 22:44  davidfraser
2105         * indexpage.py, server.py: finished project->language and
2106           subproject->project rename
2108 2004-11-03 14:50  davidfraser
2110         * indexpage.py, server.py, translatepage.py: added link to current
2111           folder from translate page made banner height smaller except for
2112           main page
2114 2004-11-03 14:30  davidfraser
2116         * html/pootle.css: added some missing styles from translate.css
2118 2004-11-03 14:19  davidfraser
2120         * html/: pootle.css, images/logo.gif, images/pootle.jpg,
2121           js/autoexpand.js: added images
2123 2004-11-03 14:07  davidfraser
2125         * indexpage.py: fixed language links, misreplaced project/language
2126           names made Start Transating link look nice
2128 2004-11-03 13:59  davidfraser
2130         * indexpage.py, server.py: renamed "project" to "language"
2132 2004-11-03 11:02  davidfraser
2134         * server.py: pass the login page class to the underlying server
2136 2004-11-03 10:00  davidfraser
2138         * server.py: added support for browsing through directories and
2139           files added support for downloading po files and csv files
2140           updated to use non-database user details in prefs files improved
2141           registration -> login redirection made a lot of the required
2142           prefs optional, and added support for saving prefs currently
2143           emailing username + passwords is disabled, the message is printed
2144           on stdout
2146 2004-11-03 09:54  davidfraser
2148         * pagelayout.py: made a lot of the required prefs optional and have
2149           defaults
2151 2004-11-03 09:45  davidfraser
2153         * indexpage.py: added support for browsing through the files /
2154           directories in a project this allows browsing or translating at a
2155           given granularity also don't require the project node to have a
2156           fullname attribute
2158 2004-11-03 09:40  davidfraser
2160         * translatepage.py: refactored generation of translation rows so we
2161           don't have to call before / item / after separately refactored
2162           receivetranslations into a function, handle skipping added
2163           dirfilter support so the translatepage can be used with more
2164           granularity (used when finding the next item)
2166 2004-11-03 09:24  davidfraser
2168         * projects.py: added dir filtering ability, code to browse through
2169           po filenames and directories in a useful way added support for
2170           skipping translations added pofilenames option for calculatestats
2171           for retrieving stats in finer granularity added support for
2172           getting po file source and converting to csv (needs a po2csv
2173           module) this fits in with other refactoring in the other files
2175 2004-10-28 08:48  davidfraser
2177         * server.py: passwordgen is in jToolkit not pootle
2179 2004-10-28 08:45  davidfraser
2181         * pagelayout.py, server.py: added link to register added password
2182           generation and emailing
2184 2004-10-28 07:33  davidfraser
2186         * indexpage.py, pagelayout.py, server.py, translatepage.py: made
2187           PootlePage automatically wrap the main contents in a #content div
2189 2004-10-27 23:00  davidfraser
2191         * server.py: added very simple registration (username=password)
2193 2004-10-27 22:49  davidfraser
2195         * server.py: started adding registration page for new users
2197 2004-10-27 22:40  davidfraser
2199         * pagelayout.py: sidetitle got changed to sidecontents accidentally
2200           added TranslateForm
2202 2004-10-27 22:37  davidfraser
2204         * translatepage.py: simplified styles by moving to css
2206 2004-10-27 21:53  davidfraser
2208         * indexpage.py, pagelayout.py: renamed classes (and css classes) to
2209           be less bloggy renamed title to contents for Division classes
2211 2004-10-27 21:44  davidfraser
2213         * indexpage.py, pagelayout.py, server.py, translatepage.py: made
2214           little classes for all the div styles, to make stuff simpler...
2216 2004-10-27 21:41  davidfraser
2218         * projects.py: various minor pochecker fixups...  don't just fall
2219           off the end if no more pofilenames could be found
2221 2004-10-27 21:08  davidfraser
2223         * indexpage.py, pagelayout.py, server.py, translatepage.py: used
2224           new cls= keyword parameter for Division rather than putting the
2225           class in a dictionary
2227 2004-10-25 18:41  davidfraser
2229         * indexpage.py: make sure empty projects are handle OK by the stats
2230           pages
2232 2004-10-25 11:58  davidfraser
2234         * projects.py: when an item is submitted, store the pofilename and
2235           lastitem on the TranslationSession this should make apache
2236           multi-process servers pass state between processes
2238 2004-10-25 11:46  davidfraser
2240         * translatepage.py: jToolkit has problems with non-unicode in the
2241           TextArea ; manually decoding to unicode for now
2243 2004-10-25 11:08  davidfraser
2245         * projects.py: added quick route to find next pofilename that
2246           contains matches, so we don't have to parse all those in between
2248 2004-10-25 10:57  davidfraser
2250         * pagelayout.py, server.py: added spearch url for login page which
2251           redirects back to the index if logged in (this is because the
2252           login page submits to itself in case of error) added link to
2253           logout / login to sidebar
2255 2004-10-25 10:37  davidfraser
2257         * server.py: added an OptionalLoginAppServer that makes login
2258           optional
2260 2004-10-25 10:25  davidfraser
2262         * projects.py: need to convert the statsmtime to an integer
2263           otherwise it'll never match
2265 2004-10-25 09:53  davidfraser
2267         * projects.py: took out __init__ loop through self.pofiles (should
2268           have been self.pofilename) as it would have been too expensive
2269           but it wasn't doing anything as self.pofiles was empty moved
2270           pofile.classify construction to getpofile as we always need the
2271           classifications available
2273 2004-10-23 20:26  davidfraser
2275         * projects.py: use matchnames for searching for next item, to make
2276           it superfast :-)
2278 2004-10-23 20:09  davidfraser
2280         * indexpage.py, projects.py, translatepage.py: replaced translated,
2281           total with named stats in a dictionary also keep in each pofile a
2282           classify member that keeps named lists of elements matching
2283           fuzzy, blank, etc this should be useful in optimizing searches
2284           added more info on blank, fuzzy to the sidebar of the translation
2285           page
2287 2004-10-23 19:47  davidfraser
2289         * indexpage.py, projects.py, translatepage.py: more detailed
2290           statistics invalidate statistics when a file changes
2292 2004-10-23 19:40  davidfraser
2294         * projects.py: changed to use relative paths for po files,
2295           calculate absolute path when needing to access files
2297 2004-10-23 19:33  davidfraser
2299         * pagelayout.py, projects.py, translatepage.py: added pofilename to
2300           the links at the side (made them accessible as PootlePage
2301           members) rearranged test for what is translated
2303 2004-10-23 19:26  davidfraser
2305         * projects.py: separated out receivetranslation so the actual
2306           changes are done from the TranslationProject made new savefile
2307           function which saves the pofile to disk   currently saving after
2308           each change which is not ideal added doc strings
2310 2004-10-23 19:19  davidfraser
2312         * projects.py: added findnextitem which searches and filters
2313           options through a function this can be slow if you do what it
2314           does at the moment and searches for blank msgstrs...  we should
2315           use the stats to filter out files automatically...
2317 2004-10-23 19:08  davidfraser
2319         * projects.py: moved logic about moving to next item from session
2320           into project
2322 2004-10-23 14:57  davidfraser
2324         * indexpage.py, projects.py, translatepage.py: created new class
2325           TranslationSession which represents a users work on a project use
2326           this to keep track of current po file, item rather than doing it
2327           globally in the project added the pofilename as a hidden field so
2328           we know what item is being translated exactly store translatable
2329           elements in pofile.transelements for each pofile to make indexing
2330           easier rather than returning items before and after with the
2331           translatable item, query for them separately also changed
2332           projects.getproject to only take the subproject config item
2334 2004-10-23 13:58  davidfraser
2336         * projects.py: added call to initstatscache so it is actually used
2337           :-) and make sure the right filenames etc are passed so that it
2338           actually reads the files...
2340 2004-10-23 13:54  davidfraser
2342         * projects.py: added primitive means of caching statistics in
2343           .stats files with timestamps
2345 2004-10-23 13:43  davidfraser
2347         * indexpage.py, projects.py, translatepage.py: read all pofiles in
2348           when TranslationProject is constructed added calculation and
2349           display of statistics ; this is currently very slow! renamed
2350           projects.getiterator to getproject
2352 2004-10-23 13:15  davidfraser
2354         * projects.py: added code to iterate through all the files in a
2355           directory tree rather than just one pofile this changes the pref
2356           name to podir fixed up getiterator to not use self everywhere...
2358 2004-10-23 12:57  davidfraser
2360         * projects.py, translatepage.py: moved TranslationIterator code
2361           into separate projects module, from whence it will be
2362           transmogrified
2364 2004-10-23 12:46  davidfraser
2366         * indexpage.py: count the subprojects
2368 2004-10-23 12:45  davidfraser
2370         * server.py: added login, LoginPage that looks pootley
2372 2004-10-22 11:46  davidfraser
2374         * server.py, translatepage.py: added hook to receive new
2375           translations calculate translation items correctly, made the row
2376           offset equal to the item in the file
2378 2004-10-22 11:14  davidfraser
2380         * translatepage.py: removed dummytranslations, now uses
2381           subproject.pofile to get translations from also fixed up some row
2382           calculation problems
2384 2004-10-22 10:51  davidfraser
2386         * __init__.py, indexpage.py, pagelayout.py, server.py,
2387           translatepage.py: added initial pootle implementation (with
2388           random dummy bork translations)