=Candidate_admin

This commit is contained in:
alazo 2017-09-07 21:43:27 +02:00
parent 3a74057ec0
commit f16367a799
14 changed files with 1157 additions and 151 deletions

17
.idea/dictionaries/alzo.xml generated Normal file
View file

@ -0,0 +1,17 @@
<component name="ProjectDictionaryState">
<dictionary name="alzo">
<words>
<w>créés</w>
<w>domaine</w>
<w>erreurs</w>
<w>klass</w>
<w>modifiés</w>
<w>naissance</w>
<w>objets</w>
<w>pcode</w>
<w>prénom</w>
<w>rencontrées</w>
<w>étudiants</w>
</words>
</dictionary>
</component>

11
.idea/epcstages.iml generated Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>

View file

@ -0,0 +1,39 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPep8Inspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="E501" />
<option value="E302" />
</list>
</option>
</inspection_tool>
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="stages.models.Section.objects" />
<option value="stages.models.Teacher.objects" />
<option value="stages.models.Period.objects" />
<option value="stages.models.CorpContact.objects" />
<option value="stages.models.Training.objects" />
<option value="stages.models.Student.objects" />
<option value="stages.views.StudentSummaryView.*" />
<option value="stages.views.KlassView.*" />
<option value="stages.models.Klass.*" />
<option value="stages.models.Availability.*" />
<option value="stages.models.Period.*" />
<option value="stages.views.TrainingsByPeriodView.*" />
<option value="stages.models.Corporation.*" />
<option value="dict.*" />
<option value="stages.models.Student.*" />
<option value="stages.models.Course.*" />
<option value="stages.models.Option.*" />
<option value="stages.views.ImportViewBase.*" />
<option value="stages.views.CorpContactJSONView.*" />
<option value="stages.models.Training.*" />
</list>
</option>
</inspection_tool>
</profile>
</component>

4
.idea/misc.xml generated Normal file
View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5.2 virtualenv at ~/.virtualenvs/epcstages" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated Normal file
View 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/epcstages.iml" filepath="$PROJECT_DIR$/.idea/epcstages.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View 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>

746
.idea/workspace.xml generated Normal file
View file

