1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 """ Pakiet zarzadzajacy projektem Django. """
20
21 import os.path
22 from django.core.management.base import CommandError
23 from ajango.core import add_to_python_array
24 from ajango.core import file_to_buffor, buffor_to_file
25
27 """ Klasa zarzadzajaca projektem Django. """
29 if not os.path.isdir(project_name):
30 raise CommandError("%r: Cannot find project" % project_name)
31 self.project_name = project_name
32 self._verify_file('settings.py')
33 self._verify_file('urls.py')
34 self._verify_file('wsgi.py')
35 self.apps = []
36 self.urls = []
37 self.is_global_url = False
39 """ Sprawdzenie czy istnieje plik. """
40 search_file = self.project_name + '/' + file_skeleton
41 if not os.path.isfile(search_file):
42 raise CommandError("Cannot find file: %r" % search_file)
44 """ Dodanie aplikacji do pliku settingsow projektu. """
45 self.apps.append(app)
46 - def add_url(self, viewname, appname):
47 """ Add view url. """
48 self.urls.append("url(r'^%s/%s/', %s.views.%s, name=%r)," %
49 (appname, viewname, appname, viewname, viewname))
50 - def add_main_view_url(self, app):
51 """ Zarejestrowanie widoku jako glowny widok aplikacji. """
52 appname = app.get_name()
53 viewname = app.get_main_view().get_name()
54 self.urls.append("url(r'^%s$', %s.views.%s, name='%s_main')," %
55 (appname, appname, viewname, appname))
56 - def add_main_url(self, app):
57 """ Zarejestrowanie glownego ekranu dla aplikacji. """
58 if app == None:
59 raise CommandError("Cannot set 'None' value as application")
60 if self.is_global_url:
61 raise CommandError("Cannot set two or more main application to url")
62 self.is_global_url = True
63 viewname = app.get_main_view().get_name()
64 self.urls.append("url(r'^$', %s.views.%s, name='main')," %
65 (app.get_name(), viewname))
67 """ Dodanie odpowiednich adresow url do pliku. """
68 address = self.project_name + "/urls.py"
69 buffor = file_to_buffor(address)
70 import_str = ""
71 for app in self.apps:
72 import_str += "import %s.views\n" % app
73 buffor = import_str + buffor
74 url_str = ""
75 for url in self.urls:
76 url_str += "\n %s" % url
77 buffor = add_to_python_array(buffor, "urlpatterns", url_str)
78 buffor_to_file(address, buffor)
80 """ dodanie aplikacji do pliku z ustawieniami settings.py"""
81 address = self.project_name + "/settings.py"
82 buffor = file_to_buffor(address)
83 app_str = ""
84 for app in self.apps:
85 app_str += "\n '%s'," % app
86 buffor = add_to_python_array(buffor, "INSTALLED_APPS", app_str)
87 buffor_to_file(address, buffor)
92