소스 검색

update doc

olinox 4 년 전
부모
커밋
dc1664858f

+ 40 - 18
.idea/workspace.xml

@@ -25,22 +25,23 @@
     </select>
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="c4e74122-a1c0-423a-8c9f-93e36772f14e" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/.idea/.gitignore" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/doc/mcd.mwb" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/doc/mcd.mwb.bak" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/core/__init__.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/core/admin.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/core/apps.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/core/models.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/core/tests.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/core/urls.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/core/views.py" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/orion-server/requirements.txt" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/orion.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/orion.iml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
+    <list default="true" id="c4e74122-a1c0-423a-8c9f-93e36772f14e" name="Default Changelist" comment="implements basic django models">
+      <change afterPath="$PROJECT_DIR$/doc/specs/dome.md" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/doc/specs/technos.md" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/mcd.mwb" beforeDir="false" afterPath="$PROJECT_DIR$/doc/mcd.mwb" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/mcd.mwb.bak" beforeDir="false" afterPath="$PROJECT_DIR$/doc/mcd.mwb.bak" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/specs/colonies/batiments/readme.md" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/specs/dome/batiments/readme.md" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/specs/dome/readme.md" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/specs/readme.md" beforeDir="false" afterPath="$PROJECT_DIR$/doc/specs/readme.md" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/specs/ressources/readme.md" beforeDir="false" afterPath="$PROJECT_DIR$/doc/specs/ressources.md" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/doc/specs/technologies/readme.md" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/orion-server/core/apps.py" beforeDir="false" afterPath="$PROJECT_DIR$/orion-server/core/apps.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/orion-server/core/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/orion-server/core/models.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/orion-server/core/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/orion-server/core/urls.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/orion-server/orion/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/orion-server/orion/settings.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/orion-server/requirements.txt" beforeDir="false" afterPath="$PROJECT_DIR$/orion-server/requirements.txt" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -62,17 +63,20 @@
     <property name="ASKED_SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
     <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
+    <property name="TERMINAL_CUSTOM_COMMANDS_GOT_IT" value="true" />
     <property name="last_opened_file_path" value="$PROJECT_DIR$/orion-server/core" />
     <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
   </component>
   <component name="RecentsManager">
+    <key name="MoveFile.RECENT_KEYS">
+      <recent name="E:\dev\orion\doc\specs" />
+      <recent name="E:\dev\orion\doc\specs\colonies.md" />
+      <recent name="E:\dev\orion\doc" />
+    </key>
     <key name="CopyFile.RECENT_KEYS">
       <recent name="E:\dev\orion\orion-server\core" />
       <recent name="E:\dev\orion\orion-server" />
     </key>
-    <key name="MoveFile.RECENT_KEYS">
-      <recent name="E:\dev\orion\doc" />
-    </key>
   </component>
   <component name="SvnConfiguration">
     <configuration />
@@ -85,6 +89,14 @@
       <option name="presentableId" value="Default" />
       <updated>1620163585343</updated>
     </task>
+    <task id="LOCAL-00001" summary="implements basic django models">
+      <created>1620425933538</created>
+      <option name="number" value="00001" />
+      <option name="presentableId" value="LOCAL-00001" />
+      <option name="project" value="LOCAL" />
+      <updated>1620425933538</updated>
+    </task>
+    <option name="localTasksCounter" value="2" />
     <servers />
   </component>
   <component name="Vcs.Log.Tabs.Properties">
@@ -139,6 +151,8 @@
       <path value="$PROJECT_DIR$/app/orion-app" />
       <path value="$PROJECT_DIR$/orion-app" />
     </ignored-roots>
+    <MESSAGE value="implements basic django models" />
+    <option name="LAST_COMMIT_MESSAGE" value="implements basic django models" />
   </component>
   <component name="WindowStateProjectService">
     <state x="1170" y="267" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1620425830908">
@@ -153,5 +167,13 @@
       <screen x="0" y="0" width="1920" height="1040" />
     </state>
     <state x="922" y="110" width="998" height="729" key="SettingsEditor/0.0.1920.1040@0.0.1920.1040" timestamp="1620422904887" />
