113 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
114 | | style='color:black'>In the modules the layout is not required, as they are |
115 | | stored when we run the modified form of 000_config in the models. The input types |
116 | | of these (name, Description, Access level) are quite fixed so they need not to |
117 | | be stored separately. Therefore not much help is required for the views to.</span></p> |
118 | | |
119 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
120 | | style='color:black'> </span></p> |
121 | | |
122 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
123 | | style='color:black'> </span></p> |
124 | | |
125 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
126 | | style='color:black'> </span></p> |
127 | | |
128 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
129 | | style='font-size:15.0pt;line-height:115%;color:black'> </span></p> |
130 | | |
131 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
132 | | style='font-size:15.0pt;line-height:115%;color:black'> </span></b></p> |
133 | | |
134 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
135 | | style='font-size:15.0pt;line-height:115%;color:black'> </span></b></p> |
136 | | |
137 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
138 | | style='font-size:15.0pt;line-height:115%;color:black'>MODELS</span></b></p> |
139 | | |
140 | | <p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt'><span |
141 | | style='font-size:15.0pt;line-height:115%;font-family:Symbol;color:#C00000'><img |
142 | | width=18 height=18 src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Bullet-red.png/120px-Bullet-red.png" alt="*"><span |
143 | | style='font:7.0pt "Times New Roman"'> </span></span><b><span |
144 | | style='font-size:13.0pt;line-height:115%;color:#C00000'>1st_run.py |
145 | | This will run before the modified version of 000_config</span></b></p> |
146 | | |
147 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'><b><span |
148 | | style='font-size:13.0pt;line-height:115%;color:#C00000'> </span></b></p> |
149 | | |
150 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'><b><span |
151 | | style='font-size:13.0pt;line-height:115%;color:#C00000'> </span></b></p> |
152 | | |
153 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:18.0pt;text-indent:-18.0pt'><span |
154 | | style='font-family:Wingdings;color:#0D0D0D'>Ø<span style='font:7.0pt "Times New Roman"'> |
155 | | </span></span><b>Session variable : session.path_to_config</b></p> |
156 | | |
157 | | <p class=MsoListParagraphCxSpLast style='margin-left:0cm'>This will initialize |
158 | | a session variable that will help us get the status of the selector. If the |
159 | | session variable is “none” we can initialize it to “”, and later in the |
160 | | controller it can be set to the path of 000_config of that particular eden they |
161 | | want the to the web-setup to run on.</p> |
162 | | |
163 | | <p class=MsoNormal>This session variable will help us to get the path of the |
164 | | 000_config from the controllers.</p> |
165 | | |
166 | | <p class=MsoListParagraphCxSpFirst style='margin-left:18.0pt;text-indent:-18.0pt'><span |
167 | | style='font-family:Wingdings;color:#0D0D0D'>Ø<span style='font:7.0pt "Times New Roman"'> |
168 | | </span></span><b>Parsing 000_config.py</b></p> |
169 | | |
170 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'>Once we get the |
171 | | path of 000_config we need to copy that file in the websetup models by the the |
172 | | name of modified_config.py so that it shall run after this file closes. Now |
173 | | open modified_config using <b>os.path.join</b> in the “<b>w</b>” mode and |
174 | | 000_config in the “<b>r</b>” mode. We need to read 000_config and</p> |
175 | | |
176 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'>---------------------------------------------------------------------------------------------------------------------------------------------------------</p> |
177 | | <p style='color:#595959'>1.Remove the line containing <b>“s3base.s3config(” </b>from |
178 | | the starting of the file</p> |
179 | | |
180 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'><span |
181 | | style='color:#595959'> </span></p> |
182 | | |
183 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'><span |
184 | | style='color:#595959'>2. Insert </span></p> |
185 | | |
186 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'><b><span |
187 | | style='color:#595959'>“ from gluon.storage import Storage</span></b></p> |
188 | | |
189 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'><b><span |
190 | | style='color:#595959'>from gluon.contrib.simplejson.ordered_dict import |
191 | | OrderedDict</span></b></p> |
192 | | |
193 | | <p class=MsoListParagraphCxSpMiddle style='margin-left:0cm'><b><span |
194 | | style='color:#595959'>deployment_settings = Storage( “</span></b><span |
195 | | style='color:#595959'> </span></p> |
196 | | |
197 | | <p class=MsoListParagraphCxSpLast style='margin-left:0cm'><span |
198 | | style='color:#595959'>before the first line where they find “deployment_settings.” |
199 | | Without a “<b>#</b>” in the 000_config.py </span></p> |
200 | | |
201 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
202 | | style='color:#595959'>3. And add <b>“ ) ”</b> Immediately before the import of |
203 | | storage and remove the import of storage from there </span></p> |
204 | | |
205 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
206 | | style='color:#595959'> </span></p> |
207 | | |
208 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
209 | | style='color:#595959'>4. Add 4 spaces to each line between “<b>Storage(</b>“ |
210 | | and “<b>)</b>” even the commented ones </span></p> |
211 | | |
212 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
213 | | style='color:#595959'> </span></p> |
214 | | |
215 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
216 | | style='color:#595959'>5<b>.</b> Make the following to the lines except the ones |
217 | | containing “#” before the use of “<b>deployment_settings.</b>” </span></p> |
218 | | |
219 | | <p class=MsoListParagraphCxSpFirst style='margin-bottom:0cm;margin-bottom:.0001pt; |
220 | | text-indent:-18.0pt'><span style='font-family:Wingdings;color:#595959'>v<span |
221 | | style='font:7.0pt "Times New Roman"'> </span></span><span |
222 | | style='color:#595959'>Wrap each word containing “<b>deployment_settings.</b>” |
223 | | with “” </span></p> |
224 | | |
225 | | <p class=MsoListParagraphCxSpLast style='margin-bottom:0cm;margin-bottom:.0001pt; |
226 | | text-indent:-18.0pt'><span style='font-family:Wingdings;color:#595959'>v<span |
227 | | style='font:7.0pt "Times New Roman"'> </span></span><span |
228 | | style='color:#595959'>Add a <b>“,”(coma)</b> after the line </span></p> |
229 | | |
230 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
231 | | style='color:#595959'> </span></p> |
232 | | |
233 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
234 | | style='color:#595959'>6. Check if the </span></p> |
235 | | |
236 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
237 | | style='color:#595959'>“<?module_name?> = Storage( \n” </span></b><span |
238 | | style='color:#595959'>has a “#” in the same line then turn </span></p> |
239 | | |
240 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
241 | | style='color:#595959'>module[module_name] ( variable in layout.py in modules |
242 | | ) off .</span></p> |
243 | | |
244 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
245 | | style='color:#595959'> </span></p> |
246 | | |
247 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
248 | | style='color:#595959'>7<b>.</b>Remove “#” from there till the line you get <b>“#),” |
249 | | </b></span></p> |
250 | | |
251 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>----------------------------------------------------------------------------------------------------------------------------------------------------------</p> |
252 | | |
253 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>This would |
254 | | result in the creation of 2 dicts one is deployment_settings and the other one |
255 | | is for the modules deployment_settings.modules .Now 6<sup>th</sup> and 7<sup>th</sup> |
256 | | steps will help us to maintain the dicts for modules that were turned off by |
257 | | commenting them.</p> |
258 | | |
259 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
260 | | |
261 | | <p class=MsoListParagraph style='margin-top:0cm;margin-right:0cm;margin-bottom: |
262 | | 0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent:-18.0pt'><span |
263 | | style='font-family:Wingdings;color:#0D0D0D'>Ø<span style='font:7.0pt "Times New Roman"'> |
264 | | </span></span><b>Handling database conflicts</b></p> |
265 | | |
266 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
267 | | style='color:black'>There should be a list that will keep a list of |
268 | | databse_name and database_types of 2 eden application cannot be same at same |
269 | | time therefore a list of database types and databse names needs to be made</span></p> |
270 | | |
271 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
272 | | style='color:black'> </span></p> |
273 | | |
274 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
275 | | text-indent:-18.0pt'><span style='font-family:Wingdings'>v<span |
276 | | style='font:7.0pt "Times New Roman"'> </span></span>For this we will |
277 | | first have to generate a list paths .We can search for “<b>Copyright: 2010 (c) |
278 | | Sahana Software Foundation</b>” in all the LICENSE files of applications.</p> |
279 | | |
280 | | <p class=MsoNormal style='margin-top:0cm;margin-right:0cm;margin-bottom:0cm; |
281 | | margin-left:18.0pt;margin-bottom:.0001pt'> </p> |
282 | | |
283 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>Then we will |
284 | | have to search in the list of paths for specific keywords like <b><span |
285 | | style='color:gray'>“deployment_setting.database.database”</span></b><span |
286 | | style='color:gray'> </span>This can be done using regex command in grep</p> |
287 | | |
288 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
289 | | style='color:#A6A6A6'> </span></p> |
290 | | }}} |
291 | | {{{ |
292 | | |
293 | | If path(variable) is in the list of paths containing: |
294 | | Command_line = “grep ” + “deployment_setting.database.database” + “path” |
295 | | Line = subprocess.Popen(command_line); |
296 | | |
297 | | }}} |
298 | | {{{ |
299 | | #!html |
300 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
301 | | |
302 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>Now search |
303 | | the file for deployment_settings.database.db_type<span style='color:gray'> </span>.These |
304 | | list will help in validating for the database values. </p> |
305 | | |
306 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
307 | | |
308 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
309 | | |
310 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
311 | | |
312 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
313 | | text-indent:-18.0pt'><span style='font-size:15.0pt;line-height:115%;font-family: |
314 | | Symbol'><img width=18 height=18 src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Bullet-red.png/120px-Bullet-red.png" alt="*"><span |
315 | | style='font:7.0pt "Times New Roman"'> </span></span><span |
316 | | style='font-size:13.0pt;line-height:115%;color:#C00000'>MODIFIED_CONFIG.PY |
317 | | PARSED VERSION OF 000_CONFIG.PY </span></p> |
318 | | |
319 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
320 | | style='color:#0D0D0D'> </span></p> |
321 | | |
322 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
323 | | style='color:#0D0D0D'>It will initialize and define the dict for all the |
324 | | settings and the modules of whose we have mentioned before.</span><span |
325 | | style='font-size:13.0pt;line-height:115%;color:#C00000'> </span></p> |
326 | | |
327 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
328 | | style='color:#0D0D0D'> </span></p> |
| 48 | In the modules the layout is not required, as they are stored when we run the modified form of 000_config in the models. The input types of these (name, Description, Access level) are quite fixed so they need not to be stored separately. Therefore not much help is required for the views to. |
334 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
335 | | style='color:#0D0D0D'> </span></p> |
336 | | |
337 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
338 | | style='color:#0D0D0D'> </span></p> |
339 | | |
340 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
341 | | style='color:#0D0D0D'> </span></p> |
342 | | |
343 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
344 | | style='color:#0D0D0D'> </span></p> |
345 | | |
346 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
347 | | style='color:#0D0D0D'> </span></p> |
348 | | |
349 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
350 | | style='font-size:15.0pt;line-height:115%;color:#0D0D0D'>CONTROLLERS</span></b></p> |
351 | | |
352 | | <p class=MsoListParagraphCxSpFirst style='margin-top:0cm;margin-right:0cm; |
353 | | margin-bottom:0cm;margin-left:42.0pt;margin-bottom:.0001pt;text-indent:-18.0pt'><span |
354 | | style='font-size:13.0pt;line-height:115%;font-family:Symbol;color:#C00000'><img |
355 | | width=22 height=22 src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Bullet-red.png/120px-Bullet-red.png" alt="*"><span |
356 | | style='font:7.0pt "Times New Roman"'> </span></span><span |
357 | | style='font-size:15.0pt;line-height:115%;color:#C00000'>DEFAULT.PY </span></p> |
358 | | |
359 | | <p class=MsoListParagraphCxSpMiddle style='margin-top:0cm;margin-right:0cm; |
360 | | margin-bottom:0cm;margin-left:42.0pt;margin-bottom:.0001pt'><span |
361 | | style='font-size:15.0pt;line-height:115%;color:#C00000'> </span></p> |
362 | | |
363 | | <p class=MsoListParagraphCxSpLast style='margin-top:0cm;margin-right:0cm; |
364 | | margin-bottom:0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent:-18.0pt'><span |
365 | | style='font-family:Wingdings;color:#0D0D0D'>Ø<span style='font:7.0pt "Times New Roman"'> |
366 | | </span></span><b><span style='color:#0D0D0D'>Def selector():</span></b></p> |
367 | | |
368 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>If the |
369 | | session variable of the path is not set then I redirect the user from the index |
370 | | function to this function of the controller. </p> |
371 | | |
372 | | <p class=MsoListParagraphCxSpFirst style='margin-top:0cm;margin-right:0cm; |
373 | | margin-bottom:0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent:-18.0pt'><span |
374 | | style='font-family:Wingdings'>v<span style='font:7.0pt "Times New Roman"'> |
375 | | </span></span>I will access the list of paths generated in the models while |
376 | | solving the database conflicts</p> |
377 | | |
378 | | <p class=MsoListParagraphCxSpLast style='margin-top:0cm;margin-right:0cm; |
379 | | margin-bottom:0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent:-18.0pt'><span |
380 | | style='font-family:Wingdings'>v<span style='font:7.0pt "Times New Roman"'> |
381 | | </span></span>And then there is a drop down menu to select the path ( the user |
382 | | will select the name, I will retrieve the path using the request.post_vars in |
383 | | the form.accepts and then set the path accordingly).We can create forms using SELECT() |
384 | | function for the dropdown and FIELDSET() for creating a filed in the form</p> |
385 | | |
386 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
387 | | |
388 | | <p class=MsoListParagraph style='margin-top:0cm;margin-right:0cm;margin-bottom: |
389 | | 0cm;margin-left:32.15pt;margin-bottom:.0001pt;text-indent:-18.0pt'><span |
390 | | style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'> |
391 | | </span></span>This function will also contain a field for <b>creating a new |
392 | | eden</b></p> |
393 | | |
394 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>Selector |
395 | | will also contain an option for creating new eden . This should be need no |
396 | | network excess, I will execute statement by “exec” for copying the files from |
397 | | the existing eden to a new eden with a new name.</p> |
398 | | |
399 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>I will copy |
400 | | all the files except a few files like database logs, session and some other |
401 | | which are developed after you run the first time. After the script has run |
402 | | successfully </p> |
403 | | |
404 | | <p class=MsoNormal style='margin-top:0cm;margin-right:0cm;margin-bottom:0cm; |
405 | | margin-left:18.0pt;margin-bottom:.0001pt'> </p> |
406 | | |
407 | | |
408 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
409 | | style='color:#0D0D0D'> </span></p> |
410 | | |
411 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
412 | | style='color:#0D0D0D'> </span></p> |
413 | | |
414 | | <p class=MsoListParagraph style='margin-top:0cm;margin-right:0cm;margin-bottom: |
415 | | 0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent:-18.0pt'><span |
416 | | style='font-family:Wingdings;color:#0D0D0D'>Ø<span style='font:7.0pt "Times New Roman"'> |
417 | | </span></span><b><span style='color:#0D0D0D'>Def index():</span></b></p> |
418 | | |
419 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
420 | | style='color:#0D0D0D'>If the session variable is set then this part is |
421 | | executed. The main purpose of this is to create forms according to the needs. |
422 | | We will have a submit ,back and next button on the every form .</span></p> |
423 | | |
424 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
425 | | style='color:#0D0D0D'> </span></p> |
426 | | |
427 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
428 | | style='color:#0D0D0D'>There should be a login form that would verify that admin |
429 | | is making changes in the settings. For this we will have to contact the |
430 | | database of the selected Eden.</span></p> |
431 | | |
432 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
433 | | style='color:#0D0D0D'> </span></p> |
434 | | |
435 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
436 | | style='color:#0D0D0D'>The TABLE() function will be extremely useful for setting |
437 | | the user interface and SELECT() function for defining dropboxes. INPUT() will |
438 | | help us define check boxes and other input types. All the fields stored in |
439 | | modules for every setting will be sent to the user using INPUT() (jquery |
440 | | validation requirement, input type and default value ) and FIELDSET(for field |
441 | | id and the keys of the, setting variable are extremely important here) </span></p> |
442 | | |
443 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
444 | | text-indent:-18.0pt'><span style='font-family:Wingdings;color:#0D0D0D'>v<span |
445 | | style='font:7.0pt "Times New Roman"'> </span></span><span |
446 | | style='color:#0D0D0D'>Module Forms:</span></p> |
447 | | |
448 | | <table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 |
449 | | style='border-collapse:collapse;border:none'> |
450 | | <tr> |
451 | | <td width=297 valign=top style='width:178.0pt;border:solid windowtext 1.0pt; |
452 | | padding:0cm 5.4pt 0cm 5.4pt'> |
453 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
454 | | normal'><span style='color:#0D0D0D'>Module name</span></p> |
455 | | </td> |
456 | | <td width=297 valign=top style='width:178.05pt;border:solid windowtext 1.0pt; |
457 | | border-left:none;padding:0cm 5.4pt 0cm 5.4pt'> |
458 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
459 | | normal'><span style='color:#0D0D0D'> </span></p> |
460 | | <table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 |
461 | | style='border-collapse:collapse;border:none'> |
462 | | <tr> |
463 | | <td width=278 valign=top style='width:166.5pt;border:solid windowtext 1.0pt; |
464 | | padding:0cm 5.4pt 0cm 5.4pt'> |
465 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt; |
466 | | line-height:normal'><span style='color:#0D0D0D'>Checkboxes for access level |
467 | | </span></p> |
468 | | </td> |
469 | | </tr> |
470 | | <tr> |
471 | | <td width=278 valign=top style='width:166.5pt;border:solid windowtext 1.0pt; |
472 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
473 | | <p class=MsoListParagraph style='margin-top:0cm;margin-right:0cm; |
474 | | margin-bottom:0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent: |
475 | | -18.0pt;line-height:normal'><span style='font-family:"Courier New"; |
476 | | color:#0D0D0D'>o<span style='font:7.0pt "Times New Roman"'> </span></span><span |
477 | | style='color:#0D0D0D'>Admin</span></p> |
478 | | </td> |
479 | | </tr> |
480 | | <tr> |
481 | | <td width=278 valign=top style='width:166.5pt;border:solid windowtext 1.0pt; |
482 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
483 | | <p class=MsoListParagraph style='margin-top:0cm;margin-right:0cm; |
484 | | margin-bottom:0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent: |
485 | | -18.0pt;line-height:normal'><span style='font-family:"Courier New"; |
486 | | color:#0D0D0D'>o<span style='font:7.0pt "Times New Roman"'> </span></span><span |
487 | | style='color:#0D0D0D'>Anonymous </span></p> |
488 | | </td> |
489 | | </tr> |
490 | | <tr> |
491 | | <td width=278 valign=top style='width:166.5pt;border:solid windowtext 1.0pt; |
492 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
493 | | <p class=MsoListParagraph style='margin-top:0cm;margin-right:0cm; |
494 | | margin-bottom:0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent: |
495 | | -18.0pt;line-height:normal'><span style='font-family:"Courier New"; |
496 | | color:#0D0D0D'>o<span style='font:7.0pt "Times New Roman"'> </span></span><span |
497 | | style='color:#0D0D0D'>Only Division users</span></p> |
498 | | </td> |
499 | | </tr> |
500 | | <tr> |
501 | | <td width=278 valign=top style='width:166.5pt;border:solid windowtext 1.0pt; |
502 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
503 | | <p class=MsoListParagraph style='margin-top:0cm;margin-right:0cm; |
504 | | margin-bottom:0cm;margin-left:18.0pt;margin-bottom:.0001pt;text-indent: |
505 | | -18.0pt;line-height:normal'><span style='font-family:"Courier New"; |
506 | | color:#0D0D0D'>o<span style='font:7.0pt "Times New Roman"'> </span></span><span |
507 | | style='color:#0D0D0D'>None </span></p> |
508 | | </td> |
509 | | </tr> |
510 | | </table> |
511 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
512 | | normal'><span style='color:#0D0D0D'> </span></p> |
513 | | </td> |
514 | | <td width=297 valign=top style='width:178.05pt;border:solid windowtext 1.0pt; |
515 | | border-left:none;padding:0cm 5.4pt 0cm 5.4pt'> |
516 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
517 | | normal'><span style='color:#0D0D0D'> ?help</span></p> |
518 | | </td> |
519 | | </tr> |
520 | | <tr> |
521 | | <td width=297 valign=top style='width:178.0pt;border:solid windowtext 1.0pt; |
522 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
523 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
524 | | normal'><span style='color:#0D0D0D'>Module nice name</span></p> |
525 | | </td> |
526 | | <td width=297 valign=top style='width:178.05pt;border-top:none;border-left: |
527 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
528 | | padding:0cm 5.4pt 0cm 5.4pt'> |
529 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
530 | | normal'><span style='color:#0D0D0D'>Textbox </span></p> |
531 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
532 | | normal'><span style='color:#0D0D0D'>(with correct width)</span></p> |
533 | | </td> |
534 | | <td width=297 valign=top style='width:178.05pt;border-top:none;border-left: |
535 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
536 | | padding:0cm 5.4pt 0cm 5.4pt'> |
537 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
538 | | normal'><span style='color:#0D0D0D'> </span></p> |
539 | | </td> |
540 | | </tr> |
541 | | <tr> |
542 | | <td width=297 valign=top style='width:178.0pt;border:solid windowtext 1.0pt; |
543 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
544 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
545 | | normal'><span style='color:#0D0D0D'>Module Description </span></p> |
546 | | </td> |
547 | | <td width=297 valign=top style='width:178.05pt;border-top:none;border-left: |
548 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
549 | | padding:0cm 5.4pt 0cm 5.4pt'> |
550 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
551 | | normal'><span style='color:#0D0D0D'>Textbox</span></p> |
552 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
553 | | normal'><span style='color:#0D0D0D'>(with correct width)</span></p> |
554 | | </td> |
555 | | <td width=297 valign=top style='width:178.05pt;border-top:none;border-left: |
556 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
557 | | padding:0cm 5.4pt 0cm 5.4pt'> |
558 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
559 | | normal'><span style='color:#0D0D0D'> </span></p> |
560 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
561 | | normal'><span style='color:#0D0D0D'> </span></p> |
562 | | </td> |
563 | | </tr> |
564 | | <tr> |
565 | | <td width=297 valign=top style='width:178.0pt;border:solid windowtext 1.0pt; |
566 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
567 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
568 | | normal'><span style='color:#0D0D0D'> </span></p> |
569 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
570 | | normal'><span style='color:#0D0D0D'>BACK(after the last module)</span></p> |
571 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
572 | | normal'><span style='color:#0D0D0D'> </span></p> |
573 | | </td> |
574 | | <td width=297 valign=top style='width:178.05pt;border-top:none;border-left: |
575 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
576 | | padding:0cm 5.4pt 0cm 5.4pt'> |
577 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
578 | | normal'><span style='color:#0D0D0D'> </span></p> |
579 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
580 | | normal'><span style='color:#0D0D0D'>NEXT(after the last module)</span></p> |
581 | | </td> |
582 | | <td width=297 valign=top style='width:178.05pt;border-top:none;border-left: |
583 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
584 | | padding:0cm 5.4pt 0cm 5.4pt'> |
585 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
586 | | normal'><span style='color:#0D0D0D'> </span></p> |
587 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
588 | | normal'><span style='color:#0D0D0D'>SAVE AND QUIT(after the last module )</span></p> |
589 | | </td> |
590 | | </tr> |
591 | | </table> |
592 | | |
593 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
594 | | style='color:#0D0D0D'> </span></p> |
595 | | |
596 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
597 | | style='color:#0D0D0D'> </span></p> |
598 | | |
599 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
600 | | text-indent:-18.0pt'><span style='font-family:Wingdings;color:#0D0D0D'>v<span |
601 | | style='font:7.0pt "Times New Roman"'> </span></span><span |
602 | | style='color:#0D0D0D'>There will be similar forms for the settings; however I |
603 | | would like to have separate forms for different categories of settings</span></p> |
604 | | |
605 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
606 | | style='color:#0D0D0D'> </span></p> |
607 | | |
608 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
609 | | style='color:#0D0D0D'>Like thsese:-</span></p> |
610 | | |
611 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
612 | | style='color:#0D0D0D'> </span></p> |
613 | | |
614 | | <table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 |
615 | | style='border-collapse:collapse;border:none'> |
616 | | <tr> |
617 | | <td width=328 valign=top style='width:196.8pt;border:solid windowtext 1.0pt; |
618 | | padding:0cm 5.4pt 0cm 5.4pt'> |
619 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
620 | | normal'><span style='color:#0D0D0D'>SETTINGS CATEGORY</span></p> |
621 | | </td> |
622 | | <td width=260 valign=top style='width:155.9pt;border:solid windowtext 1.0pt; |
623 | | border-left:none;padding:0cm 5.4pt 0cm 5.4pt'> |
624 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
625 | | normal'><span style='color:#0D0D0D'>(before the first setting only)</span></p> |
626 | | </td> |
627 | | <td width=302 valign=top style='width:181.4pt;border:solid windowtext 1.0pt; |
628 | | border-left:none;padding:0cm 5.4pt 0cm 5.4pt'> |
629 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
630 | | normal'><span style='color:#0D0D0D'> </span></p> |
631 | | </td> |
632 | | </tr> |
633 | | <tr> |
634 | | <td width=328 valign=top style='width:196.8pt;border:solid windowtext 1.0pt; |
635 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
636 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
637 | | normal'><span style='color:#0D0D0D'>Setting name</span></p> |
638 | | </td> |
639 | | <td width=260 valign=top style='width:155.9pt;border-top:none;border-left: |
640 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
641 | | padding:0cm 5.4pt 0cm 5.4pt'> |
642 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
643 | | normal'><span style='color:#0D0D0D'>FIELD according to the Input type |
644 | | required</span></p> |
645 | | </td> |
646 | | <td width=302 valign=top style='width:181.4pt;border-top:none;border-left: |
647 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
648 | | padding:0cm 5.4pt 0cm 5.4pt'> |
649 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
650 | | normal'><span style='color:#0D0D0D'> ?help</span></p> |
651 | | </td> |
652 | | </tr> |
653 | | <tr> |
654 | | <td width=328 valign=top style='width:196.8pt;border:solid windowtext 1.0pt; |
655 | | border-top:none;padding:0cm 5.4pt 0cm 5.4pt'> |
656 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
657 | | normal'><span style='color:#0D0D0D'> </span></p> |
658 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
659 | | normal'><span style='color:#0D0D0D'>BACK(after the last one only)</span></p> |
660 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
661 | | normal'><span style='color:#0D0D0D'> </span></p> |
662 | | </td> |
663 | | <td width=260 valign=top style='width:155.9pt;border-top:none;border-left: |
664 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
665 | | padding:0cm 5.4pt 0cm 5.4pt'> |
666 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
667 | | normal'><span style='color:#0D0D0D'> </span></p> |
668 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
669 | | normal'><span style='color:#0D0D0D'>NEXT(after the last one only)</span></p> |
670 | | </td> |
671 | | <td width=302 valign=top style='width:181.4pt;border-top:none;border-left: |
672 | | none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; |
673 | | padding:0cm 5.4pt 0cm 5.4pt'> |
674 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
675 | | normal'><span style='color:#0D0D0D'> </span></p> |
676 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height: |
677 | | normal'><span style='color:#0D0D0D'>SAVE AND QUIT(after the last on only)</span></p> |
678 | | </td> |
679 | | </tr> |
680 | | </table> |
681 | | |
682 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
683 | | style='color:#0D0D0D'> </span></p> |
684 | | |
685 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
686 | | text-indent:-18.0pt'><span style='font-family:Wingdings'>v<span |
687 | | style='font:7.0pt "Times New Roman"'> </span></span>for adding some text |
688 | | on the main page</p> |
689 | | |
690 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
691 | | style='color:#0D0D0D'> </span></p> |
692 | | |
693 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
694 | | style='color:#0D0D0D'>We will just set a text field in the form. Where he can |
695 | | type anything which he wants to be displayed at the main landing page of eden. |
696 | | I will set a global variable, that later I will write to the file |
697 | | 000_config.Then a division would be created in the index page of eden for |
698 | | displaying simple text. </span></p> |
699 | | |
700 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
701 | | style='color:#0D0D0D'> </span></p> |
702 | | |
703 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>In the |
704 | | form.accepts you will need to set the module values according to the |
705 | | request.post_vars.</p> |
706 | | |
707 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
708 | | |
709 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
710 | | |
711 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
712 | | text-indent:-18.0pt'><span style='font-family:Wingdings'>Ø<span |
713 | | style='font:7.0pt "Times New Roman"'> </span></span><b>Def write_out():</b></p> |
714 | | |
715 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'> </p> |
716 | | |
717 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>This writes |
718 | | data to 000_config</p> |
719 | | |
720 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>For this |
721 | | they would need to open the config using os.path.join and write data to the |
722 | | config in the correct format. </p> |
723 | | |
724 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>Like modules |
725 | | needs to be done in this format:-</p> |
726 | | }}} |
727 | | {{{ |
728 | | “deployment_settings.modules = Storge(\n” + |
729 | | |
730 | | #For for all keys |
731 | | “ “ + <?module.key?> "= Storage(\n” + |
732 | | |
733 | | #For all keys in module.keys |
734 | | “ “ + “ ” + <?keys of module.keys?> + “=” + <?values of their respective fields?> + “,\n” + |
735 | | |
736 | | " " + “),\n” #after module.key |
737 | | |
738 | | + “)” #for the main |
739 | | }}} |
740 | | {{{ |
741 | | #!html |
742 | | |
743 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>Writing |
744 | | settings will be much more easier, as they are not stored in dict, somewhat |
745 | | like:-</p> |
746 | | |
747 | | }}} |
748 | | {{{ |
749 | | For all keys of settings |
750 | | <?Keys of the settings ?> + “=” + <?values of the respective keys?> “\n” |
751 | | }}} |
752 | | {{{ |
753 | | #!html |
754 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>I would |
755 | | write default values if any request.post_var returns an invalid value according |
756 | | to the validation.</p> |
757 | | |
758 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
759 | | style='color:#0D0D0D'> </span></p> |
760 | | |
761 | | |
762 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
763 | | style='font-size:15.0pt;line-height:115%;color:#0D0D0D'> </span></b></p> |
764 | | |
765 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
766 | | style='font-size:15.0pt;line-height:115%;color:#0D0D0D'>VIEWS</span></b></p> |
767 | | |
768 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><b><span |
769 | | style='font-size:15.0pt;line-height:115%;color:#0D0D0D'> </span></b></p> |
770 | | |
771 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
772 | | style='color:#0D0D0D'>Though we have not talked about this part directly, |
773 | | however in the last section of index(): function we have talked about the forms |
774 | | that I would like to create. Most part of this code can be reused from the |
775 | | previous application.</span></p> |
776 | | |
777 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
778 | | style='color:#0D0D0D'> </span></p> |
779 | | |
780 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
781 | | text-indent:-18.0pt'><span style='font-family:Wingdings;color:#0D0D0D'>v<span |
782 | | style='font:7.0pt "Times New Roman"'> </span></span><b><span |
783 | | style='color:#0D0D0D'>CREATING A LICENCE PAGE:</span></b></p> |
784 | | |
785 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
786 | | style='color:#0D0D0D'>This will be created only if “FINISHED_EDITING_CONFIG_FILE” |
787 | | is false in the modified_config.py</span></p> |
788 | | |
789 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'><span |
790 | | style='color:#0D0D0D'> </span></p> |
791 | | |
792 | | <p class=MsoListParagraph style='margin-bottom:0cm;margin-bottom:.0001pt; |
793 | | text-indent:-18.0pt'><span style='font-family:Wingdings;color:#0D0D0D'>v<span |
794 | | style='font:7.0pt "Times New Roman"'> </span></span><b><span |
795 | | style='color:#0D0D0D'>SENDING POST METHOD TO GET THE ARGUMENTS TO CONTROLLERS</span></b></p> |
796 | | |
797 | | <p class=MsoNormal style='margin-top:0cm;margin-right:0cm;margin-bottom:0cm; |
798 | | margin-left:18.0pt;margin-bottom:.0001pt'><span style='color:#0D0D0D'> </span></p> |
799 | | |
800 | | <p class=MsoListParagraphCxSpFirst style='margin-bottom:0cm;margin-bottom:.0001pt; |
801 | | text-indent:-18.0pt'><span style='font-family:Wingdings;color:#0D0D0D'>v<span |
802 | | style='font:7.0pt "Times New Roman"'> </span></span><b><span |
803 | | style='color:#0D0D0D'>THESE WILL CONTAIN A STATIC FOLDER CONTAONG THE CSS AND |
804 | | THE </span>extjs </b></p> |
805 | | |
806 | | <p class=MsoListParagraphCxSpLast><b> </b></p> |
807 | | |
808 | | <p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt'>This part of |
809 | | the code is almost reusable.</p> |
810 | | }}} |