@ -0,0 +1,746 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="be053cff-c1a2-4942-9748-7669ef04d5a8" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/stages/admin.py" afterPath="$PROJECT_DIR$/stages/admin.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/stages/migrations/0003_ame=Add_Candidate_model.py" afterPath="$PROJECT_DIR$/stages/migrations/0003_ame=Add_Candidate_model.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/stages/migrations/0004_ame=Add_EdsCandidate_model.py" afterPath="$PROJECT_DIR$/stages/migrations/0004_ame=Add_EdsCandidate_model.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/stages/models.py" afterPath="$PROJECT_DIR$/stages/models.py" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" 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="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="models.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/stages/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="333">
<caret line="460" column="0" lean-forward="false" selection-start-line="460" selection-start-column="0" selection-end-line="460" selection-end-column="0" />
<folding>
<element signature="e#0#11#0" expanded="true" />
<marker date="1504809043987" expanded="true" signature="6556:9289" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="admin.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/stages/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-87">
<caret line="272" column="24" lean-forward="false" selection-start-line="272" selection-start-column="24" selection-end-line="272" selection-end-column="24" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="local_settings.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/common/local_settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="666">
<caret line="37" column="0" lean-forward="false" selection-start-line="37" selection-start-column="0" selection-end-line="37" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</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$/stages/pdf.py" />
<option value="$PROJECT_DIR$/common/settings.py" />
<option value="$PROJECT_DIR$/scripts/import_teacher.py" />
<option value="$PROJECT_DIR$/common/urls.py" />
<option value="$PROJECT_DIR$/stages/views.py" />
<option value="$PROJECT_DIR$/stages/migrations/0003_ame=Add_Candidate_model.py" />
<option value="$PROJECT_DIR$/stages/migrations/0004_ame=Add_EdsCandidate_model.py" />
<option value="$PROJECT_DIR$/stages/migrations/0005_ame=Ame_Candidate.py" />
<option value="$PROJECT_DIR$/common/local_settings.py" />
<option value="$PROJECT_DIR$/stages/admin.py" />
<option value="$PROJECT_DIR$/stages/models.py" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="45" />
<option name="y" value="-4" />
<option name="width" value="1875" />
<option name="height" value="1084" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="templates" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="templates" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="admin" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="stages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="stages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="stages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="img" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="scripts" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="epcstages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="common" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="add_unversioned_files" value="$PROJECT_DIR$/common/local_settings.py" />
</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="RunManager">
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="epcstages" />
<option name="SCRIPT_NAME" value="" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<method />
</configuration>
<configuration default="true" type="Tox" factoryName="Tox">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="epcstages" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Doctests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="epcstages" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
<method />
</configuration>
<configuration default="true" type="tests" factoryName="Unittests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="epcstages" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;.&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
<method />
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="be053cff-c1a2-4942-9748-7669ef04d5a8" name="Default" comment="" />
<created>1502127797453</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1502127797453</updated>
</task>
<servers />
</component>
<component name="ToolWindowManager">
<frame x="45" y="-4" width="1875" height="1084" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3176599" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25533077" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="1" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/stages/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5310">
<caret line="320" column="0" lean-forward="false" selection-start-line="320" selection-start-column="0" selection-end-line="320" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2448">
<caret line="136" column="15" lean-forward="false" selection-start-line="136" selection-start-column="15" selection-end-line="136" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/local_settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/utils.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/admin/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522">
<caret line="29" column="17" lean-forward="false" selection-start-line="29" selection-start-column="17" selection-end-line="29" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/pdf.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1260">
<caret line="83" column="0" lean-forward="false" selection-start-line="83" selection-start-column="0" selection-end-line="83" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#11#0" expanded="true" />
<marker date="1504809043987" expanded="true" signature="6556:9289" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5310">
<caret line="320" column="0" lean-forward="false" selection-start-line="320" selection-start-column="0" selection-end-line="320" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2448">
<caret line="136" column="15" lean-forward="false" selection-start-line="136" selection-start-column="15" selection-end-line="136" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/local_settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/pdf.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1260">
<caret line="83" column="0" lean-forward="false" selection-start-line="83" selection-start-column="0" selection-end-line="83" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/utils.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/admin/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522">
<caret line="29" column="17" lean-forward="false" selection-start-line="29" selection-start-column="17" selection-end-line="29" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2646">
<caret line="153" column="48" lean-forward="true" selection-start-line="153" selection-start-column="48" selection-end-line="153" selection-end-column="48" />
<folding>
<element signature="e#0#11#0" expanded="true" />
<marker date="1504809043987" expanded="true" signature="6556:9289" ph="..." />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5310">
<caret line="320" column="0" lean-forward="true" selection-start-line="320" selection-start-column="0" selection-end-line="320" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/local_settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/pdf.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1260">
<caret line="83" column="0" lean-forward="false" selection-start-line="83" selection-start-column="0" selection-end-line="83" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/utils.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/admin/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522">
<caret line="29" column="17" lean-forward="false" selection-start-line="29" selection-start-column="17" selection-end-line="29" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2448">
<caret line="136" column="15" lean-forward="false" selection-start-line="136" selection-start-column="15" selection-end-line="136" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/EXP_RCENSEIGNANT_1.txt" />
<entry file="file://$PROJECT_DIR$/stages/utils.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/foo.py" />
<entry file="file://$PROJECT_DIR$/stages/migrations/0002_corpcontact_ext_id.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="19" column="0" lean-forward="true" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0001_initial.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="8" column="20" lean-forward="true" selection-start-line="8" selection-start-column="20" selection-end-line="8" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0016_referent_to_teacher.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234">
<caret line="13" column="36" lean-forward="true" selection-start-line="13" selection-start-column="36" selection-end-line="13" selection-end-column="36" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0017_migrate_referents.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="16" column="12" lean-forward="true" selection-start-line="16" selection-start-column="12" selection-end-line="16" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0018_removed_referent_model.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0019_add_old_ext_id.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="8" column="15" lean-forward="false" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/dump_teacher.json" />
<entry file="file://$PROJECT_DIR$/stages/pdf.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="32" column="73" lean-forward="false" selection-start-line="32" selection-start-column="73" selection-end-line="32" selection-end-column="73" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/scripts/import_teacher.py" />
<entry file="file://$PROJECT_DIR$/stages/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="e#0#24#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/admin/base_site.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/admin/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522">
<caret line="29" column="17" lean-forward="false" selection-start-line="29" selection-start-column="17" selection-end-line="29" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="612">
<caret line="39" column="84" lean-forward="false" selection-start-line="39" selection-start-column="84" selection-end-line="39" selection-end-column="84" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/views.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="6840">
<caret line="409" column="32" lean-forward="true" selection-start-line="409" selection-start-column="32" selection-end-line="409" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0005_extended_contact_email.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0001_squashed_0024_course_public_length2.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0003_ame=Add_Candidate_model.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="499">
<caret line="44" column="0" lean-forward="false" selection-start-line="44" selection-start-column="0" selection-end-line="44" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0004_ame=Add_EdsCandidate_model.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="14" column="18" lean-forward="false" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0004_corpcontact_sections.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/migrations/0005_ame=Ame_Candidate.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="634">
<caret line="161" column="23" lean-forward="false" selection-start-line="161" selection-start-column="23" selection-end-line="161" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/static/img/no_ok.jpg">
<provider selected="true" editor-type-id="images">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/local_settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="666">
<caret line="37" column="0" lean-forward="false" selection-start-line="37" selection-start-column="0" selection-end-line="37" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/admin.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-87">
<caret line="272" column="24" lean-forward="false" selection-start-line="272" selection-start-column="24" selection-end-line="272" selection-end-column="24" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/stages/models.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="333">
<caret line="460" column="0" lean-forward="false" selection-start-line="460" selection-start-column="0" selection-end-line="460" selection-end-column="0" />
<folding>
<element signature="e#0#11#0" expanded="true" />
<marker date="1504809043987" expanded="true" signature="6556:9289" ph="..." />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View file