+    <state x="1032" y="253" key="Vcs.Push.Dialog.v2" timestamp="1620425936059">
+      <screen x="0" y="0" width="1920" height="1040" />
+    </state>
+    <state x="1032" y="253" key="Vcs.Push.Dialog.v2/0.0.1920.1040@0.0.1920.1040" timestamp="1620425936059" />
+    <state x="695" y="308" key="git4idea.merge.GitPullDialog" timestamp="1620761224283">
+      <screen x="0" y="0" width="1920" height="1040" />
+    </state>
+    <state x="695" y="308" key="git4idea.merge.GitPullDialog/0.0.1920.1040@0.0.1920.1040" timestamp="1620761224283" />
   </component>
 </project>

BIN
doc/mcd.mwb


BIN
doc/mcd.mwb.bak


+ 11 - 0
doc/specs/colonies.md

@@ -0,0 +1,11 @@
+# Les colonies
+
+## Le centre d'exploitation
+
+## Construction des bâtiments
+
+## Exploitation des ressources
+
+## Bâtiments disponibles
+
+## Defense de la colonie

+ 0 - 0
doc/specs/colonies/batiments/readme.md


+ 66 - 0
doc/specs/dome.md

@@ -0,0 +1,66 @@
+# Le dôme
+
+Le dôme est le centre névralgique de la propérité de votre commerce sur cette planète.
+Ici sous le dome vous êtes a l'abri de tout danger (joueurs, environnement, mercenaires...)
+
+Vous aurez la possibilité de construire des nouveaux bâtiments pour élargir votre champ d'action 
+(centre de formation, de recherces, usines, logements...)
+
+## Le dôme au départ
+
+
+## La population
+
+### Population et logement
+
+### Elargissement du dôme
+
+### Formation
+
+
+## Commerce
+
+### Raffinage
+
+### Production
+
+### Stockage
+
+
+## Administration
+
+### Gestion du dôme
+
+### Recherche
+
+### Communication
+
+### Finances
+
+### Sécurité
+
+## Les bâtiments
+
+La construction et le développement des bâtiments impliquent une dépense d'investissement,
+et une dépense journalière de fonctionnement.
+
+Les bâtiments peuvent pour la plupart évoluer et monter de niveau, sans limite max.
+
+| Nom du bâtiment |  Prérequis | Evolution | Description |
+| --- | --- | --- | --- |
+| Centre administratif |  |  |  |
+| Spatioport |  |  |  |
+| Dômes d'habitation |  |  |  |
+| Institut de recherches |  |  |  |
+| Centre de formation |  |  |  |
+| Institut météorologique |  |  |  |
+| Usines |  |  |  |
+| Entrepôts |  |  |  |
+| Banque |  |  |  |
+| PC Sécurité |  |  |  |
+| Hôpital |  |  |  |
+| Captage hydroponiques |  |  |  |
+| Centrales électriques|  |  |  |
+| Jardins, jardins suspendus |  |  |  |
+| Equipements touristiques |  |  |  |
+|  |  |  |  |

+ 0 - 7
doc/specs/dome/batiments/readme.md

@@ -1,7 +0,0 @@
-Batiment principal (Nom à definir : Base, Quartier General,)
-Centre technologique (lieu des recherches)
-Centre de formation (lieu de formation du personnel, recrutement fait via une interface)
-Centre meteorologique (annexe à prévoir dans les colonies)
-Usines(*) (Defense, transport, attaque)
-entrepot(*)
-dock(*)

+ 0 - 5
doc/specs/dome/readme.md

@@ -1,5 +0,0 @@
-Voici le centre névralgique de la propérité de votre commerce sur cette planète.
-
-Ici sous le dome vous êtes a l'abrit de tous danger (joueurs, environnement, mercenaire)
-
-Vous aurez la posibilité de construire des nouveaux batiments pour élargir vos champs d'action (centre de formation, usine d'équipement)

+ 31 - 23
doc/specs/readme.md

@@ -1,49 +1,57 @@
-Orion Online
+# Orion Online
 
-**Orion** est un jeu par navigateur dans lequel un joueur dirige une faction
-de colons installés sur une exoplanète. La faction démarre depuis un dôme situé dans une zone centrale 
-protégée par les lois de l'organisation galactique du commerce.
+## Principe général
 
-Depuis ce dôme, le joueur pourra aller fonder des colonies d'exploitation 
-à l'extérieur de cette zone, colonies qui lui permettront d'exploiter des 
-ressources qu'il pourra ensuite transporter, stocker et vendre pour 
+**Orion** est un jeu par navigateur dans lequel un joueur dirige une faction de colons installés sur une exoplanète. 
+La faction démarre depuis un dôme situé dans une zone centrale protégée par les lois de l'organisation galactique du 
+commerce.
+
+Depuis ce dôme, le joueur pourra aller fonder des colonies d'exploitation à l'extérieur de cette zone, 
+colonies qui lui permettront d'exploiter des ressources qu'il pourra ensuite transporter, stocker et vendre pour 
 mettre en place une économie.
 
 Le commerce se compose:
-* d'une phase d'exploitation des ressources
+
+* d'une phase d'exploration
+* de l'installation de colonies
+* d'exploitation des ressources
 * de leur transport jusqu'au dôme
 * d'un éventuel raffinage
 * d'un stockage jusqu'à ce que la vente soit déclenchée
 * d'une vente, lorsque les cours de la bourse galactique sont favorables
 
+
 Il est aussi possible d'acheter des ressources.
 
 Il existe un système de cours du prix des ressources, 
 inspiré du système de la bourse.
 
-Le QG d'une faction est son dôme. C'est dans ce dôme que la faction va pouvoir
-dévelloper a population, ses spécialistes, ses recherches...: 
-[voir chapitre sur le dôme](wiki/dome/readme.md)
 
-Autour de la zone centrale dans laquelle sont installés les dômes, se trouve un
-anneau de terres cultivables automatiquement divisées entre les factions. 
-Chaque faction reçoit ainsi une surface de départ à exploiter automatiquement
+## Le dôme
+
+Le QG d'une faction est son dôme. C'est dans ce dôme que la faction va pouvoir developer sa population, 
+ses spécialistes, ses recherches...: [voir chapitre sur le dôme](wiki/dome/readme.md)
+
+La population du dôme représente le niveau de dévelopement d'une colonie.
+Cette population est limitée par la présence de dômes d'habitation.
+Une part de cette population est active (70%?). Tous ces habitants actifs
+sont non-spécialisés par défaut, et peuvent accomplir certaines des tâches 
+de base (construire, exploiter...). Des centres de formations ou de l'immigration 
+spécialisée permettrent ensuite de faire fonctionner des bâtiments qui nécessitent 
+des gens formés, comme des chercheurs.
+
+Autour de la zone centrale dans laquelle sont installés les dômes, se trouve un anneau de terres cultivables 
+automatiquement divisées entre les factions. Chaque faction reçoit ainsi une surface de départ à exploiter automatiquement
 reliée à son dôme.
 
+## Les colonies
+
 Autour de cet anneau, 8 docks sont présents, aux 8 points cardinaux (N, NE, E, SE...)
 
-Ces docks sont tous reliés aux dômes. Les colonies crées par un joueur devront être
+Ces docks sont automatiquement reliés aux dômes. Les colonies créées par un joueur devront être
 reliées à l'un de ces docks.
 
 Un joueur peut créer une quantité de colonies limitée par son niveau d'administration.
 Chaque colonie doit être placée à une distance limitée d'une autre pour pouvoir 
 échanger ses ressources avec. Cette distance dépend du mode de transport choisi 
 pour le transport des ressources (aérien, terrestre, naval...)
-
-La population du dôme représente le niveau de dévelopement d'une colonie.
-Cette population est limitée par la présence de dômes d'habitation.
-Une part de cette population est active (70%?). Tous ces habitants actifs
-sont non-spécialisés par défaut, et peuvent accomplir certaines des tâches 
-de base (construire, exploiter...). Des centres de formations ou de l'immigration 
-spécialisée permettrent ensuite de faire fonctionner des bâtiments qui nécessitent 
-des gens formés, comme des chercheurs.

+ 10 - 1
doc/specs/ressources/readme.md → doc/specs/ressources.md

@@ -1,5 +1,14 @@
-Les ressources disponibles dans Orion:
+# Ressources
+
+## Type de ressources
+
+## Répartition des ressources
 
+## Raffinage
+
+## Liste des ressources
+
+Les ressources disponibles dans Orion:
 
 
 | Type | Nom | Statut | Commentaire |

+ 0 - 0
doc/specs/technologies/readme.md


+ 10 - 0
doc/specs/technos.md

@@ -0,0 +1,10 @@
+# Technologies
+
+Les technologies sont développées grâce aux centres de recherche construits 
+dans le dôme.
+
+## Recherche
+
+## Espionnage industriel
+
+## Liste des technologies

+ 8 - 0
doc/specs/transport.md

@@ -0,0 +1,8 @@
+# Transports
+
+## Principe des routes
+
+## Types de transport
+
+## Aménagements
+

+ 1 - 1
orion-server/core/apps.py

