def create_widget_on_resource_creation(sender, instance, created, raw, **kwargs): from wirecloud.catalogue import utils as catalogue from wirecloud.platform.widget.utils import create_widget_from_wgt if not created or raw: return resource = instance if resource.resource_type() == 'widget': try: resource.widget except Widget.DoesNotExist: base_dir = catalogue.wgt_deployer.get_base_dir( resource.vendor, resource.short_name, resource.version) wgt_file = WgtFile(os.path.join(base_dir, resource.template_uri)) resource.widget = create_widget_from_wgt(wgt_file, resource.creator) # Restore any iwidget associated with this widget from wirecloud.platform.iwidget.models import IWidget IWidget.objects.filter(widget_uri=resource.local_uri_part).update( widget=resource.widget)
def handle(self, *args, **options): if len(args) < 1: raise CommandError(_('Wrong number of arguments')) if not options['deploy_only']: user = User.objects.get(pk=1) else: user = FakeUser('admin') for file_name in args: try: wgt_file = WgtFile(file_name) except: print _('Failed to parse %(file_name)s') % {'file_name': file_name} continue try: template_contents = wgt_file.get_template() template = TemplateParser(template_contents) try: create_widget_from_wgt(wgt_file, user, deploy_only=options['deploy_only']) except IntegrityError: if not options['reinstall']: raise else: deleteWidget(user, template.get_resource_name(), template.get_resource_vendor(), template.get_resource_version() ) create_widget_from_wgt(wgt_file, user) wgt_file.close() print _('Successfully imported %(name)s widget') % {'name': template.get_resource_name()} except IntegrityError: print _('Version %(version)s of the %(name)s widget (from %(vendor)s) already exists') % { 'name': template.get_resource_name(), 'version': template.get_resource_version(), 'vendor': template.get_resource_vendor(), } except: print _('Failed to import widget from %(file_name)s') % {'file_name': file_name}
def create_widget_on_resource_creation(sender, instance, created, raw, **kwargs): from wirecloud.catalogue import utils as catalogue from wirecloud.platform.widget.utils import create_widget_from_wgt if not created or raw: return resource = instance if resource.resource_type() == 'widget': try: resource.widget except Widget.DoesNotExist: base_dir = catalogue.wgt_deployer.get_base_dir(resource.vendor, resource.short_name, resource.version) wgt_file = WgtFile(os.path.join(base_dir, resource.template_uri)) resource.widget = create_widget_from_wgt(wgt_file, resource.creator)
def create_widget_on_resource_creation(sender, instance, created, raw, **kwargs): from wirecloud.catalogue import utils as catalogue from wirecloud.platform.widget.utils import create_widget_from_wgt if not created or raw: return resource = instance if resource.resource_type() == 'widget': try: resource.widget except Widget.DoesNotExist: base_dir = catalogue.wgt_deployer.get_base_dir( resource.vendor, resource.short_name, resource.version) wgt_file = WgtFile(os.path.join(base_dir, resource.template_uri)) resource.widget = create_widget_from_wgt(wgt_file, resource.creator)
def create_widget_on_resource_creation(sender, instance, created, raw, **kwargs): from wirecloud.catalogue import utils as catalogue from wirecloud.platform.widget.utils import create_widget_from_wgt if not created or raw: return resource = instance if resource.resource_type() == 'widget': try: resource.widget except Widget.DoesNotExist: base_dir = catalogue.wgt_deployer.get_base_dir(resource.vendor, resource.short_name, resource.version) wgt_file = WgtFile(os.path.join(base_dir, resource.template_uri)) resource.widget = create_widget_from_wgt(wgt_file, resource.creator) # Restore any iwidget associated with this widget from wirecloud.platform.iwidget.models import IWidget IWidget.objects.filter(widget_uri=resource.local_uri_part).update(widget=resource.widget)