@ -2,21 +2,30 @@ import os
import tempfile
import zipfile
from collections import OrderedDict
from datetime import date, datetime
from django import forms
from django.contrib import admin
from django.db import models
from django.db.models import Case, Count, When
from django.http import HttpResponse
from django.core.mail import send_mail
from openpyxl import Workbook
from openpyxl.styles import Font, Style
from openpyxl.writer.excel import save_virtual_workbook
from stages.models import (
Teacher, Option, Student, Section, Level, Klass, Corporation,
CorpContact, Domain, Period, Availability, Training, Course,
AsaCandidate, AseCandidate, EdePECandidate, EdePSCandidate, AsscCandidate,
EdsCandidate,
Candidate, District, Config
)
from stages.pdf import ChargeSheetPDF
openxml_contenttype = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
def print_charge_sheet(modeladmin, request, queryset):
"""
Génère un pdf pour chaque enseignant, écrit le fichier créé
@ -192,7 +201,7 @@ class AvailabilityInline(admin.StackedInline):
ordering = ('corporation__name',)
extra = 1
formfield_overrides = {
models.TextField: {'widget': forms.Textarea(attrs={'rows':2, 'cols':40})},
models.TextField: {'widget': forms.Textarea(attrs={'rows': 2, 'cols': 40})},
}
@ -227,6 +236,79 @@ class CourseAdmin(admin.ModelAdmin):
search_fields = ('teacher__last_name', 'public', 'subject')
def send_confirmation_mail(modeladmin, request, queryset):
send_mail(
'Subject here',
'Here is the message.',
'alain.zosso@webzos.com',
['azo@rpn.ch'],
fail_silently=False,
)
send_confirmation_mail.short_description = "Envoyer email de confirmation"
def export_candidates(modeladmin, request, queryset):
# Tous les champs du modèle
export_fields = OrderedDict([(f.verbose_name, f.name) for f in Candidate._meta.get_fields()])
export_fields['Canton'] = 'district__abrev'
export_fields['Employeur'] = 'corporation__name'
export_fields['FEE/FPP'] = 'instructor__last_name'
del export_fields['ID']
wb = Workbook()
ws = wb.active
ws.title = 'Exportation'
bold = Style(font=Font(bold=True))
for col_idx, header in enumerate(export_fields.keys(), start=1):
cell = ws.cell(row=1, column=col_idx)
cell.value = header
cell.style = bold
query_keys = [f for f in export_fields.values() if f is not None]
for row_idx, tr in enumerate(queryset.values(*query_keys), start=2):
for col_idx, field in enumerate(query_keys, start=1):
ws.cell(row=row_idx, column=col_idx).value = tr[field]
response = HttpResponse(save_virtual_workbook(wb), content_type=openxml_contenttype)
response['Content-Disposition'] = 'attachment; filename=%s%s.xlsx' % (
'candidats_export_', date.strftime(date.today(), '%Y-%m-%d'))
return response
export_candidates.short_description = "Exporter les candidats sélectionnés"
class CandidateAdmin(admin.ModelAdmin):
list_display = ('last_name', 'first_name', 'section', 'confirm_email')
list_filter = ('section', 'option', )
readonly_fields = ('total_result_points', 'total_result_mark', 'date_confirmation_mail', )
actions = [send_confirmation_mail, export_candidates]
fieldsets = (
(None, {
'fields': (('first_name', 'last_name', 'gender'),
('street', 'pcode', 'city', 'district'),
('mobile', 'email'),
('birth_date', 'avs', 'handicap', ),
('section', 'option'),
('corporation', 'instructor'),
('deposite_date', 'date_confirmation_mail')
),
}),
("FE", {
'classes': ('collapse',),
'fields': ('exemption_ecg',),
}),
("EDE/EDS", {
'classes': ('collapse',),
'fields': (('registration_form', 'certificate_of_payement', 'cv', 'certif_of_cfc',
'police_record', 'certif_of_800h', 'reflexive_text', 'work_certificate', 'marks_certificate',
'proc_admin_ext', 'promise', 'contract'),
'comment',
('interview_date', 'interview_room'),
('examination_result', 'interview_result', 'file_result', 'total_result_points',
'total_result_mark')
),
}),
)
admin.site.register(Section)
admin.site.register(Level)
admin.site.register(Klass, KlassAdmin)
@ -240,9 +322,6 @@ admin.site.register(Domain)
admin.site.register(Period, PeriodAdmin)
admin.site.register(Availability, AvailabilityAdmin)
admin.site.register(Training, TrainingAdmin)
admin.site.register(AsaCandidate)
admin.site.register(AseCandidate)
admin.site.register(AsscCandidate)
admin.site.register(EdePECandidate)
admin.site.register(EdePSCandidate)
admin.site.register(EdsCandidate)
admin.site.register(Candidate, CandidateAdmin)
admin.site.register(District)
admin.site.register(Config)

View file

@ -42,62 +42,7 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=30)),
],
),
migrations.CreateModel(
name='AsaAsscCandidate',
fields=[
('candidate_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stages.Candidate')),
('corporation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur')),
('instructor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP')),
],
bases=('stages.candidate',),
),
migrations.CreateModel(
name='AseCandidate',
fields=[
('candidate_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stages.Candidate')),
('corporation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur')),
('instructor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP')),
],
bases=('stages.candidate',),
),
migrations.CreateModel(
name='EdePECandidate',
fields=[
('candidate_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stages.Candidate')),
('registration_form', models.BooleanField(default=False)),
('certificate_of_payement', models.BooleanField(default=False)),
('police_record', models.BooleanField(default=False)),
('cv', models.BooleanField(default=False)),
('certif_of_cfc', models.BooleanField(default=False)),
('certif_of_800h', models.BooleanField(default=False)),
('reflexive_text', models.BooleanField(default=False)),
('proc_admin_ext', models.BooleanField(default=False)),
('work_certificate', models.BooleanField(default=False)),
('marks_certificate', models.BooleanField(default=False)),
('deposite_date', models.DateField(default=django.utils.timezone.now, verbose_name='Date dépôt dossier')),
('corporation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur')),
('instructor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP')),
],
bases=('stages.candidate',),
),
migrations.CreateModel(
name='EdePSCandidate',
fields=[
('candidate_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stages.Candidate')),
('registration_form', models.BooleanField(default=False)),
('certificate_of_payement', models.BooleanField(default=False)),
('police_record', models.BooleanField(default=False)),
('cv', models.BooleanField(default=False)),
('certif_of_cfc', models.BooleanField(default=False)),
('certif_of_800h', models.BooleanField(default=False)),
('reflexive_text', models.BooleanField(default=False)),
('proc_admin_ext', models.BooleanField(default=False)),
('work_certificate', models.BooleanField(default=False)),
('marks_certificate', models.BooleanField(default=False)),
('deposite_date', models.DateField(default=django.utils.timezone.now, verbose_name='Date dépôt dossier')),
],
bases=('stages.candidate',),
),
migrations.AddField(
model_name='candidate',
name='district',

View file

@ -13,26 +13,4 @@ class Migration(migrations.Migration):
]
operations = [
migrations.CreateModel(
name='AsscCandidate',
fields=[
('candidate_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stages.Candidate')),
('corporation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur')),
('instructor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP')),
],
bases=('stages.candidate',),
),
migrations.CreateModel(
name='EdsCandidate',
fields=[
('candidate_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='stages.Candidate')),
('corporation', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur')),
('instructor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP')),
],
bases=('stages.candidate',),
),
migrations.RenameModel(
old_name='AsaAsscCandidate',
new_name='AsaCandidate',
),
]

View file

@ -0,0 +1,169 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.2 on 2017-09-07 14:40
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('stages', '0004_ame=Add_EdsCandidate_model'),
]
operations = [
migrations.CreateModel(
name='Config',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.CharField(max_length=100)),
('value', models.TextField()),
('comment', models.TextField()),
],
),
migrations.RemoveField(
model_name='candidate',
name='tel',
),
migrations.AddField(
model_name='candidate',
name='certif_of_800h',
field=models.BooleanField(default=False, verbose_name='Attest. 800h.'),
),
migrations.AddField(
model_name='candidate',
name='certif_of_cfc',
field=models.BooleanField(default=False, verbose_name='CFC'),
),
migrations.AddField(
model_name='candidate',
name='certificate_of_payement',
field=models.BooleanField(default=False, verbose_name='Attest. paiement'),
),
migrations.AddField(
model_name='candidate',
name='comment',
field=models.TextField(blank=True, default='', verbose_name='Remarques'),
),
migrations.AddField(
model_name='candidate',
name='contract',
field=models.BooleanField(default=False, verbose_name='Contrat valide'),
),
migrations.AddField(
model_name='candidate',
name='corporation',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.Corporation', verbose_name='Employeur'),
),
migrations.AddField(
model_name='candidate',
name='cv',
field=models.BooleanField(default=False, verbose_name='CV'),
),
migrations.AddField(
model_name='candidate',
name='deposite_date',
field=models.DateField(blank=True, default=None, null=True, verbose_name='Date dépôt dossier'),
),
migrations.AddField(
model_name='candidate',
name='examination_result',
field=models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Points examen'),
),
migrations.AddField(
model_name='candidate',
name='file_result',
field=models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Points dossier'),
),
migrations.AddField(
model_name='candidate',
name='instructor',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='stages.CorpContact', verbose_name='FEE/FPP'),
),
migrations.AddField(
model_name='candidate',
name='interview_date',
field=models.DateTimeField(blank=True, default=None, null=True, verbose_name='Date entretien prof.'),
),
migrations.AddField(
model_name='candidate',
name='interview_result',
field=models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Points entretien prof.'),
),
migrations.AddField(
model_name='candidate',
name='interview_room',
field=models.CharField(blank=True, max_length=50, verbose_name="Salle d'entretien prof."),
),
migrations.AddField(
model_name='candidate',
name='marks_certificate',
field=models.BooleanField(default=False, verbose_name='Bull. notes'),
),
migrations.AddField(
model_name='candidate',
name='police_record',
field=models.BooleanField(default=False, verbose_name='Casier judic.'),
),
migrations.AddField(
model_name='candidate',
name='proc_admin_ext',
field=models.BooleanField(default=False, verbose_name='Insc. autre école'),
),
migrations.AddField(
model_name='candidate',
name='promise',
field=models.BooleanField(default=False, verbose_name="Promesse d'eng."),
),
migrations.AddField(
model_name='candidate',
name='reflexive_text',
field=models.BooleanField(default=False, verbose_name='Texte réflexif'),
),
migrations.AddField(
model_name='candidate',
name='registration_form',
field=models.BooleanField(default=False, verbose_name="Formulaire d'inscription"),
),
migrations.AddField(
model_name='candidate',
name='total_result_mark',
field=models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Note finale'),
),
migrations.AddField(
model_name='candidate',
name='total_result_points',
field=models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Total points'),
),
migrations.AddField(
model_name='candidate',
name='work_certificate',
field=models.BooleanField(default=False, verbose_name='Certif. de travail'),
),
migrations.AlterField(
model_name='candidate',
name='birth_date',
field=models.DateField(blank=True, default=None, null=True, verbose_name='Date de naissance'),
),
migrations.AlterField(
model_name='candidate',
name='date_confirmation_mail',
field=models.DateField(blank=True, default=None, null=True, verbose_name='Mail de confirmation'),
),
migrations.AlterField(
model_name='candidate',
name='district',
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='stages.District', verbose_name='Canton'),
),
migrations.AlterField(
model_name='candidate',
name='option',
field=models.CharField(blank=True, max_length=20, null=True),
),
migrations.AlterField(
model_name='candidate',
name='section',
field=models.CharField(choices=[('ASA', 'Aide en soin et accompagnement AFP'), ('ASE', 'Assist. socio-éducatif-ve CFC'), ('ASSC', 'Assist. en soin et santé communautaire CFC'), ('EDE', "Educ. de l'enfance, dipl. ES"), ('EDS', 'Educ. social-e, dipl. ES')], max_length=10, verbose_name='Filière'),
),
]

View file

@ -425,8 +425,40 @@ GENDER_CHOICES = (
('I', 'Inconnu')
)
SECTION_CHOICES = (
('ASA', 'Aide en soin et accompagnement AFP'),
('ASE', 'Assist. socio-éducatif-ve CFC'),
('ASSC', 'Assist. en soin et santé communautaire CFC'),
('EDE', 'Educ. de l\'enfance, dipl. ES'),
('EDS', 'Educ. social-e, dipl. ES'),
)
OPTION_CHOICES = (
('GEN', 'Généraliste'),
('ENF', 'Enfance'),
('PAG', 'Personnes âgées'),
('HAN', 'Handicap'),
('PE-5400h', 'Parcours Emploi 5400h.'),
('PE-3600h', 'Parcours Emploi 3600h.'),
('PS', 'Parcours stage'),
)
class Config(models.Model):
key = models.CharField(max_length=100)
value = models.TextField()
comment = models.TextField()
def __str__(self):
return '{0} : {1}'.format(self.key, self.value)
class District(models.Model):
class Meta:
verbose_name = 'Canton'
abrev = models.CharField(max_length=10)
name = models.CharField(max_length=30)
@ -435,89 +467,61 @@ class District(models.Model):
class Candidate(models.Model):
class Meta:
verbose_name = 'Candidat'
first_name = models.CharField(max_length=40, verbose_name='Prénom')
last_name = models.CharField(max_length=40, verbose_name='Nom')
gender = models.CharField(max_length=3, choices=GENDER_CHOICES, verbose_name='Genre')
birth_date = models.DateField(blank=True, verbose_name='Date de naissance')
birth_date = models.DateField(default=None, blank=True, null=True, verbose_name='Date de naissance')
street = models.CharField(max_length=150, blank=True, verbose_name='Rue')
pcode = models.CharField(max_length=4, verbose_name='Code postal')
city = models.CharField(max_length=40, verbose_name='Localité')
district = models.ForeignKey(District, default=None, null=True)
tel = models.CharField(max_length=40, blank=True, verbose_name='Téléphone')
district = models.ForeignKey(District, default=None, null=True, verbose_name='Canton')
mobile = models.CharField(max_length=40, blank=True, verbose_name='Portable')
email = models.EmailField(verbose_name='Courriel', blank=True)
avs = models.CharField(max_length=15, blank=True, verbose_name='No AVS')
handicap = models.BooleanField(default=False)
section = models.ForeignKey(Section, null=False)
option = models.ForeignKey(Option, null=True, blank=True, on_delete=models.SET_NULL)
section = models.CharField(max_length=10, choices=SECTION_CHOICES, null=False, verbose_name='Filière')
option = models.CharField(max_length=20, null=True, blank=True)
exemption_ecg = models.BooleanField(default=False)
date_confirmation_mail = models.DateField(auto_now_add=True, verbose_name='Mail de confirmation')
date_confirmation_mail = models.DateField(default=None, blank=True, null=True, verbose_name='Mail de confirmation')
class AsaCandidate(Candidate):
corporation = models.ForeignKey('Corporation', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='Employeur')
instructor = models.ForeignKey('CorpContact', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='FEE/FPP')
class AsscCandidate(Candidate):
corporation = models.ForeignKey('Corporation', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='Employeur')
instructor = models.ForeignKey('CorpContact', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='FEE/FPP')
class AseCandidate(Candidate):
corporation = models.ForeignKey('Corporation', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='Employeur')
instructor = models.ForeignKey('CorpContact', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='FEE/FPP')
class EdePECandidate(Candidate):
corporation = models.ForeignKey('Corporation', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='Employeur')
instructor = models.ForeignKey('CorpContact', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='FEE/FPP')
# Checking for registration file
registration_form = models.BooleanField(default=False)
certificate_of_payement = models.BooleanField(default=False)
police_record = models.BooleanField(default=False)
cv = models.BooleanField(default=False)
certif_of_cfc = models.BooleanField(default=False)
certif_of_800h = models.BooleanField(default=False)
reflexive_text = models.BooleanField(default=False)
registration_form = models.BooleanField(default=False, verbose_name="Formulaire d'inscription")
certificate_of_payement = models.BooleanField(default=False, verbose_name="Attest. paiement")
police_record = models.BooleanField(default=False, verbose_name="Casier judic.")
cv = models.BooleanField(default=False, verbose_name="CV")
certif_of_cfc = models.BooleanField(default=False, verbose_name="CFC")
certif_of_800h = models.BooleanField(default=False, verbose_name="Attest. 800h.")
reflexive_text = models.BooleanField(default=False, verbose_name="Texte réflexif")
promise = models.BooleanField(default=False, verbose_name="Promesse d'eng.")
contract = models.BooleanField(default=False, verbose_name="Contrat valide")
comment = models.TextField(default='', blank=True, verbose_name='Remarques')
proc_admin_ext = models.BooleanField(default=False)
work_certificate = models.BooleanField(default=False)
marks_certificate = models.BooleanField(default=False)
deposite_date = models.DateField(default=timezone.now, verbose_name='Date dépôt dossier')
proc_admin_ext = models.BooleanField(default=False, verbose_name="Insc. autre école")
work_certificate = models.BooleanField(default=False, verbose_name="Certif. de travail")
marks_certificate = models.BooleanField(default=False, verbose_name="Bull. notes")
deposite_date = models.DateField(default=None, blank=True, null=True, verbose_name='Date dépôt dossier')
interview_date = models.DateTimeField(default=None, blank=True, null=True, verbose_name='Date entretien prof.')
interview_room = models.CharField(max_length=50, blank=True, verbose_name="Salle d'entretien prof.")
examination_result = models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Points examen')
interview_result = models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Points entretien prof.')
file_result = models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Points dossier')
total_result_points = models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Total points')
total_result_mark = models.PositiveSmallIntegerField(blank=True, default=0, verbose_name='Note finale')
class EdePSCandidate(Candidate):
# Checking for registration file
registration_form = models.BooleanField(default=False)
certificate_of_payement = models.BooleanField(default=False)
police_record = models.BooleanField(default=False)
cv = models.BooleanField(default=False)
certif_of_cfc = models.BooleanField(default=False)
certif_of_800h = models.BooleanField(default=False)
reflexive_text = models.BooleanField(default=False)
proc_admin_ext = models.BooleanField(default=False)
work_certificate = models.BooleanField(default=False)
marks_certificate = models.BooleanField(default=False)
deposite_date = models.DateField(default=timezone.now, verbose_name='Date dépôt dossier')
class EdsCandidate(Candidate):
corporation = models.ForeignKey('Corporation', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='Employeur')
instructor = models.ForeignKey('CorpContact', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='FEE/FPP')
def confirm_email(self):
if self.date_confirmation_mail is None:
return u'<img src="{0}" height="20px" width="20px" />'.format('/static/img/no_ok.jpg')
else:
return u'<img src="{0}" height="20px" width="20px" />'.format('/static/img/ok.jpeg')
confirm_email.allow_tags = True

BIN
stages/static/img/no_ok.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
stages/static/img/ok.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB