1 |
|
2 |
# HG changeset patch |
3 |
# User Seraphim Mellos <mellos@indifex.com> |
4 |
# Date 1288707374 -7200 |
5 |
# Node ID 483dfab4b7ade2fc346de769fafae7025f844071 |
6 |
# Parent 0d1c863fc0602199c93ca8ba915a3fad5013d7ec |
7 |
Added API calls for auto remote init from transifex-client |
8 |
|
9 |
--- a/transifex/api/urls.py Tue Nov 02 18:32:36 2010 +0200 |
10 |
+++ b/transifex/api/urls.py Tue Nov 02 16:16:14 2010 +0200 |
11 |
@@ -12,10 +12,12 @@ |
12 |
from transifex.projects.api import ProjectHandler, ProjectResourceHandler |
13 |
from transifex.resources.api import (ResourceHandler, FileHandler, StatsHandler) |
14 |
from transifex.storage.api import StorageHandler |
15 |
+from transifex.releases.api import ReleaseHandler |
16 |
|
17 |
auth = CustomHttpBasicAuthentication(realm='Transifex API') |
18 |
|
19 |
resource_handler = Resource(ResourceHandler, authentication=auth) |
20 |
+release_handler = Resource(ReleaseHandler, authentication=auth) |
21 |
storage_handler = Resource(StorageHandler, authentication=auth) |
22 |
project_handler = Resource(ProjectHandler, authentication=auth) |
23 |
projectresource_handler = Resource(ProjectResourceHandler, authentication=auth) |
24 |
@@ -46,6 +48,10 @@ |
25 |
never_cache(resource_handler), |
26 |
name='api_resource' |
27 |
), url( |
28 |
+ r'^project/(?P<project_slug>[-\w]+)/release/(?P<release_slug>[-\w]+)/$', |
29 |
+ never_cache(release_handler), |
30 |
+ name='api_release' |
31 |
+ ), url( |
32 |
r'^project/(?P<project_slug>[-\w]+)/resource/(?P<resource_slug>[-\w]+)/stats/$', |
33 |
never_cache(stats_handler), |
34 |
name='api_resource_stats' |
35 |
--- a/transifex/resources/api.py Tue Nov 02 18:32:36 2010 +0200 |
36 |
+++ b/transifex/resources/api.py Tue Nov 02 16:16:14 2010 +0200 |
37 |
@@ -32,7 +32,8 @@ |
38 |
|
39 |
allowed_methods = ('GET', 'POST', 'PUT', 'DELETE') |
40 |
model = Resource |
41 |
- fields = ('slug', 'name', 'created', 'available_languages') |
42 |
+ fields = ('slug', 'name', 'created', 'available_languages', 'i18n_type', |
43 |
+ 'source_language') |
44 |
exclude = () |
45 |
|
46 |
def read(self, request, project_slug, resource_slug=None): |
47 |
@@ -41,7 +42,7 @@ |
48 |
""" |
49 |
if resource_slug: |
50 |
try: |
51 |
- resource = Resource.objects.get(slug=resource_slug, |
52 |
+ resource = Resource.objects.get(slug=resource_slug, |
53 |
project__slug=project_slug) |
54 |
res_stats = ResourceStatsList(resource).resource_stats().next() |
55 |
setattr(resource, 'available_languages', |
56 |
@@ -175,7 +176,8 @@ |
57 |
retval = {} |
58 |
for stat in stats.resource_stats_for_language(language): |
59 |
retval.update({stat.language.code:{"completed": "%s%%" % stat.trans_percent, |
60 |
- "translated_entities": stat.num_translated}}) |
61 |
+ "translated_entities": stat.num_translated, "last_update": |
62 |
+ stat.last_update}}) |
63 |
else: |
64 |
retval = [] |
65 |
for stat in stats.language_stats(): |
66 |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
67 |
+++ b/transifex/releases/api.py Tue Nov 02 16:16:14 2010 +0200 |
68 |
@@ -0,0 +1,29 @@ |
69 |
+# -*- coding: utf-8 -*- |
70 |
+from piston.handler import BaseHandler, AnonymousBaseHandler |
71 |
+from piston.utils import rc, throttle |
72 |
+ |
73 |
+from transifex.releases.models import Release |
74 |
+ |
75 |
+from transifex.api.utils import BAD_REQUEST |
76 |
+ |
77 |
+class ReleaseHandler(BaseHandler): |
78 |
+ """ |
79 |
+ Release Handler for CRUD operations. |
80 |
+ """ |
81 |
+ |
82 |
+ allowed_methods = ('GET',) |
83 |
+ model = Release |
84 |
+ fields = ('slug', 'name', 'release_data', ('resources', ('slug', 'name',))) |
85 |
+ exclude = () |
86 |
+ |
87 |
+ def read(self, request, project_slug, release_slug=None): |
88 |
+ """ |
89 |
+ Get details of a release. |
90 |
+ """ |
91 |
+ try: |
92 |
+ release = Release.objects.get(slug=release_slug, |
93 |
+ project__slug=project_slug) |
94 |
+ except Release.DoesNotExist: |
95 |
+ return BAD_REQUEST("Release %s.%s does not exist." % (project_slug, |
96 |
+ release_slug)) |
97 |
+ return release |
98 |
|