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
17 2005-04-19 21:52 davidfraser
19 * indexpage.py: added UI for adding users to a goal, showing users
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
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
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
57 2005-04-19 00:46 dwaynebailey
59 * pagelayout.py: Added quick links to "All Projects" and "All
62 2005-04-19 00:15 dwaynebailey
64 * indexpage.py, pootle.py: Add a page that lists all languages on
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
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
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
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
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
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
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
171 2005-04-05 22:00 davidfraser
173 * html/images/pootle.svg: added SVG logo for Pootle from Lucas
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
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
227 2005-04-05 14:19 davidfraser
229 * pagelayout.py: was only initializing adminlink if
230 session.issiteadmin() or not session.isopen, changed to
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
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
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
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
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
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
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
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
426 2005-03-29 16:32 dwaynebailey
428 * pagelayout.py: Add an "Admin" quicklink if the user is a
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
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
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
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
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
597 2005-03-13 20:46 dwaynebailey
599 * indexpage.py, pootle.py, users.py: Allow users to change their
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
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 /
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
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
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
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,
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,
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
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
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
885 2005-02-14 14:03 davidfraser
887 * projects.py: fixed alphanum -> alnum and allow underscores in
890 2005-02-11 14:36 dwaynebailey
892 * html/doc/howto.html: HOWTO use Pootle by Kamber Dotan
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
907 2005-02-04 08:58 davidfraser
909 * projects.py: added better check for projectcode (could contain
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
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
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
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
966 2005-01-28 17:26 davidfraser
968 * users.py: a cleaner way of validating the projects and languages
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
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
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
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
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
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
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
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
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
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
1226 2005-01-12 11:44 davidfraser
1228 * pootle.py: more email cleanup, use mailer support for reply-to so
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
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
1283 2005-01-10 11:36 davidfraser
1285 * TODO: have done separate prefs files for users, changed priority
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
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
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
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
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
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
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
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
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
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
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
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
1534 2004-12-05 09:22 davidfraser
1536 * indexpage.py: blank dirfilter should be None so the logic works
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
2146 2004-11-03 09:54 davidfraser
2148 * pagelayout.py: made a lot of the required prefs optional and have
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
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
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
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
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
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
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
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
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)