@@ -2,4 +2,4 @@ from django.apps import AppConfig
 
 
 class CoreConfig(AppConfig):
-    name = 'core'
+    name = 'core'

+ 6 - 4
orion-server/core/models.py

@@ -6,7 +6,7 @@ from django.db import models
 
 
 class BaseModel(models.Model):
-    id = models.UUIDField(default=uuid.uuid4, editable=False)
+    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
     created = models.DateTimeField(auto_now_add=True)
     updated = models.DateTimeField(auto_now=True)
     objects = models.Manager()
@@ -102,6 +102,9 @@ class DomeBuildingInstance(BaseModel):
 
 
 class LocalisedBaseModel(BaseModel):
+    class Meta:
+        abstract = True
+
     x = models.IntegerField()
     y = models.IntegerField()
 
@@ -159,10 +162,9 @@ class Route(BaseModel):
         verbose_name = "route"
         verbose_name_plural = "routes"
 
-    origin = models.ForeignKey(Colony, on_delete=models.PROTECT, verbose_name="OriginColony")
-    target = models.ForeignKey(Colony, on_delete=models.PROTECT, verbose_name="TargetColony")
+    origin = models.ForeignKey(Colony, on_delete=models.PROTECT, verbose_name="OriginColony", related_name="origin_for")
+    target = models.ForeignKey(Colony, on_delete=models.PROTECT, verbose_name="TargetColony", related_name="target_of")
     transport = models.ForeignKey(Transport, on_delete=models.PROTECT, verbose_name="Transport")
 
     def __str__(self):
         return f"<Route {self.origin.name}>{self.target.name} ({self.id})>"
-

+ 21 - 3
orion-server/core/urls.py

@@ -3,14 +3,32 @@
 @author: olinox, 2021
 """
 from django.conf import settings
-from django.urls import path
+from django.urls import path, include
 from django.conf.urls.static import static
+from rest_framework import routers, serializers, viewsets
 
 from . import views
 
 
+# Serializers define the API representation.
+class UserSerializer(serializers.HyperlinkedModelSerializer):
+    class Meta:
+        model = User
+        fields = ['url', 'username', 'email', 'is_staff']
+
+
+# ViewSets define the view behavior.
+class UserViewSet(viewsets.ModelViewSet):
+    queryset = User.objects.all()
+    serializer_class = UserSerializer
+
+# Routers provide an easy way of automatically determining the URL conf.
+router = routers.DefaultRouter()
+router.register(r'users', UserViewSet)
+
+
+
 urlpatterns = [
-    
     path('', views.index, name='index'),
-
+    path('api-auth/', include('rest_framework.urls'))
 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

+ 17 - 3
orion-server/orion/settings.py

@@ -25,7 +25,7 @@ SECRET_KEY = 'django-insecure-v5np^u7$vz^zd&rta_smu+89e%-h8npu)t9uw9=_5lhw@q3@7m
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
 
-ALLOWED_HOSTS = []
+ALLOWED_HOSTS = ['*']
 
 
 # Application definition
@@ -37,6 +37,7 @@ INSTALLED_APPS = [
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
+    'rest_framework',
 ]
 
 MIDDLEWARE = [
@@ -75,8 +76,12 @@ WSGI_APPLICATION = 'orion.wsgi.application'
 
 DATABASES = {
     'default': {
-        'ENGINE': 'django.db.backends.sqlite3',
-        'NAME': BASE_DIR / 'db.sqlite3',
+        'ENGINE': 'django.db.backends.postgresql',
+        'NAME': 'orion',
+        'USER': 'postgres',
+        'PASSWORD': 'ZELPwkO4xTJdKvLoHFBu',
+        'HOST': '127.0.0.1',
+        'PORT': '5432',
     }
 }
 
@@ -123,3 +128,12 @@ STATIC_URL = '/static/'
 # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
 
 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
+
+# Rest framework
+REST_FRAMEWORK = {
+    # Use Django's standard `django.contrib.auth` permissions,
+    # or allow read-only access for unauthenticated users.
+    'DEFAULT_PERMISSION_CLASSES': [
+        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
+    ]
+}

+ 6 - 3
orion-server/requirements.txt

@@ -1,6 +1,9 @@
-psycopg2-binary
+psycopg2
 Django
 martor
 path.py
-mod_wsgi
-django-notifications-hq
+#mod_wsgi
+django-notifications-hq
+djangorestframework
+markdown
+django-filter