Merge lp:~davidc3/developer-ubuntu-com/webapp-generator-version-appname into lp:developer-ubuntu-com

Proposed by David Callé
Status: Merged
Approved by: Michael Hall
Approved revision: 113
Merged at revision: 96
Proposed branch: lp:~davidc3/developer-ubuntu-com/webapp-generator-version-appname
Merge into: lp:developer-ubuntu-com
Diff against target: 111 lines (+20/-17)
4 files modified
webapp_creator/resources/appname.desktop (+1/-1)
webapp_creator/resources/manifest.json (+0/-1)
webapp_creator/views.py (+10/-0)
webapp_creator/woc.py (+9/-15)
To merge this branch: bzr merge lp:~davidc3/developer-ubuntu-com/webapp-generator-version-appname
Reviewer Review Type Date Requested Status
Michael Hall (community) Approve
Review via email: mp+253671@code.launchpad.net

Commit message

- Add version field
- Create appname using display name (cleaned and shortened if needed)
- Pre-fills name and email

Description of the change

- Add version field
- Create appname using display name (cleaned and shortened if needed)
- Pre-fills name and email

To post a comment you must log in.
Revision history for this message
Michael Hall (mhall119) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'webapp_creator/resources/appname.desktop'
--- webapp_creator/resources/appname.desktop 2015-03-14 16:38:55 +0000
+++ webapp_creator/resources/appname.desktop 2015-03-20 13:17:10 +0000
@@ -1,6 +1,6 @@
1[Desktop Entry]1[Desktop Entry]
2Name={displayname}2Name={displayname}
3Comment=Web app for {domain}3Comment=Webapp for {domain}
4Type=Application4Type=Application
5Icon={appicon}5Icon={appicon}
6Exec=webapp-container {container_options} --webappUrlPatterns=https?://{domain}/* {url}6Exec=webapp-container {container_options} --webappUrlPatterns=https?://{domain}/* {url}
77
=== modified file 'webapp_creator/resources/manifest.json'
--- webapp_creator/resources/manifest.json 2015-03-04 16:31:01 +0000
+++ webapp_creator/resources/manifest.json 2015-03-20 13:17:10 +0000
@@ -1,6 +1,5 @@
1{1{
2 "architecture": "all",2 "architecture": "all",
3 "version": "0.1",
4 "framework" : "ubuntu-sdk-14.10"3 "framework" : "ubuntu-sdk-14.10"
5}4}
65
76
=== modified file 'webapp_creator/views.py'
--- webapp_creator/views.py 2015-03-16 08:58:17 +0000
+++ webapp_creator/views.py 2015-03-20 13:17:10 +0000
@@ -30,6 +30,9 @@
30 label=_("App options"),30 label=_("App options"),
31 help_text=_('Use CTRL to select multiple options'),31 help_text=_('Use CTRL to select multiple options'),
32 required=False)32 required=False)
33 version = forms.CharField(
34 max_length=20, required=True, label=_('Version'),
35 help_text=_('E.g. 0.1'), initial=0.1)
33 nickname = forms.RegexField(36 nickname = forms.RegexField(
34 regex='^[\w-]+$', max_length=200, required=True,37 regex='^[\w-]+$', max_length=200, required=True,
35 label=_('Developer namespace'),38 label=_('Developer namespace'),
@@ -57,7 +60,14 @@
57 click_name,)60 click_name,)
58 return response61 return response
59 else:62 else:
63 try:
64 name = "%s %s" % (request.user.first_name, request.user.last_name)
65 email = request.user.email
66 except:
67 name, email = '', ''
60 webapp_form = WebappForm()68 webapp_form = WebappForm()
69 webapp_form.fields['email'].initial = email
70 webapp_form.fields['fullname'].initial = name.strip()
61 return render_to_response(71 return render_to_response(
62 'webapp.html',72 'webapp.html',
63 {'webapp_form': webapp_form},73 {'webapp_form': webapp_form},
6474
=== modified file 'webapp_creator/woc.py'
--- webapp_creator/woc.py 2015-03-17 14:09:18 +0000
+++ webapp_creator/woc.py 2015-03-20 13:17:10 +0000
@@ -3,20 +3,12 @@
3import shutil3import shutil
4import re4import re
5import subprocess5import subprocess
6import random
7import string
8
9from urlparse import urlsplit6from urlparse import urlsplit
107
118
12def random_str(length):9def create_appname(name):
13 """Generates a random str to differentiate apps using the same domain."""10 name = re.sub('[^0-9a-zA-Z]+', '', name)
14 return ''.join(random.choice(string.lowercase) for i in range(length))11 appname = name[:20].lower()
15
16
17def create_appname(domain):
18 domain_nowww = re.sub('www\.', '', domain)
19 appname = re.sub('\.', '', domain_nowww)
20 return appname12 return appname
2113
2214
@@ -33,10 +25,11 @@
33def create(data):25def create(data):
34 nickname = data['nickname'].encode('UTF-8')26 nickname = data['nickname'].encode('UTF-8')
35 url = data['url'].encode('UTF-8')27 url = data['url'].encode('UTF-8')
28 version = data['version'].encode('UTF-8')
36 displayname = data['displayname'].encode('UTF-8')29 displayname = data['displayname'].encode('UTF-8')
37 domain = urlsplit(url)[1].encode('UTF-8')30 domain = urlsplit(url)[1].encode('UTF-8')
38 options = ' '.join(data['options'])31 options = ' '.join(data['options'])
39 appname = '%s-%s' % (create_appname(domain), random_str(3))32 appname = create_appname(displayname)
40 tmp = create_tmp(appname, domain)33 tmp = create_tmp(appname, domain)
4134
42 # Create icon35 # Create icon
@@ -63,7 +56,8 @@
63 open("webapp_creator/resources/manifest.json").read())56 open("webapp_creator/resources/manifest.json").read())
64 manifest_new['name'] = '%s.%s' % (appname, nickname,)57 manifest_new['name'] = '%s.%s' % (appname, nickname,)
65 manifest_new['title'] = displayname58 manifest_new['title'] = displayname
66 manifest_new['description'] = 'Web app for %s' % (domain,)59 manifest_new['version'] = version
60 manifest_new['description'] = 'Webapp for %s' % (domain,)
67 manifest_new['hooks'] = {appname:61 manifest_new['hooks'] = {appname:
68 {'apparmor': '%s.apparmor' % (appname,),62 {'apparmor': '%s.apparmor' % (appname,),
69 'desktop': '%s.desktop' % (appname,)63 'desktop': '%s.desktop' % (appname,)
@@ -78,6 +72,6 @@
78 # Build click package in tmp dir72 # Build click package in tmp dir
79 subprocess.call(['click', 'build', tmp+'/resources'],73 subprocess.call(['click', 'build', tmp+'/resources'],
80 cwd=tmp)74 cwd=tmp)
81 click_path = '%s/%s.%s_0.1_all.click' % (tmp, appname, nickname,)75 click_path = '%s/%s.%s_%s_all.click' % (tmp, appname, nickname, version)
82 click_name = '%s.%s_0.1_all.click' % (appname, nickname,)76 click_name = '%s.%s_%s_all.click' % (appname, nickname, version)
83 return tmp, click_name, click_path77 return tmp, click_name, click_path

Subscribers

People subscribed via source and target branches