Merge 9454d8de46 into a73906fc92
This commit is contained in:
commit
283e4b7abd
25 changed files with 945 additions and 14 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -7,4 +7,4 @@ db.eds
|
||||||
db.*
|
db.*
|
||||||
*.sql
|
*.sql
|
||||||
scripts/*
|
scripts/*
|
||||||
|
.idea/*
|
||||||
|
|
|
||||||
12
.idea/eds.iml
generated
Normal file
12
.idea/eds.iml
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="jdk" jdkName="Python 3.6 (eds)" jdkType="Python SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
<component name="TestRunnerService">
|
||||||
|
<option name="projectConfiguration" value="py.test" />
|
||||||
|
<option name="PROJECT_TEST_RUNNER" value="py.test" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
7
.idea/misc.xml
generated
Normal file
7
.idea/misc.xml
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (eds)" project-jdk-type="Python SDK" />
|
||||||
|
<component name="PyCharmProfessionalAdvertiser">
|
||||||
|
<option name="shown" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/eds.iml" filepath="$PROJECT_DIR$/.idea/eds.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
644
.idea/workspace.xml
generated
Normal file
644
.idea/workspace.xml
generated
Normal file
|
|
@ -0,0 +1,644 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="0d3a8744-e240-44f4-9a39-7bc1c02ff58f" name="Default" comment="">
|
||||||
|
<change afterPath="$PROJECT_DIR$/intranet/migrations/0001_Add_Intranet_app.py" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/intranet/urls.py" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/intranet/views.py" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/templates/intranet/list.html" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/cms/admin.py" beforeDir="false" afterPath="$PROJECT_DIR$/cms/admin.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/cms/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/cms/models.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/cms/views.py" beforeDir="false" afterPath="$PROJECT_DIR$/cms/views.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/common/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/settings.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/common/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/urls.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/templates/cms/base_site.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/cms/base_site.html" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/templates/cms/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/cms/index.html" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/templates/cms/module_detail.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/cms/module_detail.html" afterDir="false" />
|
||||||
|
</list>
|
||||||
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="FUSProjectUsageTrigger">
|
||||||
|
<session id="570586467">
|
||||||
|
<usages-collector id="statistics.lifecycle.project">
|
||||||
|
<counts>
|
||||||
|
<entry key="project.closed" value="4" />
|
||||||
|
<entry key="project.open.time.0" value="2" />
|
||||||
|
<entry key="project.open.time.1" value="2" />
|
||||||
|
<entry key="project.open.time.6" value="1" />
|
||||||
|
<entry key="project.opened" value="5" />
|
||||||
|
</counts>
|
||||||
|
</usages-collector>
|
||||||
|
<usages-collector id="statistics.file.extensions.edit">
|
||||||
|
<counts>
|
||||||
|
<entry key="html" value="819" />
|
||||||
|
<entry key="py" value="6945" />
|
||||||
|
</counts>
|
||||||
|
</usages-collector>
|
||||||
|
<usages-collector id="statistics.file.types.edit">
|
||||||
|
<counts>
|
||||||
|
<entry key="HTML" value="819" />
|
||||||
|
<entry key="Python" value="6945" />
|
||||||
|
</counts>
|
||||||
|
</usages-collector>
|
||||||
|
<usages-collector id="statistics.file.extensions.open">
|
||||||
|
<counts>
|
||||||
|
<entry key="css" value="1" />
|
||||||
|
<entry key="html" value="15" />
|
||||||
|
<entry key="py" value="38" />
|
||||||
|
</counts>
|
||||||
|
</usages-collector>
|
||||||
|
<usages-collector id="statistics.file.types.open">
|
||||||
|
<counts>
|
||||||
|
<entry key="CSS" value="1" />
|
||||||
|
<entry key="HTML" value="15" />
|
||||||
|
<entry key="Python" value="38" />
|
||||||
|
</counts>
|
||||||
|
</usages-collector>
|
||||||
|
</session>
|
||||||
|
</component>
|
||||||
|
<component name="FileEditorManager">
|
||||||
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/views.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="570">
|
||||||
|
<caret line="30" lean-forward="true" selection-start-line="30" selection-end-line="30" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#32#0" expanded="true" />
|
||||||
|
<marker date="1532854155007" expanded="true" signature="258:325" ph="..." />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/base_site.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="589">
|
||||||
|
<caret line="31" column="35" selection-start-line="31" selection-start-column="35" selection-end-line="31" selection-end-column="35" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/forms.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="171">
|
||||||
|
<caret line="9" column="78" selection-start-line="9" selection-start-column="78" selection-end-line="9" selection-end-column="78" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/intranet/list.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="95">
|
||||||
|
<caret line="5" column="6" selection-start-line="5" selection-start-column="6" selection-end-line="5" selection-end-column="6" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/common/settings.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="666">
|
||||||
|
<caret line="125" lean-forward="true" selection-start-line="125" selection-end-line="125" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/module_list.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/admin.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="285">
|
||||||
|
<caret line="15" column="53" selection-start-line="15" selection-start-column="53" selection-end-line="15" selection-end-column="53" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#1#10#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/admin.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1653">
|
||||||
|
<caret line="87" selection-start-line="87" selection-end-line="87" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#1#33#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/module_detail.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1349">
|
||||||
|
<caret line="71" column="16" lean-forward="true" selection-start-line="71" selection-start-column="16" selection-end-line="71" selection-end-column="16" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#2869#2875#0" expanded="true" />
|
||||||
|
<element signature="e#2876#2882#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/models.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="152">
|
||||||
|
<caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#43#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
</leaf>
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="IdeDocumentHistory">
|
||||||
|
<option name="CHANGED_PATHS">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/templates/cms/docstudent_list.html" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/cms/docprof_upload.html" />
|
||||||
|
<option value="$PROJECT_DIR$/cms/migrations/0010_Add_DocProf_model.py" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/cms/docprof_list.html" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/cms/intranet_list.html" />
|
||||||
|
<option value="$PROJECT_DIR$/cms/migrations/0012_Rename_DocPrProf.py" />
|
||||||
|
<option value="$PROJECT_DIR$/cms/migrations/0010_Rename_DocPrProf.py" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/intranet/upload.html" />
|
||||||
|
<option value="$PROJECT_DIR$/cms/models.py" />
|
||||||
|
<option value="$PROJECT_DIR$/cms/views.py" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/intranet/registration.html" />
|
||||||
|
<option value="$PROJECT_DIR$/intranet/forms.py" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/cms/index.html" />
|
||||||
|
<option value="$PROJECT_DIR$/intranet/urls.py" />
|
||||||
|
<option value="$PROJECT_DIR$/common/urls.py" />
|
||||||
|
<option value="$PROJECT_DIR$/intranet/models.py" />
|
||||||
|
<option value="$PROJECT_DIR$/intranet/migrations/0001_Add_Intranet_app.py" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/intranet/list.html" />
|
||||||
|
<option value="$PROJECT_DIR$/intranet/views.py" />
|
||||||
|
<option value="$PROJECT_DIR$/intranet/admin.py" />
|
||||||
|
<option value="$PROJECT_DIR$/cms/admin.py" />
|
||||||
|
<option value="$PROJECT_DIR$/cms/forms.py" />
|
||||||
|
<option value="$PROJECT_DIR$/common/settings.py" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/cms/base_site.html" />
|
||||||
|
<option value="$PROJECT_DIR$/templates/cms/module_detail.html" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectFrameBounds" extendedState="6">
|
||||||
|
<option name="x" value="61" />
|
||||||
|
<option name="y" value="34" />
|
||||||
|
<option name="width" value="1867" />
|
||||||
|
<option name="height" value="1020" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectView">
|
||||||
|
<navigator proportions="" version="1">
|
||||||
|
<foldersAlwaysOnTop value="true" />
|
||||||
|
</navigator>
|
||||||
|
<panes>
|
||||||
|
<pane id="Scope" />
|
||||||
|
<pane id="ProjectPane">
|
||||||
|
<subPane>
|
||||||
|
<expand>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="migrations" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="static" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="static" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="css" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="admin.py" type="8704e2dd:PyFileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="models.py" type="8704e2dd:PyFileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="views.py" type="8704e2dd:PyFileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="intranet" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="intranet" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="migrations" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cms" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="eds" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="eds" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="registration" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</subPane>
|
||||||
|
</pane>
|
||||||
|
</panes>
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
|
||||||
|
</component>
|
||||||
|
<component name="RecentsManager">
|
||||||
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/templates/intranet" />
|
||||||
|
<recent name="$PROJECT_DIR$/templates/cms" />
|
||||||
|
</key>
|
||||||
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/templates/intranet" />
|
||||||
|
</key>
|
||||||
|
</component>
|
||||||
|
<component name="RunDashboard">
|
||||||
|
<option name="ruleStates">
|
||||||
|
<list>
|
||||||
|
<RuleState>
|
||||||
|
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||||
|
</RuleState>
|
||||||
|
<RuleState>
|
||||||
|
<option name="name" value="StatusDashboardGroupingRule" />
|
||||||
|
</RuleState>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="SvnConfiguration">
|
||||||
|
<configuration />
|
||||||
|
</component>
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="0d3a8744-e240-44f4-9a39-7bc1c02ff58f" name="Default" comment="" />
|
||||||
|
<created>1531759633264</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1531759633264</updated>
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="ToolWindowManager">
|
||||||
|
<frame x="61" y="25" width="1859" height="1055" extended-state="6" />
|
||||||
|
<layout>
|
||||||
|
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24945533" />
|
||||||
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||||
|
<window_info id="Favorites" order="2" side_tool="true" />
|
||||||
|
<window_info anchor="bottom" id="Message" order="0" />
|
||||||
|
<window_info anchor="bottom" id="Find" order="1" visible="true" weight="0.32910052" />
|
||||||
|
<window_info anchor="bottom" id="Run" order="2" />
|
||||||
|
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
||||||
|
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||||
|
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||||
|
<window_info anchor="bottom" id="TODO" order="6" />
|
||||||
|
<window_info anchor="bottom" id="Terminal" order="7" />
|
||||||
|
<window_info anchor="bottom" id="Python Console" order="8" />
|
||||||
|
<window_info anchor="bottom" id="Version Control" order="9" />
|
||||||
|
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
|
||||||
|
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||||
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||||
|
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
||||||
|
</layout>
|
||||||
|
</component>
|
||||||
|
<component name="VcsContentAnnotationSettings">
|
||||||
|
<option name="myLimit" value="2678400000" />
|
||||||
|
</component>
|
||||||
|
<component name="editorHistoryManager">
|
||||||
|
<entry file="file://$PROJECT_DIR$/common/local_settings.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="418">
|
||||||
|
<caret line="22" selection-start-line="22" selection-end-line="22" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/apps.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file:///var/virtualenvs/eds/lib/python3.6/site-packages/django/forms/fields.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="362">
|
||||||
|
<caret line="534" column="8" selection-start-line="534" selection-start-column="8" selection-end-line="534" selection-end-column="8" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0001_initial.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-2107" />
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0002_auto_20170419_1333.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0003_auto_20170419_1409.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0006_auto_20170616_0906.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0005_auto_20170503_2043.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file:///var/virtualenvs/eds/lib/python3.6/site-packages/django/db/models/fields/files.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="779">
|
||||||
|
<caret line="51" column="52" selection-start-line="51" selection-start-column="52" selection-end-line="51" selection-end-column="52" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/manage.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file:///var/virtualenvs/eds/lib/python3.6/site-packages/django/db/models/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/competence_list.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0013_ReUpdate_IntranetDoc.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0011_Change DocumentProf fields.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0010_Add_DocProf_model.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0008_extend_ressource_type.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0009_drop_unneeded_defaults.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="247">
|
||||||
|
<caret line="14" column="117" selection-start-line="14" selection-start-column="36" selection-end-line="14" selection-end-column="120" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/migrations/0010_Rename_DocPrProf.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/intranet/upload.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state>
|
||||||
|
<caret column="19" selection-start-column="19" selection-end-column="19" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/apps.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file:///var/virtualenvs/eds/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="363">
|
||||||
|
<caret line="475" column="6" selection-start-line="475" selection-start-column="6" selection-end-line="475" selection-end-column="6" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file:///var/virtualenvs/eds/lib/python3.6/site-packages/django/core/files/storage.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="2295">
|
||||||
|
<caret line="172" column="44" selection-start-line="171" selection-start-column="4" selection-end-line="172" selection-end-column="50" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/migrations/0001_New_Intranet_app.py" />
|
||||||
|
<entry file="file:///var/virtualenvs/eds/lib/python3.6/site-packages/django/views/generic/detail.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="133">
|
||||||
|
<caret line="11" column="4" selection-start-line="11" selection-start-column="4" selection-end-line="11" selection-end-column="4" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/views.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="836">
|
||||||
|
<caret line="55" column="18" selection-start-line="55" selection-start-column="18" selection-end-line="55" selection-end-column="18" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/intranet/logged_out.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/intranet/login.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="76">
|
||||||
|
<caret line="4" column="17" lean-forward="true" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/forms.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="114">
|
||||||
|
<caret line="6" selection-start-line="6" selection-end-line="6" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/index.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1064">
|
||||||
|
<caret line="56" column="26" selection-start-line="56" selection-start-column="26" selection-end-line="56" selection-end-column="26" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file:///var/virtualenvs/eds/lib/python3.6/site-packages/django/contrib/auth/views.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-1102">
|
||||||
|
<caret line="42" column="6" selection-start-line="42" selection-start-column="6" selection-end-line="42" selection-end-column="6" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/models.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1425">
|
||||||
|
<caret line="75" column="6" selection-start-line="75" selection-start-column="6" selection-end-line="75" selection-end-column="6" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#48#76#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/common/urls.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="171">
|
||||||
|
<caret line="9" column="37" selection-start-line="9" selection-start-column="37" selection-end-line="9" selection-end-column="37" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/urls.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="133">
|
||||||
|
<caret line="7" column="15" selection-start-line="7" selection-start-column="15" selection-end-line="7" selection-end-column="15" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#30#67#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/migrations/0002_auto_20180729_0936.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="285">
|
||||||
|
<caret line="15" column="20" selection-start-line="15" selection-start-column="12" selection-end-line="15" selection-end-column="150" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/migrations/0002_auto_20180729_0941.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="285">
|
||||||
|
<caret line="15" column="116" selection-start-line="15" selection-start-column="43" selection-end-line="15" selection-end-column="149" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/migrations/0001_Add_Intranet_app.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="532">
|
||||||
|
<caret line="30" column="5" lean-forward="true" selection-start-line="30" selection-start-column="5" selection-end-line="30" selection-end-column="5" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/static/css/main3.css">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="2394">
|
||||||
|
<caret line="153" column="26" lean-forward="true" selection-start-line="153" selection-start-column="26" selection-end-line="153" selection-end-column="26" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/intranet/list.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="95">
|
||||||
|
<caret line="5" column="6" selection-start-line="5" selection-start-column="6" selection-end-line="5" selection-end-column="6" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/registration/login.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/admin.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="285">
|
||||||
|
<caret line="15" column="53" selection-start-line="15" selection-start-column="53" selection-end-line="15" selection-end-column="53" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#1#10#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/admin.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1653">
|
||||||
|
<caret line="87" selection-start-line="87" selection-end-line="87" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#1#33#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/models.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="152">
|
||||||
|
<caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#43#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/cms/forms.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="171">
|
||||||
|
<caret line="9" column="78" selection-start-line="9" selection-start-column="78" selection-end-line="9" selection-end-column="78" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/common/settings.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="666">
|
||||||
|
<caret line="125" lean-forward="true" selection-start-line="125" selection-end-line="125" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/base_site.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="589">
|
||||||
|
<caret line="31" column="35" selection-start-line="31" selection-start-column="35" selection-end-line="31" selection-end-column="35" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/intranet/views.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="570">
|
||||||
|
<caret line="30" lean-forward="true" selection-start-line="30" selection-end-line="30" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#32#0" expanded="true" />
|
||||||
|
<marker date="1532854155007" expanded="true" signature="258:325" ph="..." />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/module_list.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/templates/cms/module_detail.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1349">
|
||||||
|
<caret line="71" column="16" lean-forward="true" selection-start-line="71" selection-start-column="16" selection-end-line="71" selection-end-column="16" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#2869#2875#0" expanded="true" />
|
||||||
|
<element signature="e#2876#2882#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
|
|
@ -85,8 +85,7 @@ class ConceptAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
class UploadAdmin(admin.ModelAdmin):
|
class UploadAdmin(admin.ModelAdmin):
|
||||||
form = UploadAdminForm
|
form = UploadAdminForm
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Enseignant)
|
admin.site.register(Enseignant)
|
||||||
admin.site.register(Domaine, DomaineAdmin)
|
admin.site.register(Domaine, DomaineAdmin)
|
||||||
admin.site.register(Competence, CompetenceAdmin)
|
admin.site.register(Competence, CompetenceAdmin)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ Created on 17 nov. 2012
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
|
|
||||||
from tinymce import models as tinymce_models
|
from tinymce import models as tinymce_models
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ Created on 4 déc. 2012
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
|
|
||||||
from django.db.models import Sum
|
from django.db.models import Sum
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.views.generic import ListView, TemplateView, DetailView
|
from django.views.generic import ListView, TemplateView, DetailView
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ INSTALLED_APPS = [
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'tinymce',
|
'tinymce',
|
||||||
'cms',
|
'cms',
|
||||||
|
'intranet',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -123,5 +124,6 @@ TINYMCE_COMPRESSOR = True
|
||||||
|
|
||||||
PDF_FOOTER_TEXT = 'Ecole Santé-social Pierre-Coullery | Prévoyance 82 - 2300 La Chaux-de-Fonds | 032 886 33 00 | cifom-epc@rpn.ch'
|
PDF_FOOTER_TEXT = 'Ecole Santé-social Pierre-Coullery | Prévoyance 82 - 2300 La Chaux-de-Fonds | 032 886 33 00 | cifom-epc@rpn.ch'
|
||||||
|
|
||||||
|
LOGIN_REDIRECT_URL = '/intranet/list/'
|
||||||
|
|
||||||
from .local_settings import *
|
from .local_settings import *
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,19 @@
|
||||||
|
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
from django.urls import path, include
|
|
||||||
from django.contrib import admin
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.contrib import admin
|
||||||
|
from django.contrib.auth.views import LoginView, logout
|
||||||
|
from django.urls import path, include
|
||||||
from django.views.static import serve
|
from django.views.static import serve
|
||||||
|
|
||||||
from cms import views
|
from cms import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.HomeView.as_view(), name='home'),
|
path('', views.HomeView.as_view(), name='home'),
|
||||||
|
path('login/', LoginView.as_view(), name='login'),
|
||||||
|
path('logout/', logout, {'next_page': '/'}, name='logout'),
|
||||||
path('plan_pdf/', views.print_plan_formation, name='plan-pdf'),
|
path('plan_pdf/', views.print_plan_formation, name='plan-pdf'),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('domaine/<int:pk>/', views.DomaineDetailView.as_view(), name='domaine-detail'),
|
path('domaine/<int:pk>/', views.DomaineDetailView.as_view(), name='domaine-detail'),
|
||||||
|
|
@ -28,8 +32,11 @@ urlpatterns = [
|
||||||
path('upload/', views.UploadDocListView.as_view(), name='uploaddoc-list'),
|
path('upload/', views.UploadDocListView.as_view(), name='uploaddoc-list'),
|
||||||
path('concept/<int:pk>/', views.ConceptDetailView.as_view(), name='concept-detail'),
|
path('concept/<int:pk>/', views.ConceptDetailView.as_view(), name='concept-detail'),
|
||||||
path('tinymce/', include('tinymce.urls'), name='tinymce-js'),
|
path('tinymce/', include('tinymce.urls'), name='tinymce-js'),
|
||||||
|
path('intranet/', include('intranet.urls'), name='intranet'),
|
||||||
# Serve docs by Django to allow LoginRequiredMiddleware to apply
|
# Serve docs by Django to allow LoginRequiredMiddleware to apply
|
||||||
|
path('media/intranet/<path:path>', serve,
|
||||||
|
{'document_root': os.path.join(settings.MEDIA_ROOT, 'intranet'), 'show_indexes': False}
|
||||||
|
),
|
||||||
path('media/doc/<path:path>', serve,
|
path('media/doc/<path:path>', serve,
|
||||||
{'document_root': os.path.join(settings.MEDIA_ROOT, 'doc'), 'show_indexes': False}
|
{'document_root': os.path.join(settings.MEDIA_ROOT, 'doc'), 'show_indexes': False}
|
||||||
),
|
),
|
||||||
|
|
|
||||||
0
intranet/__init__.py
Normal file
0
intranet/__init__.py
Normal file
32
intranet/admin.py
Normal file
32
intranet/admin.py
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
from intranet.models import IntranetDoc
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
|
|
||||||
|
|
||||||
|
class IntranetDocAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
|
list_display = ('__str__', 'module', 'authorization')
|
||||||
|
|
||||||
|
def save_model(self, request, obj, form, change):
|
||||||
|
searched_file = 'intranet/{0}'.format(form.cleaned_data['doc'])
|
||||||
|
try:
|
||||||
|
doc = IntranetDoc.objects.get(doc=searched_file)
|
||||||
|
form.save()
|
||||||
|
# Override previous file
|
||||||
|
filename = os.path.join(settings.MEDIA_ROOT, searched_file)
|
||||||
|
file = request.FILES['doc']
|
||||||
|
with open(filename, 'wb+') as destination:
|
||||||
|
for chunk in file.chunks():
|
||||||
|
destination.write(chunk)
|
||||||
|
|
||||||
|
except IntranetDoc.DoesNotExist:
|
||||||
|
super(IntranetDocAdmin, self).save_model(request, obj, form, change)
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(IntranetDoc, IntranetDocAdmin)
|
||||||
5
intranet/apps.py
Normal file
5
intranet/apps.py
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class IntranetConfig(AppConfig):
|
||||||
|
name = 'intranet'
|
||||||
31
intranet/migrations/0001_Add_Intranet_app.py
Normal file
31
intranet/migrations/0001_Add_Intranet_app.py
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Generated by Django 2.0.6 on 2018-07-28 11:31
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import intranet.models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('cms', '0009_drop_unneeded_defaults'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='IntranetDoc',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('doc', models.FileField(unique=True, upload_to='intranet')),
|
||||||
|
('published', models.BooleanField(default=True)),
|
||||||
|
('authorization', models.SmallIntegerField(choices=[(3, 'admin'), (0, 'aucun'), (1, 'étudiant'), (2, 'prof')], default=0, verbose_name='autorisation')),
|
||||||
|
('module', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='cms.Module')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Intranet',
|
||||||
|
'verbose_name_plural': 'Intranet',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
0
intranet/migrations/__init__.py
Normal file
0
intranet/migrations/__init__.py
Normal file
36
intranet/models.py
Normal file
36
intranet/models.py
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
from django.db import models
|
||||||
|
from django.db.models.signals import pre_delete
|
||||||
|
from django.dispatch import receiver
|
||||||
|
|
||||||
|
from cms.models import Module
|
||||||
|
# Create your models here.
|
||||||
|
|
||||||
|
|
||||||
|
class IntranetDoc(models.Model):
|
||||||
|
AUTHORIZATION_CHOICES = {
|
||||||
|
(0, 'aucun'),
|
||||||
|
(1, 'étudiant'),
|
||||||
|
(2, 'prof'),
|
||||||
|
(3, 'admin')
|
||||||
|
}
|
||||||
|
|
||||||
|
doc = models.FileField(upload_to='intranet', unique=True)
|
||||||
|
module = models.ForeignKey(Module, null=False, on_delete=models.PROTECT)
|
||||||
|
published = models.BooleanField(default=True, blank=False)
|
||||||
|
authorization = models.SmallIntegerField("autorisation", choices=AUTHORIZATION_CHOICES, default=0)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'Intranet'
|
||||||
|
verbose_name_plural = 'Intranet'
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.doc.name
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(pre_delete, sender=IntranetDoc)
|
||||||
|
def remove_file(**kwargs):
|
||||||
|
instance = kwargs.get('instance')
|
||||||
|
instance.doc.delete(save=False)
|
||||||
|
|
||||||
|
|
||||||
3
intranet/tests.py
Normal file
3
intranet/tests.py
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
10
intranet/urls.py
Normal file
10
intranet/urls.py
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
"""eds URL Configuration
|
||||||
|
|
||||||
|
"""
|
||||||
|
from django.urls import path
|
||||||
|
from intranet import views
|
||||||
|
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('list/', views.IntranetListView.as_view(), name='intranet-list'),
|
||||||
|
]
|
||||||
39
intranet/views.py
Normal file
39
intranet/views.py
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
from django.conf import settings
|
||||||
|
from django.views.generic import ListView
|
||||||
|
from cms.models import Module
|
||||||
|
from intranet.models import IntranetDoc
|
||||||
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
|
|
||||||
|
|
||||||
|
class IntranetListView(LoginRequiredMixin, ListView):
|
||||||
|
|
||||||
|
model = IntranetDoc
|
||||||
|
template_name = 'intranet/list.html'
|
||||||
|
login_url = '/login/'
|
||||||
|
redirect_field_name = 'redirecto_to'
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
modules = Module.objects.all().order_by('code')
|
||||||
|
groups = self.request.user.groups.values_list('name',flat=True)
|
||||||
|
|
||||||
|
if self.request.user.is_superuser:
|
||||||
|
return IntranetDoc.objects.filter(authorization__in=[1,2,3],
|
||||||
|
published=True)
|
||||||
|
if 'prof' in groups:
|
||||||
|
return IntranetDoc.objects.filter(authorization__in=[1,2],
|
||||||
|
published=True)
|
||||||
|
if 'Student_1_year' in groups or 'Student_2_year' in groups or 'Student_3_year' in groups:
|
||||||
|
modules_selected = []
|
||||||
|
student_access = {'Student_1_year': [m for m in modules if m.sem1 > 0 or m.sem2 > 0],
|
||||||
|
'Student_2_year': [m for m in modules if m.sem3 > 0 or m.sem4 > 0],
|
||||||
|
'Student_3_year': [m for m in modules if m.sem5 > 0 or m.sem6 > 0]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for group in groups:
|
||||||
|
for mod in student_access[group]: #settings.STUDENT_ACCESS[group]:
|
||||||
|
modules_selected.append(mod.code)
|
||||||
|
return IntranetDoc.objects.filter(module__code__in=modules_selected,
|
||||||
|
authorization=1,
|
||||||
|
published=True)
|
||||||
|
return None
|
||||||
|
|
@ -9,9 +9,9 @@
|
||||||
<div id="user-tools">
|
<div id="user-tools">
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
{% block welcome-msg %}Bienvenue <strong>{% firstof user.username %}</strong>.{% endblock %}
|
{% block welcome-msg %}Bienvenue <strong>{% firstof user.username %}</strong>.{% endblock %}
|
||||||
<a href="{% url 'home' %}">Site public</a> <a href="{% url 'admin:index' %}">Admin</a>
|
<a href="{% url 'logout' %}">Déconnexion</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'admin:index' %}">Admin</a>
|
<a href="{% url 'login' %}">Login</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
@ -29,8 +29,8 @@
|
||||||
<li><a href="{% url 'concept-detail' 1 %}">Concept pédagogique</a> </li>
|
<li><a href="{% url 'concept-detail' 1 %}">Concept pédagogique</a> </li>
|
||||||
<li><a href="{% url 'concept-detail' 2 %}">Concept de formation</a> </li>
|
<li><a href="{% url 'concept-detail' 2 %}">Concept de formation</a> </li>
|
||||||
<li><a href="{% url 'uploaddoc-list' %}">Téléchargements</a> </li>
|
<li><a href="{% url 'uploaddoc-list' %}">Téléchargements</a> </li>
|
||||||
{% if has_permission %}
|
{% if user.is_superuser %}
|
||||||
<li><a href="#">Calendrier</a> </li>
|
<li><a href="{% url 'admin:index' %}">Administration</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<!-- Ligne 2 -->
|
<!-- Ligne 2 -->
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="3" class="l2 d">{{ D2.url }}</td>
|
<td rowspan="2" class="l2 d">{{ D2.url }}</td>
|
||||||
<td class="l2 p">{{ P03.url }}</td>
|
<td class="l2 p">{{ P03.url }}</td>
|
||||||
<td class="l2 m">{{ M05.url_code }}</td>
|
<td class="l2 m">{{ M05.url_code }}</td>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,10 @@
|
||||||
<td>{{ object.processus.domaine.responsable.descr|safe }}</td>
|
<td>{{ object.processus.domaine.responsable.descr|safe }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<p><a href="{% url 'module-pdf' object.id %}">Imprimer en PDF</a></p>
|
<p>
|
||||||
|
<a href="{% url 'module-pdf' object.id %}">Imprimer en PDF</a>
|
||||||
|
<a href="{% url 'intranet-list' %}">Documents de cours (login requis)</a>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
||||||
23
templates/intranet/list.html
Normal file
23
templates/intranet/list.html
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{% extends "../cms/base_site.html" %}
|
||||||
|
{% load i18n static %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<style type="text/css">
|
||||||
|
ul li {float: none;}
|
||||||
|
</style>
|
||||||
|
<div id="content-main">
|
||||||
|
<h1>Documents de cours</h1>
|
||||||
|
{% regroup object_list by module as module_list %}
|
||||||
|
<ul>
|
||||||
|
{% for module in module_list %}
|
||||||
|
<li><h3>{{ module.grouper }}</h3>
|
||||||
|
<ol>
|
||||||
|
{% for doc in module.list %}
|
||||||
|
<li><a href="{{ doc.doc.url }}">{{ doc.doc.name }} ({{ doc.get_authorization_display }})</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
66
templates/registration/login.html
Normal file
66
templates/registration/login.html
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
{% extends "admin/base_site.html" %}
|
||||||
|
{% load i18n static %}
|
||||||
|
|
||||||
|
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/login.css" %}" />
|
||||||
|
{{ form.media }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block bodyclass %}{{ block.super }} login{% endblock %}
|
||||||
|
|
||||||
|
{% block usertools %}{% endblock %}
|
||||||
|
|
||||||
|
{% block nav-global %}{% endblock %}
|
||||||
|
|
||||||
|
{% block content_title %}{% endblock %}
|
||||||
|
|
||||||
|
{% block breadcrumbs %}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% if form.errors and not form.non_field_errors %}
|
||||||
|
<p class="errornote">
|
||||||
|
{% if form.errors.items|length == 1 %}{% trans "Please correct the error below." %}{% else %}{% trans "Please correct the errors below." %}{% endif %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if form.non_field_errors %}
|
||||||
|
{% for error in form.non_field_errors %}
|
||||||
|
<p class="errornote">
|
||||||
|
{{ error }}
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div id="content-main">
|
||||||
|
|
||||||
|
{% if user.is_authenticated %}
|
||||||
|
<p class="errornote">
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
You are authenticated as {{ username }}, but are not authorized to
|
||||||
|
access this page. Would you like to login to a different account?
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<form action="{{ app_path }}" method="post" id="login-form">{% csrf_token %}
|
||||||
|
<div class="form-row">
|
||||||
|
{{ form.username.errors }}
|
||||||
|
{{ form.username.label_tag }} {{ form.username }}
|
||||||
|
</div>
|
||||||
|
<div class="form-row">
|
||||||
|
{{ form.password.errors }}
|
||||||
|
{{ form.password.label_tag }} {{ form.password }}
|
||||||
|
<input type="hidden" name="next" value="{{ next }}" />
|
||||||
|
</div>
|
||||||
|
{% url 'admin_password_reset' as password_reset_url %}
|
||||||
|
{% if password_reset_url %}
|
||||||
|
<div class="password-reset-link">
|
||||||
|
<a href="{{ password_reset_url }}">{% trans 'Forgotten your password or username?' %}</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="submit-row">
|
||||||
|
<label> </label><input type="submit" value="{% trans 'Log in' %}" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue