Mercurial > hg > MPIWGWeb
comparison MPIWGProjects.py @ 51:d456fe185649
more work on projects. more cleanup.
author | casties |
---|---|
date | Tue, 30 Apr 2013 12:49:26 +0200 |
parents | e30a4bd074db |
children | 1ed79b33200c |
comparison
equal
deleted
inserted
replaced
50:e30a4bd074db | 51:d456fe185649 |
---|---|
582 images[nr + 1][1].place -= 1 | 582 images[nr + 1][1].place -= 1 |
583 images[nr][1].place += 1 | 583 images[nr][1].place += 1 |
584 pass | 584 pass |
585 | 585 |
586 | 586 |
587 # invalidate thumbnail | |
588 self.projectThumb = None | |
587 pt = PageTemplateFile('zpt/project/edit_images', globals()).__of__(self) | 589 pt = PageTemplateFile('zpt/project/edit_images', globals()).__of__(self) |
588 return pt() | 590 return pt() |
589 | 591 |
590 def managePublications(self, pubName=None, op=None): | 592 def managePublications(self, pubName=None, op=None): |
591 """managage images""" | 593 """managage images""" |
830 obj.id = filename | 832 obj.id = filename |
831 | 833 |
832 # invalidate thumbnail | 834 # invalidate thumbnail |
833 self.projectThumb = None | 835 self.projectThumb = None |
834 | 836 |
835 if RESPONSE is not None: | 837 if RESPONSE is not None: |
836 | |
837 self.redirect(RESPONSE, 'manageImages') | 838 self.redirect(RESPONSE, 'manageImages') |
838 | 839 |
839 | 840 |
840 def getEditableFields(self): | 841 def getEditableFields(self): |
841 """giveListofDatafields""" | 842 """giveListofDatafields""" |
1682 Returns HashTree instance.""" | 1683 Returns HashTree instance.""" |
1683 tree = self._v_projectTree | 1684 tree = self._v_projectTree |
1684 if tree is None: | 1685 if tree is None: |
1685 tree = HashTree(keySeparator='.', keyFn=getInt) | 1686 tree = HashTree(keySeparator='.', keyFn=getInt) |
1686 for p in self.objectValues(spec='MPIWGProject'): | 1687 for p in self.objectValues(spec='MPIWGProject'): |
1688 # add all projects | |
1687 tree.add(p.getNumber(), p) | 1689 tree.add(p.getNumber(), p) |
1688 | 1690 |
1689 self._v_projectTree = tree | 1691 self._v_projectTree = tree |
1690 # logging.debug("getProjectTree: tree=%s"%(tree.root.getSubtreeAsText())) | 1692 # logging.debug("getProjectTree: tree=%s"%(tree.root.getSubtreeAsText())) |
1691 | 1693 |
1692 return tree | 1694 return tree |
1693 | 1695 |
1694 | 1696 |
1695 def getProjectsAsList(self, start, active=1, archived=1): | 1697 def getProjectsAsList(self, start=None, active=1, archived=1): |
1696 """Return flattened list of projects, starting from start. | 1698 """Return flattened list of projects, starting from start. |
1697 | 1699 |
1698 active = 0 : all projects | 1700 active = 0 : all projects |
1699 active = 1 : active projects | 1701 active = 1 : active projects |
1700 active = 2 : inactive projects | 1702 active = 2 : inactive projects |
1746 projects.append(p) | 1748 projects.append(p) |
1747 | 1749 |
1748 projects.sort(key=lambda p:[int(n) for n in p.getNumber().split('.')]) | 1750 projects.sort(key=lambda p:[int(n) for n in p.getNumber().split('.')]) |
1749 return projects | 1751 return projects |
1750 | 1752 |
1753 | |
1754 security.declareProtected('View management screens', 'changeProjectTree') | |
1755 def changeProjectTree(self, RESPONSE=None): | |
1756 """change the complete tree""" | |
1757 form=self.REQUEST.form | |
1758 hashList={} | |
1759 onlyArchived=int(form.get("onlyArchived",0)) | |
1760 onlyActive=int(form.get("onlyActive",0)) | |
1761 dep=form.get("dep",None) | |
1762 | |
1763 fields = self.getProjectsAsList(start=dep, archived=onlyArchived, active=onlyActive) | |
1764 | |
1765 logging.info("GOT TREE!----------------------------------------------------") | |
1766 for field in form.keys(): | |
1767 | |
1768 splitted=field.split('_') | |
1769 if (len(splitted)>1) and (splitted[1]=="runningNumber"): | |
1770 #feld hat die Form Nummer_name und runnignNumber | |
1771 nr=int(splitted[0]) # nummer des Datensatzes | |
1772 project = fields[nr] | |
1773 | |
1774 # | |
1775 # change active | |
1776 # | |
1777 if form.has_key('%s_active'%nr): # active flag is set | |
1778 project.setActiveFlag(True) | |
1779 else: | |
1780 project.setActiveFlag(False) | |
1781 | |
1782 # | |
1783 # nummer hat sich geaendert | |
1784 # | |
1785 entryChanged = False; | |
1786 pronum = project.getNumber() | |
1787 formnum = form['%s_number'%nr] | |
1788 | |
1789 if not (pronum == formnum): | |
1790 logging.debug("Changed!Number+++++++++++++++++++++++++++++++++") | |
1791 logging.debug(repr(fields[nr].xdata_05)+" ---> "+ repr(form[str(nr)+'_number'])) | |
1792 entryChanged = True | |
1793 | |
1794 # | |
1795 # completed hat sich geaendert | |
1796 # | |
1797 td = project.transformDate # hole die funktion zum transformieren des datums | |
1798 formstarted = form[str(nr)+'_started'] | |
1799 formcompleted = form[str(nr)+'_completed'] | |
1800 | |
1801 if not (td(project.getCompletedAt()) == td(formcompleted)): | |
1802 logging.info(repr(td(project.getCompletedAt()))+" ---> "+ repr(td(form[str(nr)+'_completed']))) | |
1803 logging.info("Changed!Completed+++++++++++++++++++++++++++++++++") | |
1804 entryChanged = True | |
1805 | |
1806 if not (td(project.getStartedAt()) == td(formstarted)): | |
1807 logging.info(repr(td(project.getStartedAt()))+" ---> "+ repr(td(form[str(nr)+'_started']))) | |
1808 logging.info("Changed!Started+++++++++++++++++++++++++++++++++") | |
1809 entryChanged = True | |
1810 | |
1811 if entryChanged: | |
1812 logging.info("Changed!+++++++++++++++++++++++++++++++++") | |
1813 project.copyObjectToArchive() | |
1814 project.xdata_05 = formnum | |
1815 project.setCompletedAt(formcompleted) | |
1816 project.setStartedAt(formstarted) | |
1817 # reset tree | |
1818 self._v_projectTree = None | |
1819 | |
1820 if RESPONSE is not None: | |
1821 RESPONSE.redirect(self.en.MPIWGrootURL()+'/admin/showTree') | |
1822 | |
1751 | 1823 |
1752 security.declareProtected('View management screens', 'updateAllProjectMembers') | 1824 security.declareProtected('View management screens', 'updateAllProjectMembers') |
1753 def updateAllProjectMembers(self, updateResponsibleScientistsList=False): | 1825 def updateAllProjectMembers(self, updateResponsibleScientistsList=False): |
1754 """Re-create responsibleScientistsLists and projects_members table from all current projects.""" | 1826 """Re-create responsibleScientistsLists and projects_members table from all current projects.""" |
1755 # empty table | 1827 # empty table |