def instantiate_designer_column_from_smartgrid(draft, slug): """Creates a DesignerColumnName from the ColumnName with the given slug.""" col = get_object_or_404(ColumnName, slug=slug) des_col = None try: des_col = get_object_or_404(DesignerColumnName, draft=draft, slug=slug) except Http404: des_col = DesignerColumnName() des_col.draft = draft _copy_fields(col, des_col) return des_col
def instantiate_designer_column_from_library(draft, slug): """Instantiates a DesignerColumnName from the LibraryColumnName with the given draft and slug.""" lib_cat = get_object_or_404(LibraryColumnName, slug=slug) des_col = None try: des_col = get_object_or_404(DesignerColumnName, draft=draft, slug=slug) except Http404: des_col = DesignerColumnName() des_col.draft = draft _copy_fields(lib_cat, des_col) return des_col
def copy_smartgrid_to_designer(draft): """Copies the current Smart Grid Game to the given designer draft.""" # Clear out the Designer clear_designer(draft) # Copy the levels for lvl in Level.objects.all(): try: des_lvl = get_object_or_404(DesignerLevel, draft=draft, slug=lvl.slug) except Http404: des_lvl = DesignerLevel() des_lvl.draft = draft _copy_fields(lvl, des_lvl) # Copy the ColumnNames for col in ColumnName.objects.all(): try: des_col = get_object_or_404(DesignerColumnName, draft=draft, slug=col.slug) except Http404: des_col = DesignerColumnName() des_col.draft = draft _copy_fields(col, des_col) # Copy the location information for grid in ColumnGrid.objects.all(): col = DesignerColumnGrid() col.level = get_designer_level(draft, grid.level.slug) col.column = grid.column col.name = get_designer_column_name(draft, grid.name.slug) col.draft = draft col.save() # Copy the Actions for action in Action.objects.all(): instantiate_designer_action_from_smartgrid(draft, action.slug) # Copy the location information for grid in Grid.objects.all(): loc = DesignerGrid() loc.level = get_designer_level(draft, grid.level.slug) loc.column = grid.column loc.row = grid.row loc.action = get_designer_action(draft, grid.action.slug) loc.draft = draft loc.save()